All Articles

How to learn and retain technical knowledge

I think you’ll agree that studying takes a lot of time and effort. And the last thing you want to happen is to forget what you studied after a while, especially if the contents weren’t just a fantasy novel but some technical topics you’ve studied perhaps for an upcoming interview or improving your skills.

Over the past few years, I’ve experimented with a bunch of study techniques and in this post, I talk about everything that worked great for me. I’ve tried to condense all of my learnings into some techniques below, hope you find this useful.

A garden like arrangement of beautiful glowing soft corals in a dark tank at the Cairns Aquarium.

Find your Why

When you want to learn something, problem exploration is possibly the most important thing to start with. You might have heard many first-time founders of startups trying to first build a solution and then try to find the market suitable for their product, which almost never works out, do they? Just like market research is important in this case, before jumping into how something works, we should gain a deeper understanding of the problem.

For example, If we take a programming concept like currying, the internet is filled with articles on how to write a currying function in every language possible and multiple implementations too. But unless you get a deeper understanding of why we use currying and understand some real-life scenarios that are tricky to solve without using this concept, what you learned will eventually fade away.

Explain Like I’m 5 (ELI5)

Next, before you can dive deep into a topic, spend some time first to understand a simpler abstraction of the problem. I often google a topic name followed by ELI5(short for Explain Like I’m 5) whenever I am studying a new concept. The internet is filled with so many great subreddits and StackOverflow answers which help you get a very atomic understanding of the concept before you can dig deep.

A while back I decided to brush up my data structure basics and instead of directly jumping into Leetcode problems, I used a coding podcast (BaseCS podcast) as my ELI5. It gave me a much-needed foundation for going deep into the topics later on.

Spaced repetition with Flash Cards

Spaced repetition is an evidence-backed study technique that uses a ‘spacing effect’, to form long-lasting memories. If you’re new to this term, here is how Wikipedia defines it -

Spaced repetition is a method where the subject is asked to remember a certain fact with the time intervals increasing each time the fact is presented or said.

The most popular way to practice spaced repetition is with flashcards. There are many systems to use flashcards effectively but my favourite one and the most efficient way of using flashcards is using the Leitner System.

Hero image showing callback hell

Here’s how it works - you create 5 boxes where each box corresponds to a time delay after which it shall be revisited. All your flashcards start at box one. After the box’s given time interval elapses, each card you recollect correctly goes to the next box and so on.

But at any level, if you fail to remember a card, it goes all the way back to box one. That way you spend more time on concepts which are harder to grasp and less time on things you got easily.

Forgetting your flash-cards even after studying a lot, is very normal and don’t feel bad if that happens to you. In fact some forgetting is necessary to strengthen our learning when revisiting that topic later to form a lasting memory.

The Feynman technique

According to the Feynman technique (named after famous physicist and Nobel laureate Richard Feynman), once you’ve studied something, try teaching that to someone who is inexperienced in that topic.

During the process, you’ll notice the gaps in your learning, go back to learn those. Try teaching again and repeat the cycle until you can explain that concept clearly to someone.

If you don’t have a student, try to write your explanation online as it might serve as an ELI5 for someone else.

Learn by doing

The most popular one and something which you might already know is learning by practice. Our mind often overestimates our thinking and recalling abilities when we read something. Hence we tend to tell ourselves things like “Nah, I get how this example works! No need to write it down, I’ll remember.” Don’t lie to yourself. Take out that notepad and make notes as your study.

If you’re learning something which involves a paradigm shift like a new framework or language, typing out everything as I learn has proved to be my #1 go-to method these days. It’s really beneficial to write down/type things up as it also helps develop a muscle memory over time.

Selectively Forgetting

With information being available just a Google search away these days do we really need to remember everything? If not, how do you decide what to remember and what to forget?

A rule of thumb I follow is to not spend much time memorising things which are very easy to look up. As long as you can remember the topic briefly and remember that it is available on Google, we’re good.

There are things I almost always lookup like browser APIs, the difference between slice and splice or regex patterns to name a few and feel we don’t need to be Bradly Cooper from Limitless and try to remember everything. Our brains hold limited information so reserve it for more important things and always look for what trivial piece of the puzzle you can not learn.

Conclusion

These are some of my favourite techniques, and some work better over the others for learning different kind of things. Play around and see what works for you best.

Also, be mindful when you look up information on the internet as it often contains backdated or wrong answers. So referring multiple sources works great.

If you found this post helpful share it with your friends. Happy learning.