Top Books Every Programmer Should Know Remember that the order of reading these has nothing to do with its number! 1. Clean Architecture: A Craftsman's Guide to Software Structure and Design 2. Clean Code: A Handbook of Agile Software Craftsmanship 3. The Clean Coder: A Code of Conduct for Professional Programmers 4. The Pragmatic Programmer: From Journeyman to Master 1st Edition 5. The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition) 2nd Edition 6. Patterns of Enterprise Application Architecture 7. Head First Design Patterns 8. Design Patterns: Elements of Reusable Object-Oriented Software 9. Refactoring: Improving the Design of Existing Code 1st Edition 10. Refactoring: Improving the Design of Existing Code (2nd Edition) (Addison-Wesley Signature Series (Fowler)) 2nd Edition 11. Working Effectively with Legacy Code 12. Domain-Driven Design: Tackling Complexity in the Heart of Software 13. Domain-Driven Design Distilled 14. Implementing Domain-Driven Design 15. Test Driven Development: By Example 1st Edition 16. Growing Object-Oriented Software, Guided by Tests 17. Working Effectively with Unit Tests 18. Soft Skills: The Software Developer's Life Manual 1st Edition 19. Framework Design Guidelines: Conventions, Idioms, and Patterns for Reuseable .NET Libraries 20. Patterns, Principles, and Practices of Domain-Driven Design 21. Agile Principles, Patterns, and Practices in C#