How I read technical books
09 Mar 2022My main shtick in this blog are the reviews of technical books. I’ve been reading these books from the very beginning of my career as backend software developer and formed quite a routine around it. I know people struggle sometimes with forming a learning habit, so I decided to share mine as hearing about different things that work for different people might be helpful.
I will focus on technical books, but generally I apply the same routine if I watch courses online or read documentation/ online resources.
TL;DR
- 30-60 minutes
- In the very morning, before opening email or Slack
- Paper books or Kindle to avoid distractions
- Extensive note taking to aid focus and memory
- Consistency to form habit: same environment, music, etc.
The routine
I read my books first thing in the morning. I’ve tried different times for this - just before bed or in the middle of the day if there is some idle time available. But mornings worked the best by far. It is easiest to have a consistent routine in the morning. Plans for the evenings might vary greatly during the week and then it might be hard to find the time or the energy to read. And it is quite difficult to step away from work or Slack notifications in the middle of the day, even if not too busy.
I think consistency is very important for forming habits. For example I usually read with my headphones on, listening to Brain Food playlist on Spotify. And I noticed that when I find it hard to focus, feel a little annoyed and restless, putting on the headphones with familiar playlist calms me down and back into focus. I think it is because there is already some link in my brain that relates those things with quality focus time.
Another thing that helps the focus is eliminating distractions. When possible, I try to read a physical, paper book. And if I have to learn from an online resource, I will try to do it on my personal laptop, to avoid the temptation of checking work things and be drawn into them immediately. Worst case scenario, if I have to read on my work laptop, I will make an effort to turn Slack and email off without even looking into them. Every time I fail to do that some 15 minutes of my dedicated learning time just evaporates.
The dedicated learning time for me is from 8 AM to 9 AM. The actual reading time my vary from as little as 20 minutes to the entire hour. Sometimes I’m just too slow with my morning to get to learning in time. Sometimes I will stop if I feel my focus slipping too much. I will always stop at 9 AM, as I need some time to get my tasks in order before the daily standup at 10 AM.
This routine has been a great way for me to start workdays. I’m quite an anxious person in general and being able to focus on a single thing completely is very calming. Plus this gives sort of a transition period between personal thoughts and worries to those of professional nature.
The process
By ‘reading’ I actually mean extensive note taking. Back in the university I discovered that writing down is the best way of learning for me (I guess I have a read/write learning style). This keeps my attention most engaged, because my goal is not only to get through a page, but find what is really important to write down. And since I don’t want to write the entire book down - I really have to think.
Alternating between reading and writing also helps to keep the mind sharp. Usually I’d read a few pages (ideally an entire sub-chapter if they are not very long), highlighting the things that catches my attention and then spend few minutes deciding how I want to write that down. Rinse and repeat. By the end of the hour, when I feel my focus slipping away, I might start switching between reading and writing more often.
I structure my notes by book chapters. It is very helpful if later I want to look up more information in the book again. Plus I find it satisfying to write down the tittle of the next chapter as a sign I’m done with this one. I even group related notes in different notebooks sometimes. For example I wrote down notes for Refactoring: Ruby edition to the same notebook (with Ruby logo on it) where I summarized few things from the Rails documentation when I just started learning Ruby. Notes for Udi Dahan’s Advanced Distributed Systems Design course and Greg Young’s CQRS course also went to a notebook together.
Once I’m done reading
Is all this extensive note taking just to be thrown away? No, of course not. It usually takes me a couple of months or even more to get through an entire book. That means I might forget the full picture by the time I finish it. So I go through my notes to remind myself what I liked and disliked about the book. This is what helps me to write these reviews.
I don’t throw the notes away once I’m done with the review either. They come in handy if I’m preparing for a job interview, a technical talk or something similar. I can glance through the notes quickly to jolt the memory. In fact, I used my notes to write the review for Greg Young’s CQRS course 2 years after watching it. I guess the notes were that good!
How do I choose what to read?
To practice your learning routine, you also need to find resources. How do I do that?
- By following my colleagues on Goodreads and seeing which technical books they read and rate well;
- At Vinted we have a Slack channel for sharing interesting technical reads;
- Sometimes book recommendations are shared on Hacker News;
- By following people like Udi Dahan, Greg Young, Mark Seemann etc. on Twitter;
- By Googleing resources for the topics I’m interested in. For example, when I wanted to learn more about monitoring I just checked what O’Reilly Media has published on the topic.