Five Programming Books That Changed How I Think

birdculture3 pts0 comments

Five Programming Books That Changed How I Think

Code for Humans and Machines

SubscribeSign in

Trends & Reflections<br>Five Programming Books That Changed How I Think<br>A look beyond the usual top five to discover other books that are profoundly novel. Each book influenced how I think about code.

Adam Tornhill<br>Aug 11, 2026

Share

Since you’re reading this post, I think it’s safe to assume that you — just like me — love top five lists. I click on more lists than I care to remember, but often end up doing just a casual scroll. Most lists tend to rehash the same five classics.<br>In this article, I’d like to go beyond the usual suspects and highlight books that influenced how I think about code.<br>This selection is from books written pre-2015. Why stop there? Simply because a decade is the time I need to truly see the impact a specific book had on me.<br>The litmus test is: did the book a) change my coding style, and b) was it a sustainable change that made a positive difference?<br>My take on the classics

It wouldn’t be fair to just skim past the common recommendations. So let me fall into my own trap with a brief take on those.<br>First, Refactoring, Domain-Driven Design, and the Pragmatic Programmer are all classics for a reason. Amazing books, and mandatory reads.<br>Working Effectively with Legacy Code deserves all its praise, and of course everyone (yes, really) should check out the Mythical Man-Month.<br>Clean Code is another standard recommendation, but that one wasn't for me. There are useful design principles in there worth studying, but the book as a whole is too narrow and a bit too dogmatic for my taste. Your mileage might vary. I'd point to Modern Software Engineering by David Farley instead. (See — There are exceptions to all rules. Even my "pre-2015" rule.)<br>With that said, it’s time for my own list. What do we find when we look beyond these classics?<br>Beyond the usual suspects: Adam’s Top 5 Programming Books

Smalltalk Best Practice Patterns. True, Kent Beck is better known for his later work, which is excellent too. But Smalltalk Best Practice Patterns is particularly strong on coding style. I learned a lot by just reading the code examples. Small tweaks to names and abstractions add up. No one captures that better than Kent.

Structure and Interpretation of Computer Programs (SICP) by Gerald Jay Sussman and Hal Abelson. SICP is my all-time favourite programming book. It’s also where I learned about the power of wishful thinking when coding. SICP uses wishful thinking as a design tool: write code as if the abstraction already existed. Pretend. Then, once the ideal abstraction has taken shape, you go ahead and implement those functions. This meta-level is what made SICP so valuable. Ultimately, it’s a book that teaches how to think about code and problem solving. I’m tempted to even say that SICP is more a work of art than a pure coding book, but I won’t go there. A beautiful book.

Paradigms of Artificial Intelligence by Peter Norvig. Learning the AI described in this book probably won’t land you a job today. But reading the code examples will transform how you think about source code. The book shines when it comes to code comments, a topic that I’ve never seen demonstrated well in other sources. Here we get to see how comments become valuable as a narrative that explains both intent and reasoning. Brilliant, just brilliant.

Facts and Fallacies of Software Engineering by Robert L. Glass. In essence, this is a book about an industry that refuses to learn. That was true 25 years ago when this book was published, and it’s probably twice as true today. (Just think about all the AI adoption metrics being rolled out — back to productivity mistaken for lines of code produced, only more elaborate. And expensive). What I like about this book is that Glass doesn’t present anything new. Quite the opposite, actually. Rather, it’s about research lessons that we all should know, but tend to forget. Ever had to do an estimate, or plan according to a requirements spec? Or maybe you thought that enough eyeballs make all bugs shallow? Then this book is for you. A great work by a fantastic author.

Thinking Forth by Leo Brodie. I used to have this habit where I learned various programming languages. To challenge my perspective, I chose languages from families and paradigms that were fundamentally different from what I already knew. Occasionally, I stumbled upon greatness. Thinking Forth presents programming as a creative process, and it delivers those lessons in an entertaining and pedagogical way. The book is particularly strong on software analysis and design, but it’s the execution and technical writing that brought the book to my top five. This is the book for anyone writing about software — Leo’s way is the way to do it.

Since the ranking is zero-indexed, there’s one more book in the top 5:<br>The Nature of Code: Simulating Natural Systems with Processing by Daniel Shiffman. This book is a beautiful introduction to simulations...

book code think books five programming

Related Articles