Software developers new to the field often reach out for guidance on how to reach the “next level” in their career. Beyond correcting the assumption that expertise in a field is stratified into discrete levels, I often extol the virtues of reading books over web resources. Why? Because that’s what works for me. But also, my explanation is usually met with a-ha’s, and produces action.
The rationalization I give includes the following factors that contrast learning from books to learning from forums, blog posts, magazines, tutorials, and the like.
- Books have more information, and that information is more structured. Authors make choices for how to organize the content of books, and they know that readers have been exposed to information earlier in the book and can leverage that in later explanations.
- Books from major publishers go through rigorous editing, including technical review by other experts.
- The contents of books have been typeset in a way that helps to communicate the information effectively. The fonts, figures, and typographic conventions have been carefully chosen and committed to fixed media to ensure that readers have the best chance of getting the most out of the text. Sadly, ebooks don’t share this advantage.
- Books that have been revised and released as later editions have proven themselves to be successful for many readers, and the revisions polish explanations, taking into account feedback received for earlier editions.
- While many books tutorialize similarly to online courses, they have more space to give tips and expose gotchas thanks to the medium. Footnotes, appendices, and callouts offer further detail when utilized, and later chapters often dive deep into advanced techniques for doing tasks described earlier on.
- Many books have published lists of errata, which I encourage readers to seek out. Seeing the kinds of errors that even technical editors miss is extremely valuable for understanding the nuances of the topic.
- Unsure whether a book will be a good investment? There’s a high likelihood that there will be online reviews of it. Learning to ignore the star ratings and read the content of the reviews is an important skill. With a little extra searching, you can find reviews by industry professionals on their personal blogs—probably the best information available about the quality of a title.
- Sharing books is an effective way to create a significant amount of common technical ground between professionals.
- Books become references once they’ve been read. Using books for reference has a tendency to reveal related, contextual information about the content being looked up.
Having said all that, I admit: there are some topics that are less ideal to learn from books, and some there just aren’t books about! I’ve used numerous technologies during my career that were still in development. Their APIs were in flux, and there the audiences were too small for books to be economically viable.
Another gotcha is the time it takes to read a book versus the pressure of implementing a technology on the job. It pays to be in the habit of thinking ahead a few weeks about what unfamiliar technologies will be used in upcoming projects.
I also recommend reading books on familiar subjects. Advanced books on known topics can be put to use immediately, and that helps lock in the knowledge.
One consequence of my belief in the utility of books is that I read a lot of books aimed at beginners in order to know what the best, most up-to-date titles to recommend are. An interesting benefit of that is that I get exposed to new ways of teaching concepts which is invaluable when mentoring devs.
I don’t recall ever thinking that a book I had read was a waste of time. Even when the text didn’t flow, or there were typos, or I disagreed with the author about an opinion they expressed, I always came away a better dev. And, even if I don’t have the capacity to read every day, always having a next tech book to read keeps me motivated to become a more knowledgeable professional. 📚