I have read programming books for years. There was a time when I could write a “Hello World” program in each of seven or eight languages. That time has passed, mainly because I haven’t been intimately involved in any specific software project for many years. Still, I have this habit of reading programming books and enjoying them, perhaps in the hope or expectation that one of these days I’ll find myself with a project in front of me, time to work on it, and motivation to learn a new language or tool to make the project’s vision a reality. Well, here’s the newest book of programming foundational tips that I have read.
97 Things Every Programmer Should Know is a collection of short, two page essays, each by an experienced programmer. The book is a collection of tips and tricks for writing code that works, that is maintainable both by the author and by others, and that will best fit the situation. While the book doesn’t measure up to some of my all time favorites in the genre like The Art of Unix Programming or The Pragmatic Programmer, it wasn’t meant to. This is not an in depth guide to underlying philosophies of coding practices and standards, but quick hit and run articles that would be easy to fully grasp and absorb in short five minute bursts, such as during work or study breaks (which is how I read the book).
Some of the topics included in this book will seem obvious such as “Don’t Ignore That Error” and “Comment Only What The Code Cannot Say,” and some tips are going to serve only as reminders to best practices that are sometimes ignored (to our own peril) like “Check Your Code First Before Looking To Blame Others” and “Make Interfaces Easy To Use Correctly And Difficult To Use Incorrectly,” there are some real gems in the book that aren’t so obvious like one author’s instruction to “Read the Humanities” because they are a great tool to help programmers learn to effectively interact with people and not just software and the advice that says “Don’t Just Learn the Language, Understand Its Culture” so that you will write effectively and idiomatically within each language, rather than writing the same thing using different words.
I can’t say that this is a must-have book for experienced programmers, but anyone at the novice to intermediate levels would certainly benefit from what the book contains. I’ve enjoyed reading it.
Disclosures: I was given my copy of 97 Things Every Programmer Should Know free by O’Reilly as a review copy, I also write for O’Reilly.