All Posts

Building a solid foundation by reading technical books

What are technical books, why I think they are a great way to build up your knowledge and how to develop a reading habit.

Spider-Man having a read

What do I mean by technical books?

In my view, a technical or tech book is any non-fiction book that talks in-depth about a subject of a particular field or industry. More specifically, from this point on, our discussion will only consider the software engineering technical books — those that tackle subjects from the software industry. Even so, most of what we’ll cover is also applicable to other industries or areas of expertise.

My experience with tech books

I’ve been consistently reading tech books for almost 2 years. Prior to this, I had little to no interest in reading them. For example, while getting my Bachelor’s in Computer Science, I read zero pages of any book. Let’s explore how this gradually changed.

Why I wasn’t reading

In college, at the start of every semester all the teachers dumped on us huge lists of bibliography. This practice was unfortunately present at every stage of my education — professors recommended books and the students promptly ignored them. This meant I associated tech books with the ones recommended by the professors, which was really detrimental to my desire of reading. At the time I thought most of my courses were uninteresting or just plain boring, so naturally I didn’t want to spend even more time dealing with those subjects.

I was also not used to allocating chunks of my time for reading. Why should I read through these dense and almost arcane materials when I could more easily and quickly find any answers I had on the interwebs — StackOverflow is all I’ll ever need, right? The fast feedback loop was intoxicating, especially to a novice engineer.

Why I started reading

The first tech “book” I read is actually a series of open-source books published on GitHub by Kyle Simpson. The series is called You Don’t Know JS and is a deep dive analysis of the JavaScript language, starting all the way from its syntax, up to advanced asynchronous constructs. In my opinion, it’s a must read for anyone interested in learning the whys of the language.

I came upon this series about the time I started learning about the asynchronous model of the language and its event loop mechanism. All I had learned until that point about JavaScript was from articles and the questions of other similarly confused engineers. While my knowledge of some features was alright, I had some important gaps in my understanding of basic mechanisms. As it turns out, it’s really hard to get a cohesive view of a complex topic while relying solely on blog posts and StackOverflow threads.

I had the first book bookmarked in my browser for some time now, but I was always putting it off. This changed in one faithful holiday where I decided to give it a go and see why everybody was speaking about it so highly. I was blown away by it. Even though the content of the first book is addressed to the absolute beginners, I found its format and pace really engrossing. I finished it in two sittings and quickly started the second one. And then the third. And then the holiday ended and I returned to work as usual, but I immediately noticed I was feeling much more comfortable with a lot of the topics I’ve been struggling with before. The most peculiar thing — I wasn’t feeling like I’d put in any considerable effort to achieve this. It felt natural. It felt good. I was onto something.

Benefits of reading tech books

Let’s quickly get some things out of the way. Firstly, a tech book is still a book at the end of the day. Hopefully there’s no need to argue why reading books in general is a great habit. Secondly, let’s now address the comparison of tech books versus articles, tutorials, forums or any other online resource. If we were to choose between doing nothing and doing any sort of learning activity, of course we should try to soak in as much information as possible, so any resource we can find may prove to be valuable. The items discussed below provide benefits over other common learning resources.

  • A tech book can provide a deeper understanding of a subject—Books are usually hundreds of pages long, so the authors can go in a lot more detail than a blog post meant to be read in a couple of minutes ever could.
  • A tech book is a way to completely immerse yourself in a subject or field—While reading a book you are much more connected to the material and can have almost zero distractions. You are usually holding a physical item in your hand for tens of minutes (printed book or e-reader) so you inevitably end up focused on what you’re reading. Compare this with a video tutorial hosted on a platform like YouTube. It may just happen that YouTube decided to suggest a couple of cat videos located just a few pixels to the right. It would be a shame to ignore them. Perhaps we could check one out.
  • A tech book has its content verified by other experts and has reputable sources—This may not seem that important at the first glance, but consider this: how many times have you actually checked the veracity of online resources? If you’re anything like me, the answer is probably close to never. This should be a concern, since it has become increasingly easier to forge and twist information. In other cases, it may just be a long chain of misinterpretations and the same material being rephrased which eventually leads to poor or incomplete information. Every book published by any respectable organisation will have to pass various checks before hitting the shelves, so in most cases the information can be trusted, barring the subjectiveness of the author. Moreover, the authors, editors and the reviewers of tech books are usually respected academics or industry leaders, meaning that the material itself will usually be of a superior quality than most online resources.
  • A tech book provides a gateway to other publications—This is correlated with the point above but I think it deserves a place of its own. Any respectable book will cite the papers and books which provided useful information to the author(s). In turn, those publications will cite other publications, and so on. This means that if you’ve found a subject you’re particularly interested in and want to learn more about it, you can easily follow the bread of crumbs and go as deep or as wide as you want. Allowing yourself to explore these publications will mean that you will quickly find about other great authors and books. I think this is one of the strongest positive feedback loops that a tech book gives to its readers.

The habit of reading

If I’ve managed to (re-)spark any desire to read in you, then I propose we contain our excitement for just a second. As with any new activity, we are excited and can’t wait to get started, but we usually abandon it after a relatively short period of time. Think about New Year’s resolutions. January may well be the month with the most gym subscriptions sold, but by March more than half of those people have seemingly abandoned the idea of getting into shape.

It’s very easy to see a similar thing happening here, so don’t be discouraged if it happens to you. Even though I had experienced the benefits of reading, I abandoned the same book several times before the action of reading really stuck with me — also known as a habit. Building habits is definitely not an easy thing to do, but fortunately there a great deal of books out there talking about this. I recommend Charles Duhigg’s The Power of Habit if you want to learn more about why habits exist and how to “reverse-engineer” them.

In order to build a habit, I decided to try reading a few pages before going into work. This meant that I had to get up a bit earlier than I was used to. Usually it would’ve been really hard or near impossible to do this, but I managed to do it because I had a reason: reading. After trying this technique for some weeks, I’ve noticed that I was burning through the pages at a surprisingly good rate. It’s amazing to see the progress you’re making by reading a couple of pages every single morning. Another thing that helped me building this habit was using an e-reader. As we’ve talked about in the benefits section, reading is a way to immerse yourself completely in a subject, but that happens only if you are able to disconnect from your phone or laptop. I mainly gone the e-reader route because I hadn’t been able to find the books I was interested in at my local libraries. Another benefit is its portability: it’s considerably easier to read a 700-page book while riding the subway.

Where to start

I found that there are two main categories of tech books: hands-on and theoretical. The majority of books will fall somewhere in between these two sides.

Hands-on books tend to be very specialised and contain a lot of code snippets, configuration files, step-by-step instructions etc. Theoretical books are the opposite, they tend to be broader in scope and have little to no practical information because they contain more abstract concepts. Personally I found the biggest value in reading the latter, and I think it’s a great starting point if you want to get into reading. While certain hands-on books are really good and can elevate your knowledge of a subject, from my experience, they tend to be more hit-or-miss. Another disadvantage is that they will more easily get out-of-date because they tend to talk about specific versions of libraries or frameworks.

Reading books that lie more on the theoretical side will help you build a solid foundation in the topics you are interested in. Some examples for this category include: Uncle Bob’s Clean Code or John Ousterhout’s A Philosophy of Software Design. In general they tend to be easier to read and digest than the hands-on approach. They tackle subjects at higher levels and usually provide some food for thought which you can share with your co-workers — a great way to share ideas and build a continuous learning culture.

In the end, it doesn’t matter too much what kind of book you choose to go for, but rather to whet your appetite for reading and start to see the benefits it can provide. Think about what you’ve always wanted to learn or explore, choose a book, and just go for it.

Originally published on Medium.