After my brief stint as an Environmental Health Specialist, I switched to a technology career. As aforementioned, my schooling was in Environmental Studies (policy, light science), so I spent the first part of my “new” career reading and learning about the profession. Most books in the space were very technical and focused on a particular product or skill or language (“Visual Basic for Dummies!”)… and I certainly churned through many of them. But one book shone above the rest: The Pragmatic Programmer.
My wife never comments on the books I read, but even she noticed how much time I spent with this book over the years. TPP is the polar opposite of a tech book focused on a specific topic. Instead, it addressed how a programmer (somewhat dated term, now commonly called a developer) should think about their work and career habits, training and approach to the work. So many of the lessons imparted in these pages made their way to my professional and everyday life. Thomas and Hunt, the authors, had a theory/approach called “Tracer Bullet Development”. Basically, they prescribed building a very basic, working part of all aspects of a system to make sure the idea would work… don’t build the middle layer completely, then move to the front end, then to the db and, only after months or years of work, discover basic holes in the concept. Get all the pieces framed out and fire off a tracer bullet to ensure the concept is sound and they aren’t major obstacles (performance between layers, security, technologies that don’t talk to each other, etc.). I’ve championed the TBD approach in every software project I’ve led or managed since, with great results. And it crosses over into other parts of life as well. TPP is full of quick (but deep) lessons like this, including a heuristic about lazy programmers… the lazier the better (a cheeky way to describe programmers loathing of repetitive tasks, so they lean on automation, which removes risk of error and forgetting. Useful well beyond programming * see finance gurus*. I’ve used TBD thinking everywhere in my life).
Not only is TPP chock-full of fantastic lessons and advice, but the book itself is brilliant. The authors clearly concentrated not only the prose but the text, layout, etc. And use it as a lesson in automation, layout, etc. DRY… Don’t Repeat Yourself. YAGNI… You ain’t gonna need it. Don’t Live with broken windows. Certainly, in the over twenty years since (my version) of the book published, a lot has changed and some of their advice seems dated. Thomas and Hunt published an updated version; I haven’t read it because I don’t actively practice the craft anymore… based on how much the original version influenced me, I probably should.