As I reflect on 2018, there were three programming books I enjoyed reading and learned a lot from. I thought I would share my summary of each book.
The Pragmatic Programmer by Andrew Hunt and David Thomas
Recommended to me by my boss, this is a timeless guide to programming. Programming and technology moves fast, yet despite being written in 1999 this book is still relevant today. In my opinion, the fact this is the case shows just how important the principles the book teaches are. This book really helped me with understanding programming best practices and how I can build those best practices into my daily work. It’s a reference to keep coming back to as I progress in my programming career.
Coders at Work by Peter Seibel
Another recommendation from my boss, this is a series of interviews with incredible programmers. It is interesting reading about the different approaches these programmers take to their work.
I also enjoyed reading about Brad Fitzpatrick and his incredible blend of programming skills and business/open source acumen with LiveJournal and Memcached as great examples of this.
And from a broader industry perspective a very topical and important theme, reading about Fran Allen’s experience of the how the industry became male dominated and her views on the importance of increasing diversity.
The DevOps Handbook by Gene Kim, Jez Humble, Patrick Debois, John Willis
This was probably my favourite programming book I read last year. It’s full title is The DevOps Handbook:: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
My background, prior to switching careers, was in Supply Chain and Operations (in the manufacturing sense) including lean and process optimisation work. This book was a real eye opener, taking a manufacturing operational view to building software. The book explains how a DevOps culture looking at People, Process and Tools can drastically improve a software company’s performance, in terms of speed to market and software resilience.
The insight that infrastructure as code is actually the most important aspect to use version control (rather than as I had previously assumed for development code) was a huge point but once digested makes sense. If you have an interest in DevOps and how teams work to build software, I highly recommend this book.