The world of programming changes fast. New technologies are appearing every day. You need to keep up; you need to learn fast; you cannot afford to learn just the tip of the iceberg. For quality programming, fundamentals matter — algorithms, data structures, patterns.
So how to learn all these things? Is it possible at all?
The truth is that we are wasting the majority of the time not understanding the simple concept of Learning Pyramid. The Learning Pyramid was developed way back in the 1960s by the NTL Institute in Bethel, Maine.
Learning Pyramid looks like this:
The image is taken from www.washingtonpost.com
What does it mean?
On the upper levels, you’re looking at the whole problem, you rarely care about details, you’re paying attention only to the result of what is it (and it makes sense at that stage).
But once you start working on a problem, you’re starting to investigate why things are working this or another way; you’re making mistakes; you’re investigating the problem; you’re learning the thing deeply; often you’re even looking for alternative solutions and comparing those.
Discussion contributes nicely here. While it might not bring you more understanding, it will rise questions, concerns, weaknesses of the problem you need to deal with.
The bottom level, teaching others, leads to maximum information retention — you are not only explaining a problem there, you’re doing an investigation about it to bring up good arguments, you’re thinking on how to defend your theory, looking for blind spots. You need to feel your concept in order to deliver it to others, and you don’t want to leave any blind spots there.
There’re many articles about “Why developer should write?”, “Why you should hire developers who write from all the possible candidates”. The concept of Learning Pyramid is basically confirming this.
Every article starts with a mind-map.
Then you are writing down the structure.
Then you are adding details.
Then you are reading what you wrote and searching for what’s unclear, what might be explained more or simply misses enough arguments so the reader can agree with you. You spend time searching for different opinions on the topic to deliver it to readers in the best way possible.
This is the same thing as being a teacher. This is what makes you learn the topic better and become an expert in it.