Books: 5 IT Books Every Software Developer Should Read 
Once in a while I make references to books when talking about certain subjects. Because of that I thought in presenting five books that, in my opinion, everyone involved in the software development business should read, or at least know about them.
Why five and not six, seven or ten? No main reason. This is not a top 5, there are many other books that should be read but for now I'm gonna present these.
Some of the books are already on my shelves, others at still waiting on my wishlist. Though, I've already read the 5 and, I'll present a small opinion about each one.
Refactoring by Martin Fowler (

at
Amazon.co.uk)
Probably one of the books with the biggest opinion spectrum I've ever seen. There are the people who love it, people who hate it and people who aren't really sure about how they feel about this book.
It's been called a must read and at the same time a worthless book. It's true that an experience developer already knows the refactoring patterns described, specially with the wide integration of such patterns in IDEs like Eclipse. But, in my opinion, it still
is a good reading to everyone interested in software development.
Note to everyone interested, this book shows examples in Java. Although it's easy to abstract the language and think only in the Object Oriented Paradigm.
Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister (

at
Amazon.co.uk)
Not only Dilbert suffers strange twists in project management due to his boss. Most of the software developer, from time to time, have their problems with the management. This book faces project management in a different way from other books, it focus on people rather on goals os scheduling. People are responsible for the good or bad results in a project, this book explains how to motivate the team to do a better work. Definitely an interesting reading, even for non-manager and non-team leaders.
Domain-driven Design: Tackling Complexity in the Heart of Software by Eric Evans (

at
Amazon.co.uk)
Being a Domain Driven Design enthusiast this book couldn't be left out. It is indeed a must have to anyone interested in developing DDD solutions.
This is probably the most complete reference about DDD that is around , at least for now.
This book presents the domain driven philosophy with extreme detail, along with excellent explanations that will be crucial for a complete understanding of the subject.
I'm no Domain Driven Design evangelist - even if sometimes I seem one - but I'm very fond of such philosophy. In my opinion, this is a 100% must read book!
Design patterns : elements of reusable object-oriented software by Erich Gamma, Richard Helm, Ralph Johnson, John Vissides (

at
Amazon.co.uk)
"Design patterns : elements of reusable object-oriented software" is the true name although, this book, is better know by
Gang of Four.
This is a mandatory reading to anyone who's developing software using Object Oriented paradigm. Gang Of Four presents a catalogue of patterns with great explanations about each pattern.
Not only the conceptual design is presented but also a suggestion of implementation - code in C++ or smalltalk - and when should it be used.
In my opinion this is very important, because applying patterns in places where they shouldn't be applied is worst than not applying patterns at all, this book do warns people about possible tarpits!
The patterns itself are grouped in three big categories,
creational,
structural and
behavioral.
Patterns of Enterprise Application Architecture by Martin Fowler (

at
Amazon.co.uk)
I've already made references to this book and also various books - including Domain Driven Design presented above - make references to this book. That by itself, might mean something!
Like Gang Of Four, this book can also be seen as a pattern catalogue, although the scope of this book is wider than Gang of Four.
From domain logic to session state patterns this book have them all, a book that will help any developer working in complex applications.
Being a Martin Fowler's book, once again, the examples are in Java. But anyone with OO concepts can understand what's being explained and modelled in each problem and design pattern presented in the book.
And that's the end of the list, any comments or suggestions about other books?