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:

  1. Design Patterns: Elements of Reusable Object-Oriented Software by Gang of Four
  2. Clean Code A Handbook of Agile Software Craftsmanship by Robert C. Martin
  3. Agile Project Management with Scrum by Ken Schwaber
  4. Applying Domain-Driven Design and Patterns by Jimmy Nilsson
  5. Working Effectively with Legacy Code by Michael Feathers
  6. Patterns of Enterprise Application Architecture by Martin Fowler
  7. Refactoring: Improving the Design of Existing Code Martin Fowler
  8. Test Driven Development By Example by Kent Beck
  9. Agile Principles Patterns and Practices by Robert C. Martin
  10. Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans