Book Suggestions

I put together a "Top 10" books to read for a collegue, figured I'd make that available here.

  1. Beyond Legacy Code
    A great book buy a brilliant software developer. This book gets the number 1 spot because it's a great WHY TO book. It's a valuable and informaative book for anyone that's involved with software development. It goes into what practices provide what value and why we want to do them. If it provided nothing else; it'll be a common reference the team can use for conversations as they move forward.

  2. The Nature of Software Development
    It's a little bit of a cheat, this book gets spot number 2 because it's an easy read. This is a fairly WHY TO book as well; but it's very focused on the development team. It gets into some more detail about the practices the development team follows and better ways to do them.

  3. Elegant Objects Vol 1 This book still holds onto the top three becuase I haven't found any other book as direct about how to write good object oriented code. There's still issues with it (as I write about, but it's better than anything else I've read. If you want to know how to improve your code, your efficiency and reduce bugs - 99% of what this book says is spot on.

  4. Growing Object-Oriented Software If there wasn't the test focus, it'd suplant Elegant Objects as how to write good OO code. It has all the right practices for testing, object responsibility, and emergent design. A fantastic book that teaches extremely important lessons. I still got value from it on my 3rd read through. It's at number 4 as I don't think I'd have gotten nearly as much out of it without the foundation the first 3 books provide.

  5. Prefactotring This is another CLOSE replacement for Elegant Objects. It's focus is around how we can do things ahead of writing new functionality to make it easy to add that new functionality. Pre-factor instead of Refactor. Hits all the high notes, just focuses on it differently; and not directly. Definitely a valuable book on how we can think about code differently to be more effective.

  6. Design Patterns Explained Al does a great job explaining design patterns. I have a few disagreements with the important of some patterns... but he explains them well. This is one of the easier to digest pattern books I've read. It goes into a lot more than just explaining the patterns. About when and how to use them. As well as additional practices we want while doing development work. If you want a great pattern book - Head First Design Patters. It is just about the patterns. Design Patterns Explained takes a bigger approach than just describing patterns, which is invaluable when looking to apply patterns.

  7. Essential Skills for the Agile Developer This is the 3rd book on the list by the folx at Net Objectives. This gets into how to write good code; from an agile development perspective. It touches on all the great practices that lead to great OO code; but... never quite gets into HOW to do it. This will give you a much better understanding and grounding of why we're doing it. Things to identify and change; but... it's got a bunch more info than "here's how to write code". It will definitely answer a lot of questions as you work through actually applying the practices from Book 3.

8, 9, 10 - I've got a lot of great books. I want to find some that continue to build on the good OOP and Development practices that I use and find so much value in. There are many books I think engineers should read... we only have so much time, and I want to help best advance the things I find value from. For that... I'll take my time to find the next few books that I think best build on the 7 presented so far.