Here are five books that influenced my coding style and working practices early in my career. A top list of anything is deeply personal, so I’ve tried to select books I found both inspirational and informative, with an equal focus on technical and non-technical skills.
Personally, I feel the content of these books will most benefit those at the start of their careers. However, those with more experience will still find plenty of knowledge nuggets to be devoured within their pages.
The Pragmatic Programmer
Read if you want an overview of best practices
Of all the books on the list this one is probably the most quintessential software development text, often considered a timeless classic. It sets out the best approaches and common pitfalls of many aspects of software development and makes good use of entertaining anecdotes and thoughtful examples to illustrate its points. It was recently updated with a ‘20th Anniversary Edition’ making it even more relevant in the modern age of software development.
It’s a book that you will read once and come away inspired, and then revisit years later, with plenty of ‘aha’ moments, as you realise you have experienced many of the situations described first-hand.
Read if you want to write better code
As the title suggests this book is all about writing clean, readable, easy to understand code. It goes through all aspects of code writing relevant to all languages, with simple examples in Java to illustrate concepts. It also has an excellent section on common code smells as well as a basic introduction to test driven development (TDD), the perfect precursor to another book on this list.
It’s one I come back to time and time again to refresh myself on code writing best practices and probably should be considered a must-read classic.
The Phoenix Project
Read if you want to know more about the development process
This book is a different beast compared with the others on the list. Rather than a set of chapters presenting different aspects of software development, the book weaves a fictional narrative about a group of employees working in an imaginary IT company where everything goes wrong.
The magic of the book is that it manages to wrap a comprehensive study of bad development practices, and the benefit of a DevOps approach, within an entertaining story. It’s a much easier read than other books on the list, perfect for a holiday.
Test-Driven Development (TDD)
Read if you want to learn what test driven development is
Kent Beck’s seminal work on TDD can be a challenging read, but once you wrap your head around the concepts you will have a light bulb moment where it all starts to make sense.
The book contains my favourite example of TDD, implementing an object orientated design to solve the ‘multi-currency’ problem. The chapter on TDD patterns is also a great place to look if you’re not sure how to start using the approach in your own code, and it certainly inspired me to give it a go.
Read if you want to know more about the history of computing
This is another choice which departs from the traditional style of a software development book. Really, it’s a history of computers starting from the early days of the telegraph up to the development of microprocessors. The author manages to tell an engaging history lesson using imaginative examples to explain concepts to a non-technical audience.
I found it a riveting read and I think you will to if you’re into this sort of thing.
This is just a small selection of my personal favourites. There are many more books that could have made this list, so I encourage you to go out there and discover them for yourself.
I find that reading about code makes an excellent counterpoint to writing code. Often when I’m stuck on a particularly troublesome problem I’ll take a break, pick up a book, and find that the answer to the problem was in my head after all; it just needed the space to take a front row seat.