It's been a while that I wanted to prepare a list of books that, in my opinion, every programmer should read. These are the most influential books I've read so far in my career. It is not supposed to be a complete list of any kind and this is just my idea of a must read. Books mentioned here may or may not be specific to a programming language, so check it before you buy the book.
With the fact (or is it a fiction?) that programmers don't like to read books in mind, I limited the list to only ten books, but there are certainly other great books out there that either I'm not aware of or may be have not read yet. I was already a programmer when I read most of these books, but these really helped me open my mind towards how professionals are doing it and why.
Enough said, here's the list:
10- Design Patterns: Elements of Reusable Object-Oriented Software by Gang of Four
9- Clean Code A Handbook of Agile Software Craftsmanship by Robert C. Martin
8- Agile Project Management with Scrum by Ken Schwaber
7- Applying Domain-Driven Design and Patterns by Jimmy Nilsson
6- Working Effectively with Legacy Code by Michael Feathers
5- Patterns of Enterprise Application Architecture by Martin Fowler
4- Refactoring: Improving the Design of Existing Code by Martin Fowler
3- Test Driven Development By Example by Kent Beck
2- Agile Principles Patterns and Practices by Robert C. Martin
1- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
Thoughts?

Mohammad Mahdi Ramezanpour said
January 21, 2010
Thanks Hadi for the great post.
As you said there a lot of other great books out there that you didn't mentioned. I think the most important benefit of these books is that they don't related to any specific language and that's the point. I'll try to get all of these books :-)
By the way, I want to suggest another book which is absolutely great:
Code Leader: Using People, Tools, and Processes to Build Successful Software
Thanks again for the post :-)
µ said
January 22, 2010
I think number 10 is the most important one.
btw, I recommend "Programming Challenges - by: Springer" to Computer Science students. :-)
afsharm said
January 23, 2010
Greate list! all of them in my taste of software development: Domain Driven, Agile, ...
Mahdi Taghizadeh said
January 23, 2010
Thank you Hadi :)
David Carrillo said
February 15, 2010
Excelent Reading List. I alsohighly recommed as must read Code Complete 2 and The Pragmatic Programmer