Why I started taking notes? — A Developer’s Perspective
For past couple months, I have been working on a personal website which uses several different technologies that I never used before. Why I chose them is a different story but while I was using them in my project, I realized something. I noticed that even though I have watched tutorial twice for a library, I still have to refer to the official documentation for same thing, again and again! In this post, I will breakdown my problem and how I am trying to overcome it.
The Problem — My so called “learning” 📚
When I observed my learning method, I noticed that I was never learning any topics. I was just thinking about short outcome. Only understand enough stuff so that I can close the problem I am facing at that time. I remember opening 3 different documentation sites, just to write few lines of code. For an Example, I remember I had to look at angular documentation twice in a 15 minutes, just to find out how I can use `ng-model` in my component 🤦♂️.
When I realized this, I asked question to myself, “Harsh, you have watched two different great tutorials on Angular. You wrote the same code yesterday, then why have you still not learned the basics of Angular or any other tech you are using?” As I mentioned before, the problem was the way I was learning. I used to just skim through documentation/video and find enough information so that I can write few lines of code. I was not thinking about the long game here.
The Solution — Feynman Technique 👨💻
When I was struggling with this issue, YouTube suggested me: How to Learn Faster with the Feynman Technique (Example Included) by Thomas Frank. In this video Thomas explains a learning technique developed by Richard Feynman — Wikipedia. It includes several different points but the one that stood out most to me was:
“Pretend to teach a concept you want to learn about to a student in the sixth grade.”
This makes so much sense! If you can teach something to completely beginner, you learn it properly! So, I tried to apply this concept when I was learning Storybook at that time. And, I realized that I never understood anything I was learning in past few months. I just wasted tons of hours just watching YouTube videos in past. I spent around half hour to learn the topic and I was able to understand it properly. When I tried to write some example on the topic, I hardly had to refer back to documentation.
The Application — Taking Notes 📝
Once I learned about Feynman technique, I needed to start applying it to my learning process. Now when I was going through the Storybook’s documentation, I started taking notes. At first, it took me longer to understand once concept and it also felt bit boring. Although at the end, I was able to learn those concepts so well that I hardly have to go back to their documentation.
If I summarize my note taking process, it would be something like this:
- I read topic, concept or sometimes the whole page
- understand the topic by trying it out
- I try to write the same thing in my own words or I try to summarize it in my notes.
To be honest, Storybook might not a good example as they have a really good documentation. Most of the times, I was just writing almost the same thing. Although I made sure that I was writing notes as a summary and only after understanding the concept properly.
The Question — Is it worth it? 🤔
At this point, you guys will get a question that, is note taking worth it for programmers? My answer to this question will be “Yes” and “No”. It depends on your preference and your definition/goal of taking notes. The way I approach note taking is, I like it to be descriptive, but only to me. Any beginner can understand the notes but it is highly personalized to my learning nature.
While taking notes, I understand that I am not writing an official documentation site for some library, but I am writing these notes to learn and understand it. You also have to understand that these notes are not supposed to replace the official documentation when you code. These notes are just there to help you learn something. Official documentation should always be your choice if you face any problem as it is most up-to-date and usually have more information than your notes.
The Result — Writing component stories faster 🏃♂️
After implementing this workflow, I have noticed improvement in writing stories for components in my project. I haven’t even completed all the concepts, but I know whatever I have learnt so far. I no longer have to juggle between docs and my code editor when I just want to write some stories. As I know the concepts as whole, It has also improved my code performance and efficiency.
In the developer world, Every answer is just one Google Search away. You can easily find solution for the problem you are facing in your code, but you have to also keep an eye on how much you are learning from every google search. Getting more reliable on Google does not make you a good developer. I am not forcing you to stop using Google, I am just saying that keep an eye on what you are searching. Are you searching because something unexpected happened in your code? Or is it just because you did not understand the concept properly first time? I have been asking this question to myself for a while and I am getting some unexpected answers.
Do you guys also take notes when you are learning something? What are your thoughts on note taking in programming world. Drop your thoughts down in the comment box. If you liked what I wrote, please like this blog. It helps me in many ways! You can follow me on twitter for latest updates!