How to learn effectively

Recently I read an article sharing tips to learn effectively, I feel it really useful so I decide to write a blog post to note.

You need to drive your own learning. Don’t wait to be fed with knowledge

The most important ingredient in the learning process is you. You have to want to learn. You can’t become a programmer because of your family wants, you have to want to become a programmer.

The article show me the learning zone. How to stay in learning zone and avoid panic zone


  • If there is nothing new for you, then you are in your comfort zone.
  • If there is something you haven’t heard about before, and you can relate it to something you already know, then you are in your learning zone.
  • If there is something new, and you can’t relate it to anything you already know, and you can’t understand this new concept at all, then you definitely in your panic zone.

For example, I am a software developer. The application product that I’m working is built by Ruby on Rails framework, I know Ruby on Rails, it’s my comfort zone. But during the evolution of the application product, one day, the company wants to change the monolith Rails application to micro-services, I heard about micro-service, but I haven’t try at all, it’s new to me, and it relates to the application I’m working, so I want to learn all basic knowledge about micro-services. I am in the learning zone.

Learn one thing at a time

We are not superheroes from Marvel Universe, can’t learn many things at a time. And personally, I think to learn basic knowledge of a new thing, you should spend 100% of time in three days. Only spend three days to learn basic knowledge. And if you want to more expert in this domain, you have to deep into it by:

  • practices and solve problems with new knowledge.
  • write blog posts
  • teach the knowledge to another person

By applying these techniques, your brain will save it into long term memory.

For example, my brother-in-law is learning information technology at colleagues, he started with C/C++ languages, and it has been years I haven’t use C/C++ in my job, and he wants my help. So it’s a good time for me to expand my comfort zone when starting to re-learn basic C/C++ in 3 days, then I explain to him by using the Feynman technique, basically, I have to identify gaps in my explanation, I can’t use words that I usually use in my job, I have to try with simple words when explaining. After a month teaching him the C/C++, now my brain remembers C/C++.

One more example, that when I learn Elixir, a new programming language with syntax is quite similar Ruby. And to help my brain remembers how Elixir works, I started to do the Kata everyday two months before joining a project using Elixir.

Don’t be afraid of making mistakes. Embrace failures

There is an Edison’s quote I always keep in mind: “I have not failed. I’ve just found 10,000 ways that won’t work.”

So, keep learning! Learn everything, from a new programming language/framework to how to play with your baby, how to talk so kids will listen and listen so the kid will talk and learn how to cook for your wife, and so on.