One of the questions one of my friends asked in a comment on another posting was, “So, if you could recommend only 1 technical book I get through this year, which one would it be?” I read way too many books. In fact, my doctor says if I don’t stop I’ll turn into a nerd. I’m willing to risk it. Anyway, I’m far from one to shrink away from such a vague and wide ranging question. These aren’t book reviews but simply a few of the reasons I think the book is pretty good or where it could be better. So in no specific order here they are….

Domain-Driven Design: Tackling Complexity in the Heart of Software

I love this book and return to it once a year at least. This book brought into focus for me the power and expressiveness that a healthy domain model can add to an application. I know a lot of people don’t buy into the idea of domain objects having both data and behavior and prefer an anemic domain model but those people are crazy. This books gives fantastic tactics and strategies for building a domain model including topics such as tips for those times when your project has to share a domain model with another project. The downside of this book is that is it written in a more academic style and is a bit hard to read in spots.

Integrating Agile Development in the Real World

I’d actually picked up this book on a pure whim but loved it. It gives a fantastic introduction to numerous agile methodologies and how to fit them into a project developing real applications. It is a guide to implementing the theories of agile development in a meaningful way. The book does a really good job of providing examples and explaining the “why” behind various agile behaviors. A big plus to this book is that it is a really easy read.

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development

While this book has “Introduction” in the title it is a bit more advanced than that. The writing style wasn’t really my bag but the content is extremely useful. I’ve referenced this book when a more junior developer is looking to get a more solid grounding in OOP and a taste of Agile development.

The Pragmatic Programmer: From Journeyman to Master

This one being on the list is a bit of a no-brainer. It is a fantastically easy read since each of the chapters are pretty small and well-focused. The book as a whole isn’t that long either. This book wanders around a bit covering topics from learning to use an editor really well to software design issues.
Agile Software Development: The Cooperative Game

Okay, this book is a fantastic look at communication and software development methodologies but it isn’t an easy read. Alistair Cockburn really goes into detail about the data and theories he used when forming the Crystal methodologies but the same applies to general Agile development. If you have the time to work through this book you’ll have learned a great amount about the “whys” of Agile development.

Looking back I apparently like books with colons and sub-titles. I know these aren’t just one book but considering how many I read a year narrowing it down to five is pretty good.

On the plus side I’m looking forward to the new JBoss Seam, Second Edition. I won’t mention that a friend of mine, Jacob Orshalick is a co-author on the book too.

12 Comments

  1. Jacob Orshalick says:

    Great posting, includes several of my favorites. Oh yeah, and thanks for the shameless plug ;)

  2. Chris says:

    Thanks! Where is my check?

  3. hebiryu says:

    I’d like to have Deitel & Deitel’s C++ programming book.

  4. qwerty says:

    Code Complete by Steve McConnell is a must read as well.

  5. Marco says:

    If I could only have one book, I would choose Code Complete 2nd ed., by Steve McConnell. Quite big, but not that much considering the average size of technical books, it is certainly THE book on software construction.

  6. Daily Bits - February 27, 2008 | Alvin Ashcraft's Daily Geek Bits says:

    [...] If I Could Have Only One Book (unknown man in Texas) [...]

  7. Mike says:

    >> Applying UML and Patterns: An Introduction to Object-
    >> Oriented Analysis and Design and Iterative Development

    Great book.

  8. Chris says:

    I hate to admit that I haven’t read Code Complete. But I’ll do so soon since a few folks seem to rave on it.

  9. Drux says:

    Thanks for the recommendations. I’m the person who originally posed the question. Now, just to find the time…

  10. Greg says:

    “Implementing Lean Software Development - From Concept to Cash” by Mary and Tom Poppendieck. The why’s of agile. Why it works. Why we *need* to do it.

  11. Chris Wash says:

    +1 on Code Complete.

    If you’re doing Java, the new edition of Effective Java is pretty awesome.

  12. Chris says:

    @Chris
    I totally agree. But it wasn’t out when I wrote this. :) Maybe it is about time to do another posting covering this topic with different books that I have found useful. Effective Java will definately be on that list.

Leave a Reply