Today we are going explore some popular learning techniques briefly. Yes… this post is not a regular technical blog post of this blog. But it might be helpful you are a “learner” (every programmer is a life long learner). I have described various techniques. Few of them fits very well in learning programming, deepen the concepts and research - while few are best suited for memorizing concepts for exams. Lets learn about each of them.
Feyman technique
If you can’t explain it simply, you don’t understand it.
- Pick one concept.
- Explain it as if teaching a 12 year old.
- Find where you stumble, that is your gap.
- Go back fill the gap.
First principle thinking
Break everything down to the fundamental truth, build backup from scratch.
- Don’t assume “it is like that”.
- Repeatedly ask “what is absolutely true here?”
- Reconstruct your understanding from the ground up.
Example: Elon Musk rocket cost. Why rockets are costly. Is it the raw materials or research. Let’s find the cost of raw materials. Raw materials is not that much costly. In this way they were able make cost efficient rockets.
Socratic method
Learn through questioning not through answers.
- Ask “why?”
- Challenge every assumptions
- Goal is what you think you know vs. what you actually know
Inversion (Thinking Backwards)
Instead of asking “how do I succeed?” ask “what would guarantee failure?” then avoid those things.
Analogical Reasoning
Map a familiar structure into an unfamiliar one. Use analogies to explain.
- Find structural similarity between two domains
- Use the known to illuminate the unknown
Eg. compare “blood flow” to “flow of water in pipe”.
In this way, it becomes easy to explain in layman terms.
Deliberate Practice
This term is coined by “Anders Ericson”. Nowadays, “Cal Newport” also advocate this. The core idea is, Repetition alone does not create expertise. Targeted practice on your weak areas does.
- Identify a skill you want to master
- Decide dedicated time blocks and practice it
- Get feedback
- Focus on “focus” not on volume
It is not always the case what you are learning is enjoyable for me. No matter what, just work on it with deep focus.
The Protégé Effect
Teaching accelerates your own understanding more than any other method. Also called “learn by teaching”. You learn gaps only when someone asks a question you can’t answer.
It is my most favorite technique and I used it a lot. This blog is the prime example of this techniques. When you teach you research a lot and want to deliver the best and sometimes you are asked the things you never thought about.
Active recall
Don’t just re-read it close the book and actively recall the topic.
Spaced repetition
Review your study materials at intervals just before you forget it.
Let’s sy you learned a topic today morning. Then try to recall it at evening or night. Check how much you remembered. Then again recall it tomorrow and get feedback. Then recall it on alternate days. Then in every 3 day the once a week. Increase the interval based on how much you remember.
- This helps to strengthen the memory
- Tools: Anki, physical flash card
Rubber duck method
Explain your problem out loud to an inanimate object like rubber duck. It helps to uncover the missing pieces, wrong assumptions and logical gaps. It is popular among software engineers as “Rubber duck debugging”. Programmers explain their code line-by-line to a duck and ofter finds the bugs in that process.
Rubber duck can be replaced by a human (If you are comfortable).
Chunking
Human remembers chunks rather than individual pieces.
Example.
Individual: 9 1 1 2 0 0 1 4 7
Chunk 911 200 147
Try to create your own chunks based on the topic.
Interleaving
Mix different topics of problem types in one study session instead of focusing on one topic per session(time block). For example, you are studying maths. You learn little bit of topic 1, then topic 2 then topic 3- come back to topic 1 study it for a 30 min (may be longer), then switch to topic 2 then topic 3 and so on. You can read it in depth from here.
Elaborative Interrogation
Instead of accepting a fact, you raise “why” and “how” question.
Eg.
“Warm air rises.” It is shallow encoding.
With elaborative interrogation, “Why does warm air rises?”. You stop and think “warm air is less dense… less means lighter… lighter means buoyancy pushes it up… same reason wood float on water”. Then you verify.
The Generation Effect
Information is better remembered if it is actively generated from one’s own mind. The original experiment is done by Norman Slamecka and Peter Graf, 1978. Consider a scenario where two groups:
- Group A reads: “Cold - Hot”
- Group B reads: “Cold - H__” and fill in the blanks.
It was found that Group B remembered significantly more. They generated it while group A has just read it. You can learn more about it from here
