3 Learning Mistakes Developers Make
Learning can be fun or hard or maybe both. For me, it's often a mix of both. I developed my own learning style over many, many years. It usually works well for me and I pick up new topics, be it a new programming paradigm, language or business stuff, pretty straight forward. However, when I tried to learn some basic Japanese last year, I forgot everything and made some common mistakes again.
No Scope, Scope too broad or too vaguely
My plan was to learn some basic Japanese so I could communicate with people. However, it was too vaguely; it could mean everything and nothing. Maybe small talk about the weather or just being able to order your food.
If you want to learn something, be specific. And realistic. For the tech stacks, I usually have a goal in the form of implementing a simple application with the new tech stack. And then branching out from there on the topics which most interest me. Often I start with the same application in a topic I knew so I don't overwhelm myself with learning a second thing simultaneously.
For example, when I started learning Python, I narrowed it down to tiny apps and steps. I think one of my first steps was to write a simple app which reads a feed and prints out the items. It looks tiny, but I learned, i.e. how Python handles modules, how to install one, basic syntax, how to do a for loop and such things.
I didn't do that with learning Japanese and it backfired. Learning was ineffective, time-consuming and stagnated.
Consuming too much
We live in an age with too much information available, everywhere. You can look up on Wikipedia, or Google it, find hundreds of books or videos about probably any given topic.
While this is great it has a dark side too. It's overwhelming. You don't know where to start, you don't know if you ever know enough about a topic.
That leads ultimately to procrastination. If our mind is overwhelmed, it shuts down.
And it's not only the facts you learn but also the many opposing opinions people have. Does it matter for the Python runtime if you write in a pythonic way? No, but if you ask 3 python developers you probably get 4 different answers.
As a fresh learner, you'll be confused. And when you are confused your learning progress stagnates.
Binge learning does not help.
What helps me is to stop consuming after a few resources and ignoring all opinions for now. I want to take my first baby steps. I still can revise the opinions later and align with one or make my own up. But for now understanding and practicing is the key.
When I find myself stuck in the paralysis through analysis, I unplug and start asap with the tiniest practical thing I can do with my knowledge now and gain practical experience.
That's the next problem with the consuming approach. Mostly, you only read or watch but you never take action. I am a firm believer that you can only learn something if you start doing it.
Maybe I could have learned Java theoretically by reading books but what's that worth?!? I would still not be able to code anything with it.
I've done that in the past too, like reading books about electronic circuits as a teenager. Yet, the real learning started as I did use it practically by actually building something.
But the stupid me didn't do it with learning Japanese. It did stop with consuming but it never actually went into the practice mode. Don't do that, don't be my stupid me.
Following blindly someone else learning material
That's another thing I am guilty of. Man, did I read books from front to back, even the totally boring written computer stuff. And guess what?
I didn't help. I probably forgot most of it as soon as I left for the next chapter. Most books or videos are either too unstructured for learning in a way that makes sense for you and your goal or the teacher has a completely different learning style. It doesn't mean the material is bad. Or his teaching. No, it just does not fit with your own personal learning style and instead of progression, you wade through hours a video footage, get bored and eventually move on. However, if the styles match, go with it; it might actually help you.
When you have a plan you can use the material if it helps you, just don't follow their path blindly.
Unfortunately, I did that with learning Japanese. I used the Pimsleur method and their audios. While the material is good and I actually learned words and sentences (some stick till today), the topics were not aligned with my "goal". Yeah, I can invite someone to dinner but not check in into the hotel...
Unstructured teaching is even worse. As a noobie, you cannot make sense out of it. Surprisingly, most computer books are written in that style. They throw a bunch of content in your face and leave you to figure out what to do. More like an encyclopedia and not material for teaching.
But the internet is a better encyclopedia than any book. And often the tutor too. That's why I stopped buying programming books. However, I did buy one last year because they followed a structure which is more aligned with my learning style. They actually build applications and teach the steps involved (btw it inspired me to publish my own books). It's practice and teaching at the same time.
The Japanese learning thing did end in a disaster. I didn't learn much and wasted a lot of time. The vacation, however, was great :-)
So, make a plan, set a narrow scope and practice. Ignore all resources which do not help you to reach your goal. When you're done, you can still revise them and branch out into subtopics.