These are books that changed something in the way I see problems. Some gave me new ideas, others gave names to things I had already sensed. Together, they have had an outsized influence on how I think about systems, intelligence, relationships, software, and knowledge.
I read all of these books from about 1994 through about 2005. Since then, no others have made this list.
The Ingenuity Gap — Thomas Homer-Dixon
The Ingenuity Gap helped crystallize something I have increasingly come to believe: the difficulty of our problems can grow faster than our ability to understand and solve them. More information and more technology do not automatically close that gap. It reinforced my interest in integration, systems, and the need to develop better ways of seeing complex situations rather than merely throwing more machinery at them.
Thought in a Hostile World — Kim Sterelny
This book helped me think about intelligence as something that evolved in response to a difficult, changing world rather than as abstract reasoning detached from it. Organisms have to recognize what matters, exploit opportunities, avoid threats, and function with incomplete information. That perspective has strongly influenced the way I think about cognition and artificial intelligence.
Flawless Consulting — Peter Block
Flawless Consulting made me realize that consulting is much broader than having “consultant” in your job title. Much of professional life consists of applying knowledge, experience, context, and judgment to improve a situation even when you do not control the final decision. In that sense, I realized that I had been a consultant long before I officially became one—and that almost everyone has expertise shaped by a unique collection of experiences that can be useful to others.
Parasite Rex — Carl Zimmer
Parasite Rex changed the way I thought about relationships in nature. An organism cannot always be understood meaningfully in isolation; its behavior, evolution, and even its survival can depend upon extraordinarily intricate relationships with other organisms. Parasites are an especially dramatic example of that interdependence. It helped push me toward seeing relationships—not merely things—as fundamental to understanding a system.
The Fifth Discipline — Peter M. Senge
This is where I first heard of systems thinking, way back in the early 1990s. The important behavior of a system often cannot be understood by examining its components independently. Feedback, delays, reinforcing and balancing forces, mental models, and unintended consequences emerge from how those components interact. That way of thinking became fundamental to nearly everything I have worked on since.
On Intelligence — Jeff Hawkins with Sandra Blakeslee
On Intelligence gave me another way to think about what intelligence actually is. Rather than treating the brain as a conventional computer executing instructions, Hawkins emphasized learned patterns, hierarchy, memory, and prediction. Whether or not every part of the theory survives, that shift—from intelligence as executing rules to intelligence as continuously recognizing and anticipating patterns—stuck with me.
The Guru’s Guide to SQL Server Architecture and Internals — Ken Henderson
This book taught me an important lesson about technical expertise: knowing the commands is not the same thing as knowing the system. Real mastery comes from understanding what is happening underneath—memory, processes, threads, I/O, storage, query processing, and how all the pieces interact. Henderson explicitly approached SQL Server from the perspective of understanding how the application itself was built. That lesson stayed with me well beyond SQL Server: understanding internals gives you intuition that survives changes in tools and interfaces.
This is how I’ve approached teaching since the early 2000s—for better or worse for those who attended my SSAS workshops from 2005-2015 or so.
Essential COM — Don Box
Don Box reinforced much the same lesson I learned from Ken Henderson’s book, but from a different direction. Essential COM was deliberately about understanding why COM worked the way it did rather than simply learning the mechanics of using it. Once I understood interfaces, identity, lifetime, marshaling, and the architectural reasons behind COM, I could reason about problems rather than merely follow recipes. Along with Henderson’s book, it helped convince me that the durable technical skill is not memorizing an API—it is developing an intuitive model of the machinery underneath it.
The Man Who Mistook His Wife for a Hat — Oliver Sachs
This book (and later Hallucinations), strongly influenced how I came to think about perception and insight. What struck me was not simply that the brain can malfunction in peculiar ways, but that many of those peculiarities arise from the same mechanisms that normally make perception so remarkably robust. We do not passively receive reality. The brain continually interprets incomplete signals, recognizes patterns, fills gaps, selects among possibilities, and constructs a coherent experience from them. Different histories, contexts, and neurological conditions can therefore lead people to very different interpretations of essentially the same input. This helped inspire my notion of an Insight Space Graph: rather than imagining reasoning as a single path toward an inevitable conclusion, we can think of a space of possible interpretations and associations, with context changing which relationships become salient and which paths through that space become plausible.