My way of reading technical books effectively.
Reading a technical book is a lot different than reading a novel. That is why we need a different strategy to get the best out of technical books. I have been in the pursuit of a good reading technique for years now. I have tried to follow different approaches and finally, I was able to find a way that works for me well. In this post I will share my way of reading technical books in the most effective way.
What do I mean by “Effective”?
Actually, the use of the word “effective” here, depends on the type of the book. If the book is a “Reference” book, “effective” means after reading the book, I know where to look for answers. If it is not a reference book, “effective” means after reading the book, I learned the knowledge shared in the book.
I think of Reference books as they are set of tools that I add up to my toolkit, and use whenever I need. I don’t have to carry all the tools I have with me, I will just “refer” to them when I need them. On the other hand, I consider non-reference books as techniques that I actually learn. I do not have to spend extra effort to use them, I already have them with me all the time.
Some of my favorite reference books:
- Design Patterns: Elements of Reusable Object-Oriented Software
- Refactoring: Improving the Design of Existing Code You can also check My Top Takeaways from Refactoring here.
- Practical Object-Oriented Design in Ruby: An Agile Primer
Some of my favorite non-reference books:
- The Pragmatic Programmer: your journey to mastery
- Clean Code: A Handbook of Agile Software Craftsmanship
Reading a technical book in one sitting might be overwhelming. Especially when you have no idea what is coming next as you read. When you don’t know how deep the rabbit hole will go, it makes you feel lost as you read and dive deeper into the concepts. The below strategy I developed over years is to overcome this struggle.
Does not matter if you follow the upcoming step-by-step guide or not, it is crucial to keep in mind the following:
- Understand the terminology. If you encounter a term more than once, you need to make sure that you understand what it means. The more you encounter, the higher the chances of that term being important.
- Know when to stop. I have always thought to understand something I need to go as deep as possible on that topic. But that is not always very efficient. Sometimes you have to draw the line to stop dwelling on the theory and get into practicing (if applicable).
- Review your notes. Note taking is an important habit when it comes to reading a technical material - be it books or documents. And to make the most out of your notes you need to review them on a regular basis. This will help you internalize what you have learned from that book. And over time you will realize the need to review lessens.
These are in mind, let’s get to my way of step-by-step reading a technical book efficiently.
0. Read the Preface/Foreword
Author’s of technical books usually include a very important part in these sections. They share “What is this book about?”, “Who should read it?”, “What each chapter explains?”, and sometimes even “How to Read?”. I find this information very useful before starting to read the book. Who could know the best way to read the book better than the author, right?
I scan the chapter I am going to read. Scanning should be fast, and it should not take much of my time.
- I go over the titles,
- I glance over the images,
- I observe how long the chapter is and decide if I need to split it into smaller chunks.
Skimming is again faster than the actual reading but slower than scanning.
- I pay more attention on the subtitles, captioning of the images.
- I read the first and last sentences of each paragraph.
- I read the code snippets.
- I try to get the main idea of each part and do not spend time on details.
- I try to take mental notes of what might need more attention and what might not during the full reading phase. Please note that I use the term “mental” here because I do not want to spend time taking physical notes. It is way easier to remember “Yeah, this looks important” in your head than typing/writing “Pay attention to X”.
- I do not linger. This is something I found important because it is easy to get started reading the whole thing as you try to skim.
3. Complete Reading
This is when the previous steps pay off.
- I read the chapter completely.
- I pay attention to the parts I took a mental note of during skimming.
- I close the book and take notes in my own words. For me, it is usually hard than it sounds. But it is essential to use your own words. To describe what you’ve read you need to find the correct words, what do those words mean to you. And since you are taking notes you need to be able to summarize it. Sometimes as I write my notes I realize that I cannot find a word to describe it or even better start to question what I am writing down. This is a good indicator that I have not understood that concept in enough detail to internalize.
- I write down my questions. I usually keep reading and collecting my questions with the hope that they might get answered as I read. If I could not answer my questions as I read the book, they will be my next topics to research.
Here’s the best part. If you are like me and spend some extra time when taking notes trying to make them look beautiful, with a few little adjustments you can publish them as a blog post!
Everyone’s learning process is different, and this is mine. I wanted document it and share with you all. Who knows, someone with a similar learning process may find this post very useful! You can apply the ideas I share above to any technical material with a few little tweaks.