Taking notes

Over the last 100 days, my learning curve has been extremely steep. Taking notes has been my habit ever since the 1st year of my college. I always love to write down things that I have learned. Jotting down notes gives me the final confidence about the things that I have learned. It also helps me in quickly ramping up the concepts again when required. 

I have written over 50 notebooks containing notes related to my profession, i.e. Computer Science and several more on other areas of interest. I have kept them very carefully and carry each one of them wherever I relocate to (mostly in the hope that I will get a chance to go through them one day). When I look back now, I see that my notes suffer from some serious problem:
  • Outdated information: Since, computer science is an ever-changing domain, most of my notes are now outdated. A few notes like those related to C++, Java, Algorithms and Design Patterns are still good enough. Other notes like that on Hyperledger (a blockchain framework), Git, Networking, JavaScript, Tensorflow, Numpy, Angular, Android and React Native have become obsolete. I would always prefer to read documentation again instead of going through those notes. Some corners of my notes also contains solutions to some tricky problems that I solved in the past. But, if I get the same problem again,  my first thought would be to solve it again all by myself (with slightly less effort as my subconscious should be somewhat aware of the solution) without thinking of going through my notes to see if I solved it in the past. I had observed that only the notes related to subjects that build the core foundations of an area, have conserved their worth over the years. Such subjects are very generic and widely applicable. Their applications might keep changing at a rapidly, but, the basic building foundations have remained intact and valid through times. 
  • Organization of notes: Whenever I start learning something new, I am never sure of the prerequisites. Sometimes I learn the prerequisites after I have learned the concepts. This makes the notes unorganized. I always maintain an index at the beginning of the notebook but that has never helped me in determining the sequence in which I should go through the notes. There is always a prerequisite for a prerequisite which makes learning even more difficult. This problem is doubled when I switch notebooks or divide the same notebook to section. The notes of a topic begin at the center of a notebook that goes for 10 pages and then I switch to a new notebook because the end pages of the old notebook were already filled with notes of another topic. The challenge is to write the notes in such a way that my future myself would be able to read the notes with the same contextual ease as the present self who is writing it.
  • Motivation: Sometimes I even lose the motivation to write notes because I begin to question its usefulness in future. Later I regret when I have to learn the same thing again and there is no head start available in the form of notes.
At my present firm, I have been learning stuffs that are mostly internal to the organization and might not help me much in the outside world. The internal tools are themselves changing so rapidly. I am learning so many things everyday that all my notes have cluttered and are barely readable.

This brings me to the some solutions that I found to be helpful to tackle the above stated problems:
  • Always mention enough context at the beginning: Remember that your notes are not for the present you (what you learnt is already in your memory). It is for someone in the future time period who would be reading it (the someone may be you yourself). That is why, it is very necessary to write enough context before starting to take down the real notes. Mention all the prerequisites that one needs to know before he/she can understand the notes.
  • Generalize the learnings: It takes less than an hour to forget 40% of what you learnt. It takes two days to forget an entire book that you might be reading for several days. Your brain remembers less of the text and more of the pictures. That is why it is necessary to draw a big picture of the most important takeaways from the learnings. The big picture must fit into the even bigger picture of your past learning so that you don't lose track of your final goals. Your notes must reflect this generalization. Include the summaries of your learnings at the end of each chapter.
  • Go deep into the basic foundations: For example, while learning a new programming language, it is important to take a deep dive into the core concepts like design of the language, the motivation behind creating the language and its benefits. Learning syntax is all about practice and comes hands on. Similarly, taking notes about the design of a framework will improve your conceptual understanding of framework design.
  • Mention the whereabouts of the latest information for rapidly changing subjects: It might be useful to take notes of object oriented programming concepts. These concepts would remain the same over the years. But it might not be useful to take notes of the syntax of a JS framework like React. These things would keep on changing as the creators of the framework evolve it. In such cases, it is better to know where exactly can you find the official documentation when required. 
  • Create a PDF and save it in cloud: Technology provides a way to organize stuffs. Whenever you finish learning a topic, then scan the notes to PDF and save it to cloud. This way you would be able to get access to it anywhere (no need to carry the notebooks) and full proof the notes from accidental loss.
If you are in a similar mishap, I hope that you would be able to help yourself the way I did. If you have some better solutions, please do tell me (in the comment section or by an email) as I am eager to find better ways to organize my knowledge.


Popular posts from this blog

DDoS Attack on Bitotsav '19 Website

Rendering Performance Evaluation - Android SDK vs React Native

Popular ethical hacking tricks on LAN