Books Every Developer Should Read
Level up your coding game! Here's a curated list of essential books for developers, from clean code to legacy systems and beyond.
Yesterday at AgileDotNet, before one of Tim's sessions, we were discussing books that every software developer should read — particularly with a group of SMU students who had come down to Houston to attend. I promised I would post the list, so here it is.
The Must-Read List (In Order)
- Head First Object-Oriented Analysis and Design — Brett McLaughlin
- Clean Code: A Handbook of Agile Software Craftsmanship — Robert C. Martin
- Code Complete: A Practical Handbook of Software Construction, Second Edition — Steve McConnell
- Refactoring to Patterns — Joshua Kerievsky
- Working Effectively with Legacy Code — Michael Feathers
- Head First Design Patterns — Eric Freeman
Books You Should Read and Own Eventually
Design Patterns: Elements of Reusable Object-Oriented Software — Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (aka "The Gang of Four")
This is the original work that brought about the terminology of design patterns. We recommend the Head First book above over it simply because its examples are in Smalltalk and C++, which means it's showing its age — but the patterns themselves are timeless.
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win — Kevin Behr
A great story about how Operations and Developers can work together. Should be read by most teams trying to tighten their relationship with their operations team.
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions — Bobby Woolf and Gregor Hohpe
This book should be read and used as the bible for any distributed messaging application you build. Worth remembering that these days, most websites with APIs really are distributed applications.