5 Books Every Developer Will Benefit From Reading

A short list of the 5 books I think are indispensable for every developer on every level (not necessarily in this order). These books aren’t in any way related to a specific technology, but focus on good development practices. Some of them use a specific language to explain the ideas but that’s just an issue of syntax. I found these very useful to get a deep insight in how modern application development works.

patterns-of-enterprise-application-architecture

Patterns of Enterprise Application Architecture
Martin Fowler

This book contains a ton of information on how to structure big applications. Very useful information and well-tested patterns (“ideas for solving problems” – as Fowler calls them). Although some of the material is a bit old (the book was published in 2002), especially the part about web applications, the principles are still 100% valid.

 

refactoring-improving-the-design-of-existing-code

Refactoring
Martin Fowler

Another one from Martin Fowler. This book teaches you how to refactor bad code into good code. A lot of the principles you have probably already applied, but what this book brings to the table is a structured approach to improve your (or someone else’s) code.

 

 

Design Patterns - Elements of Reusable Object-Oriented Software

Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

This is a real classic one, and the reference when it comes to design patterns. The patterns described in this book are often referred to as “The gang-of-four” patterns, in reference to its authors.

 

head-first-design-patterns

Head First: Design Patterns
Eric Freeman and Elisabeth Freeman

This is another great book on design patterns. It was the first one I read about design patterns and it’s a real good introduction if you’re not familiar with the idea. It’s written in a very playful style and every now and then I just seem to remember a random sample. Start with this one and then move on to the gang-of-four book.

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

Domain-Driven Design (DDD)
Eric Evans

This book by Eric Evans shows you how to model your software so it represents the business your dealing with. Domain-driven design was in its early stages when this book came around, but is now almost the de facto standard. This book covers most of the practices and patterns you need to know to model your codebase.

 

Note of the author: By no means have I been paid for advertisement or had any gain on publishing these descriptions. These are just the 5 books that I found to be the most useful for modern development. Hence, I haven’t included any clues on where to get them or links to publishers. I figured the readers of this article are smart of enough finding them themselves.

  • http://practicalunittesting.com Tomek Kaczanowski

    I think that “Growing Object-Oriented Software Guided by Tests” by Steve Freeman and Nat Pryce should be also added to this list.

    • Kenneth Truyers

      Hi,

      I have not read that one myself, but it definitely looks interesting. Anything one can learn about testing is worth the time.
      Thanks for your contribution!!

  • http://www.davidfeitosa.com David

    “Head First: Design Patterns” is a simple book with a lot of smart and easy to understand examples. If you really want to start learning design patterns, that´s your first book.

    • Kenneth Truyers

      Definitely! This is actually one of the few development books that sometimes made me laugh. OK, it probably has a lot of techie-humour (read: nerdie), but it’s definitely a break from standard dry facts approach.

      As I already mentioned, because of the way some items are explained even now, a few years after I read the book, some samples come to mind when I’m trying to solve certain problems. Good value this one!

  • http://www.chrisshayan.com Chris Shayan

    these are good ones but it is not limited to these ones for sure. :-)