These books cover the practice of building real-world software - from clean code and design patterns to system architecture and the soft skills of working in teams.

Code Quality and Craft

Books on writing clean, maintainable code.

BookAuthorYearLevelDescription
Clean Code
Prentice Hall
Robert C. Martin2008Beginner-IntermediateThe most influential book on code-level craft. Sometimes controversial but essential reading.
Code Complete
2nd Edition, Microsoft Press
Steve McConnell2004IntermediateThe most comprehensive guide to software construction practices.
The Pragmatic Programmer
20th Anniversary Edition, Addison-Wesley
David Thomas, Andrew Hunt2019Beginner-IntermediateDistilled wisdom from experienced developers. Required reading for new software engineers.
A Philosophy of Software Design
2nd Edition, Yaknyam
John Ousterhout2021IntermediateStanford professor Ousterhout's thoughtful perspective on complexity and design.

Design Patterns and Architecture

Software design patterns and architectural principles.

BookAuthorYearLevelDescription
Design Patterns: Elements of Reusable Object-Oriented Software
Addison-Wesley
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides1994Intermediate-AdvancedThe 'Gang of Four' (GoF) book - the original design patterns catalog.
Patterns of Enterprise Application Architecture
Addison-Wesley
Martin Fowler2002AdvancedFowler's catalog of enterprise patterns for data and domain modeling.
Clean Architecture
Prentice Hall
Robert C. Martin2017IntermediateUncle Bob's perspective on software architecture principles.
Domain-Driven Design
Addison-Wesley
Eric Evans2003AdvancedThe DDD bible - strategic design for complex business domains.

Testing and Refactoring

Test-driven development, testing strategies, and refactoring.

BookAuthorYearLevelDescription
Refactoring: Improving the Design of Existing Code
2nd Edition, Addison-Wesley
Martin Fowler2018IntermediateThe definitive refactoring catalog. Essential for maintaining legacy code.
Working Effectively with Legacy Code
Prentice Hall
Michael Feathers2004Intermediate-AdvancedIndispensable guide to taming untested legacy codebases.
Test-Driven Development: By Example
Addison-Wesley
Kent Beck2002IntermediateTDD from its inventor. Short, readable, and influential.
xUnit Test Patterns
Addison-Wesley
Gerard Meszaros2007AdvancedComprehensive catalog of testing patterns and anti-patterns.

Systems Design and Distributed Systems

Large-scale systems, distributed architecture, and performance.

BookAuthorYearLevelDescription
Designing Data-Intensive Applications
O'Reilly
Martin Kleppmann2017Intermediate-AdvancedThe best modern book on data systems and distributed systems design. Required reading for backend engineers.
Site Reliability Engineering
O'Reilly
Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy (Eds.)2016IntermediateGoogle's approach to running production systems at scale. Free online.
Release It!
2nd Edition, Pragmatic Bookshelf
Michael T. Nygard2018IntermediatePatterns for production-ready software including circuit breakers and bulkheads.

Process, Teams, and Career

Software development process, management, and soft skills.

BookAuthorYearLevelDescription
The Mythical Man-Month
Anniversary Edition, Addison-Wesley
Frederick P. Brooks Jr.1995IntermediateBrooks' classic essays on software project management. Still as relevant as when published in 1975.
Peopleware: Productive Projects and Teams
3rd Edition, Addison-Wesley
Tom DeMarco, Timothy Lister2013IntermediateFoundational book on the human side of software development.
Accelerate
IT Revolution Press
Nicole Forsgren, Jez Humble, Gene Kim2018IntermediateData-driven research on what makes software teams high-performing.