Yesterday at AgileDotNet, before one of my sessions, we were discussing books which every software developer should read with the room, and particularly with a bunch of SMU students who came down to Houston to attend. I promised I would post the list of those books to my blog, so here they are:
The Must Read List (in Order)
- Head First Object-Oriented Analysis and Design by Brett Mclaughlin
- Clean Code : A Handbook of Agile Software Craftsmanship by Robert Martin
- Code Complete: A Practical Handbook of Software Construction, Second Edition by Steve McConnell
- Refactoring to Patterns by Joshua Kerievsky
- Working Effectively with Legacy Code by Michael Feathers
- Head First Design Patterns by Eric Freeman
Books You Should Read & Own Eventually
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides aka “The Gang of Four”
This is the original work which brought about the terminology of Design Patterns. We recommend the Head First book above over it simply because it’s examples are in SmallTalk and C++, which means that its showing its age.
- The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win by Kevin Behr
This book is a great story about how Operations and Developers can work together, and should be read by most teams trying to tighten their relationship with their operations team.
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions by Bobby Woolf and Gregor Hohpe
This book should be read and used as the bible for any distributed message application you build. I’d remind you that these days most websites with APIs really are a distributed application.