How to read technical books

Personal experience of getting a real understanding, not an illusion of it

Yan Babitski
Jan 24 · 6 min read

A few weeks ago, I got an email from Amazon with a book recommendation, and I was about to follow the usual “take a quick look — archive” routine, but this time the recommendation was good. The book was called “Streaming Systems,” and it had the same red O’Reilly design as “Designing Data-Intensive Applications.” With the hope that the former would be similar to the latter, I’ve placed an order.

It feels great to order and receive books, but it’s an entirely different story to read them. It is exciting to open the package and take a look at the contents, but further reading requires some discipline, some time allocated to it, free of Netflix and other things. Especially technical books, full of complicated principles and examples.

Until today I’ve been reading the book as usual: I would deliberately set some amount of time, sit down, open the book, and start reading. But today I decided to go a little bit different route and not only read but also take notes.

The difference was staggering.

I realized how much of an illusion of understanding I had when I was just reading. Whatever the content of the sentence was, there was a feeling, “ok, I got it. Maybe not all of it, though, but it’s ok, moving on.” It doesn’t work that way while taking notes. There is the same feeling while reading, but when you’re trying to summarize and put something on paper, you suddenly realize that “wait, what was that?”

And not only understanding has improved.

How reading could happen

“Just reading” technical book could become very dull, very quickly. It’s a particular type of boredom that comes from this “illusion of understanding.” For me the experience is usually something like this:

When reading through the example, I notice that I’m not quite getting it, but at the same time, I don’t want to stop and make an effort to understand it. A quick mental negotiation happens: “well, this example is sort of complicated and, to be honest, I don’t get it. But I’ve made good progress so far, and it’s not like I’m entirely not getting it — some parts are ok, so let’s keep going”. And I keep going.

But I still feel that I’m not quite getting it. After some more reading, I stop, exercise will power and make a deliberate effort to go back and figure out that example. But the effort is entirely unsuccessful: instead of “figuring out,” I‘m basically staring at the different parts of the example, re-reading words and numbers. I do this for a minute or two experiencing hard feeling “this stuff is complicated,” then I become too mentally tired and want to stop it. To actually stop, I would quickly find something to rationalize this decision: “Ah, this window is fixed, so the timeline is sliced in equal intervals of two minutes — got it.” And then move forward.

But now I feel even more that I’m not getting it, so the next example is more confusing, and the overall unconscious feeling that such kind of reading is useless continues to pile up. At some point goal becomes “read until the end of section/chapter,” and after that, reading stops.

It’s not necessarily that this kind of reading is completely useless. There is a benefit from it: at the very least, it is possible to become familiar with some terminology and get an idea of how some piece of knowledge could be looked up. “Aha, we are talking about timeouts for sessions, and I remember there was something about it in a chapter about advanced windowing.” But it’s a hardly effective way and quite daunting task. Will power is not sustainable in the long run.

Wouldn’t it be much nicer to feel engaged in the process?

Reading and taking notes

What I discovered while reading and taking notes is that this ridiculous game of compromises between “need” and “want” is not happening at all.

There is no need to force yourself to stop and figure out an example — somehow, you are already in the mode of figuring things out, so it is a natural thing to do it. There is no boredom, mental negotiations, exercising of will power, and the process becomes engaging, like solving a puzzle or taking up a quest.

One possible explanation of why it’s so different could be that our brain has two modes of thinking: fast and slow. This concept is brilliantly explained in this video:

Big thanks to Derek Muller for this exceptional video and permission to use it

The video mentions the experiment, where the error rate for the test that was printed in hard-to-read font with bad contrast was significantly lower than for the easy-to-read test. It seems that reading with and without note-taking is similar to a taking test that is hard or easy to read: a need to sum paragraph up and write it down activates slow thinking, while just reading allows us to stay in fast mode.

The downside is that it would take more time to read while taking notes. At least it was the case for me — the first few pages took about 10 minutes to write things down. It also took some time to understand the examples because I had to go back to previous chapters to fill in gaps I had from previous reading without notes.

But the result is subjectively very well worth it. You definitely get much more, and in addition to that, you feel good afterward. You don’t have a daunting feeling of almost complete lack of understanding. On the contrary — it feels good because you’ve figured something out. It feels like you understand something, not pretend to understand. And the notes look nice too, giving some sense of accomplishment.

Big thanks to Anton Bulyonov for help with photos and permission to use it

Streaming Systems” as well as “Designing Data-Intensive Applications” are books that tell about concepts and don’t have much code in it. It is different for books focused on a specific programming language or technology. But the idea remains the same — experience with the book (and the language and technology) is much more enjoyable if you go through it in slow mode: it’s not practical to take notes about the code, but it is to type and execute it. There is a catch, though: it’s hard to make a switch when just copying the code, so it might be a good experiment to try to type it manually.

There is hardly anything new in the advice to take notes. It is a proven method to improve learning. But for me taking notes was associated with something you do in class during the lecture (and to write down everything that lecturer said in a rush is not the best experience, to be honest). It turns out it doesn’t have to be.

The Startup

Medium's largest active publication, followed by +608K people. Follow to join our community.

Yan Babitski

Written by

Software engineer @ Google

The Startup

Medium's largest active publication, followed by +608K people. Follow to join our community.

More From Medium

More from The Startup

More from The Startup

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade