It’s currently 2020, the start of a new decade and the birth of a new era of human progression… so why on Earth would we be looking back to non-digital methods of gaining knowledge? Reading books?! That’s so 20th century. Why do that when we can consume well edited videos, digital articles with quirky GIFs and documentation to learn something?

Ever had that feeling like your knowledge on a technical subject is pretty scattered and if asked to explain it you’d probably struggle? That’s not uncommon at all for many budding developers.

You may even think when starting as a programmer that your current stack is all you really need to know well to further your programatic knowledge.

Not quite. Programming is a wide field that encompasses many commonalities. Spending time on one stack has its benefits but understanding general programming patterns will serve you better further down your career. This becomes evident when you enter a world that you become the person that has to decide on the data flows, state, architecture and technology choices for your project.

You can get away with just focusing on your stack for 2–3 years, but that’s living life in the slow lane. If you really want to speed things up and get the glue that will bind all your existing programming knowledge together. Read.

Don’t get me wrong, don’t fall into the trap of ‘tutorial hell’ and always be learning to code but never actually coding by reading lots. You’ve gotta still go out there and practice your butt off no matter how many learning resources you consume.

Imagine your programming knowledge like a Real Time Strategy (RTS) Map, with places of interest but more importantly a fog of war. Now this fog of war covers the entire map when you start your game. Though over time, as you carve your way through the map, more and more becomes available. As such, you may think you’ve covered the whole map but….there’s always gaps on your technical knowledge map.

Reading fills in those gaps and makes sure you get a comprehensive knowledge on the subject, which is the exact journey I went through. I had many unanswered questions and unknown terms that kept cropping up in my career, until I started to read more.

Let’s take JavaScript as an example. JavaScript like many other languages shares several commonalities between other languages. Understanding JavaScripts patterns will greatly help you if you;-

Wanted to master that language

Understand what makes a language successful

Architectural knowledge on scaling projects up in most languages

MVC Pattern

Common Programming patterns(Composite / Observer / Iterator)

Compilation (run time / build time)

Learn another language

etc (the list goes on and on)

So if you wanted to learn JavaScript patterns you could adhoc go through the internet and learn them in an organised/disorganised fashion. One-by-one you’ll learn these patterns or maybe compound learn them by topics. Who know’s, it depends on your organisational skills, what learning resources are available and your time. You could potentially be dealing with multiple different writing styles that may or may not glaze over certain aspects of a topic that is crucial to understanding any JS/programming patterns. You can see how these inconsistencies can stack up over time and gaps start to appear in your learning.

Now, let’s say you decide you want to learn a topic and you’ve done all the introductory videos, articles and tutorials. Your surface level knowledge is passable but you can take it that one step further. Yes, you guessed it…read the best book on the topic in the field you’re learning (or several of them).

Now let’s return to our example of wanting to learn JavaScript Patterns. One of the top books in the field is Addy Osmani’s “Learning JavaScript Design Patterns”.

In it, there’s a section based on learning the ‘Module’ pattern.

What follow’s here is typical of a book of this kind in that it goes out of its way to set the scene for this topic and all its branching points that aid in the understanding of it.

https://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript

Here’s an excerpt from the introduction of that chapter:

“In JavaScript, there are several options for implementing modules. These include: - The Module pattern - Object literal notation - AMD modules - CommonJS modules - ECMAScript Harmony modules The Module pattern is based in part on object literals and so it makes sense to refresh our knowledge of them first.”

So in the first part he explains that there are several ways of implementing a module which paints the landscape and removes the fog of war we spoke about earlier. You now know the landscape which may not have been evident before.

Not only that it goes on further in the bottom half of the excerpt to talk about ‘Object Literals’ and how it’s a part of the origins of the Module Pattern. It then goes further on to explain this side branch of the topic before jumping into Patterns itself.

Already, from just that very small quote of this 254 page book you should have a good idea of the cheat codes available to boost your learning exponentially faster than learning adhoc all over the web.

You should be using books just like any other rich media resource as a glue to piece together all your bits of knowledge into one cohesive understanding on a topic.

Conclusion

Reading a book isn’t the golden ticket to becoming a 10x programmer but it will help you jump forward in your learning FAR quicker than not. The moment I switched to reading programatic books my technical knowledge grew immensely and I’m miles away from the programmer I was just one year ago.

Like weight loss though, diet has to paired with exercise for progress. Similarly when trying to learn a new programming concept, language, library or framework… reading has to be paired with actual coding for real progress.

Today, on the first day of your new journey as a well read programmer give reading EVERYTHING you have and see how far you’ve come 12 months later. Try reading a programming book every 1-2 months and watch your fog of war disperse from the field altogether.

For all the many thousands of years books have been around, they still in the 21st century continue to be invaluable in our learning process. Use that to your advantage and slot it in your learning tool belt today.