How To Read A Computer Science Book

Unaligned Partisan
3 min readDec 19, 2019

--

New Year’s is coming up and I kind of wanted to give a couple basic tips that I learned before we head into the next decade.

  • Don’t read it like a novel — One of the mistakes I made trying to read computer science books is that I tended to read it like a storybook. When we’re reading in “storybook” mode, we’re in a cognitively passive mode. That is, we’re not engaging with the content, just absorbing it as we go, forgetting the minute details that may be really important for understanding. The key thing to do here is to start reading actively, which leads me to my next bullet point.
  • Understand exactly what’s going on — Say you’re reading a book about sorting algorithms and they’re talking about merge sort. Instead of reading the description of merge sort (and doing any potential practice problems), try to work each example out in your head or, if you must, on paper. That way, you’ll fully understand how the algorithm works and already have some exposure to using the algorithm, making practice problems (and real-world problems) easier to solve.
  • Take notes — Look, notes aren’t easy for most of us, but taking notes is great for summarizing large amounts of information. If you’re taking an online course, then this is an especially good idea. Don’t just think, “Oh, I’m not in a classroom, so I can just watch the video.” You’re going to forget everything once the unit is over. Writing down the important stuff helps our memory.
  • Don’t try to do every practice problem — This might seem counter-intuitive at first. However, trying to do everything is time-consuming. If you’re able to to every problem in a timely manner, great! That’s the optimal scenario. But let’s face it, not every one of us is going to be brilliant right off the bat. Some topics are hard, and applying the concepts can be difficult. Additionally, sometimes you just don’t want to do all or even a majority of the exercises because it feels like so much work. Relax. You don’t have to be the next Albert Einstein. Just do as much as you can. Any amount is worth something.
  • ALWAYS challenge yourself — Doing easy problems is fine. Those types of problems can help reinforce certain concepts or skills. However, don’t just glance at a problem and say “that’s too easy.” If it is, why not solve it? I used to do this sometimes out of laziness and sometimes to make myself feel better. If a problem is hard, however, don’t just avoid it. Even if you have an instinctual feeling to avoid it, remember: you’re not a genius, and you’ll never become a better computer scientist/programmer/mathematician/whatever if you don’t try. I know it sounds cliché, but it’s worth saying again.

All of the stuff above are habits that I used to have. In fact, to a certain extent, I still do these things. However, one of my goals for next year (and for the rest of my computer science career) is to make myself less vulnerable to these behaviours and instill more productive habits.

How do you read technical books? Leave a comment below.

Happy Holidays! 🎁

--

--

Unaligned Partisan

I like to write about math, computer science, and philosophy.