10 Books All Software Developers Should Read
When embarking on any career it’s always worth heeding the advice of those who have traveled along the same path before us. Software development is no different. Sure, there is an argument for taking a hands-on approach to solving programming problems - experimenting and failing are a key part of learning the trade. However, there is no real substitute for the deep knowledge and understanding that you can get from reading books written by those with far more experience. Once you grasp the core concepts of software development and engineering, everything else you encounter on a day-by-day basis will make much more sense.
What books should you read as a software developer? That’s a question with a thousand answers, given the huge range of material available. However, we’ve compiled a ‘starter pack’ list of 10 of the most important and influential books that we think all software developers would find interesting and useful.
1. Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin
No list of the top books for developers would be complete without Robert ‘Uncle Bob’ Martin’s book on writing clean code. It is all about the principles of writing code that is readable and easily maintained, which is fundamental to the long-term success of any software project. It includes many examples and case studies that will challenge devs to think about what makes code ‘good’ or ‘bad’. It also covers common programming mistakes and ‘code smells’, giving you a broad knowledge base to guide how you read and write code in the future.
2. The Pragmatic Programmer by Andrew Hunt and David Thomas
This book was written in 1999 but still has a lot of useful information and advice for software developers today. As the title of the book suggests, it is a practical guide based on many years of experience that the authors have had in the field. The book includes tips for avoiding common mistakes as well as ideas for improving the development process. In short, it’s something that’s useful to have at hand while you’re working on a project.
3. Code Complete: A Practical Handbook of Software Construction by Steve McConnell
Another one of the “must have” books for new software developers. It covers a full range of topics, including coding, testing, design, and debugging. This book will help you write clean and clear code based on long standing principles, which is why it remains valid despite the updated 2nd edition being published back in 2004.
4. Programming Pearls by Jon Bentley
Yet another highly influential book, but written differently when compared to many others on this list. Bentley’s collection of programming “pearls” are issues that have always troubled programmers, and here he offers creative ideas and solutions when dealing with them. A great read to help you develop a programmers mindset.
5. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides
The so-called ‘Gang of Four’ were made famous by this seminal book, which identifies 23 software design patterns that give devs ready-made solutions for common problems. The design patterns are split into three core categories - creational, structural and behavioral - will illustrations to help readers know how to apply them in different contexts. An important read for programmers. You can read more about some of the most popular design patterns here.
6. Patterns of Enterprise Application Architecture by Martin Fowler
Established software architecture patterns are high-level design structures that are known to work. This book by prolific author Martin Fowler has two parts: first a tutorial on developing enterprise applications and second a deep dive into the specifics of more than different design patterns. Published in 2002 the book does not include more modern concepts and technologies, but it will still give you the foundational knowledge to make key architectural and design decisions when building enterprise applications. An alternative book on software architecture is ‘Clean Architecture: A Craftsman's Guide to Software Structure and Design’ by Robert Martin.
7. Working Effectively with Legacy Code by Michael C. Feathers
Every developer will eventually have to work on legacy or inherited code, and when they do they’ll be grateful to have a copy of this book by Michael Feathers. It gives you easy-to-follow strategies for tackling difficult code, getting it ready for testing, identifying where changes need to be made, making it more readable and adding features where required. Another important book covering the broad issue of working with legacy code is Martin Fowler’s ‘Refactoring: Improving the Design of Existing Code’.
8. The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks
This is one of the oldest books on the list, first written in 1975 and then updated in 1995. Brooks covers key concepts and misconceptions in software engineering, largely based on his experiences at IBM. At its core, the book’s theme is about Brooks' law, which posits that "adding manpower to a late software project makes it later.” A very useful read for anyone involved in large and complex development projects.
9. Soft Skills: The Software Developer's Life Manual by John Sonmez
Being a successful programmer requires a combination of hard and soft skills - alongside technical expertise you need to be a good communicator, negotiator and team player to make it to the top. This book by John Sonmez contains important advice on developing these soft skills. Its short chapters are easy to read and give valuable tips for any aspiring dev.
10. Cracking the Coding Interview by Gayle Laakmann McDowell
This book is designed to give you an edge going into job interviews. It gives strategies and tips on how to break down tricky programming questions and uncover the hidden details within them. It runs through 189 real programming interview questions, and also offers some insight into how top tech firms recruit developers.
There are, of course, many more good books for software developers out there, but this list should be a good starting point. If you’re a developer, we’d love to hear about your favorite reads in the comments below. And if you’re an organization looking for talented developers from Latin America (who have read at least some of these books!), then get in touch with us now!
If you want to stay up to date with all the new content we publish on our blog, share your email and hit the subscribe button.