Recommended Reading List
This is a curated list of recommended books for software engineers, categorized by topics. Each book entry includes the author(s), subtitle (if any), Amazon URL, edition, tags, readability level, and target audience.
Engineering
-
Clean Code
- Author(s): Robert C. Martin
- Subtitle: A Handbook of Agile Software Craftsmanship
- Amazon URL: Link
- Edition: 1
- Tag(s): Clean Code, Software Craftsmanship
- Readability: Easy
- Target Audience(s): Juniors (1+ years)
-
Effective Java
- Author(s): Joshua Bloch
- Subtitle: N/A
- Amazon URL: Link
- Edition: 3
- Tag(s): Java
- Readability: Easy
- Target Audience(s): Juniors (1+ years)
-
Refactoring (1st Ed.)
- Author(s): Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
- Subtitle: Improving the Design of Existing Code
- Amazon URL: Link
- Edition: 1
- Tag(s): Refactoring, Java
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Refactoring (2nd Ed.)
- Author(s): Martin Fowler
- Subtitle: Improving the Design of Existing Code
- Amazon URL: Link
- Edition: 2
- Tag(s): Refactoring, JavaScript
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Get Your Hands Dirty on Clean Architecture
- Author(s): Tom Hombergs
- Subtitle: Build 'clean' applications with code examples in Java
- Amazon URL: Link
- Edition: 2
- Tag(s): Hexagonal Architecture
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Enterprise Integration Patterns
- Author(s): Gregor Hohpe, Bobby Woolf
- Subtitle: Designing, Building, and Deploying Messaging Solutions
- Amazon URL: Link
- Edition: 1
- Tag(s): Enterprise Integration Patterns, Software Architecture
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Patterns of Enterprise Application Architecture
- Author(s): Martin Fowler
- Subtitle: N/A
- Amazon URL: Link
- Edition: 1
- Tag(s): Enterprise Application Patterns, Software Architecture
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Designing Data-Intensive Applications
- Author(s): Martin Kleppmann
- Subtitle: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
- Amazon URL: Link
- Edition: 1
- Tag(s): Distributed Systems, NoSQL, Data, Trade-offs
- Readability: Hard
- Target Audience(s): Seniors (5+ years)
-
Java Concurrency in Practice
- Author(s): Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea
- Subtitle: N/A
- Amazon URL: Link
- Edition: 1
- Tag(s): Java, Concurrency, Multi-Threading
- Readability: Hard
- Target Audience(s): Seniors (5+ years)
-
Mythical Man-Month
- Author(s): Frederick Brooks Jr.
- Subtitle: Essays on Software Engineering
- Amazon URL: Link
- Edition: 2
- Tag(s): Software Engineering
- Readability: Hardest
- Target Audience(s): Seniors (10+ years)
Design Patterns
-
Head First Design Patterns
- Author(s): Eric Freeman, Elisabeth Robson
- Subtitle: Building Extensible and Maintainable Object-Oriented Software
- Amazon URL: Link
- Edition: 2
- Tag(s): Design Patterns, Object-Oriented Paradigm
- Readability: Easy
- Target Audience(s): Juniors (1+ years)
-
Design Patterns
- Author(s): Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
- Subtitle: Elements of Reusable Object-Oriented Software
- Amazon URL: Link
- Edition: 1
- Tag(s): Design Patterns, Object-Oriented Paradigm
- Readability: Hardest
- Target Audience(s): Seniors (10+ years)
Spring Framework
-
Spring Microservices in Action
- Author(s): John Carnell, Illary Huaylupo Sánchez
- Subtitle: N/A
- Amazon URL: Link
- Edition: 2
- Tag(s): Spring Boot, Microservices, Spring Cloud
- Readability: Easy
- Target Audience(s): Juniors (1+ years)
-
Spring Security in Action
- Author(s): Laurentiu Spilca
- Subtitle: N/A
- Amazon URL: Link
- Edition: 2 (Releasing April 30, 2024)
- Tag(s): Spring Security, Spring Boot 3, OAuth 2/OpenID Connect
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Microservices with Spring Boot 3 and Spring Cloud
- Author(s): Magnus Larsson
- Subtitle: Build resilient and scalable microservices using Spring Cloud, Istio, and Kubernetes
- Amazon URL: Link
- Edition: 2
- Tag(s): Spring Cloud, Spring Boot 3, Kubernetes
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
Domain-Driven Design (DDD)
-
Domain-Driven Design Distilled
- Author(s): Vaughn Vernon
- Subtitle: N/A
- Amazon URL: Link
- Edition: 1
- Tag(s): DDD
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Implementing Domain-Driven Design
- Author(s): Vaughn Vernon
- Subtitle: N/A
- Amazon URL: Link
- Edition: 1
- Tag(s): DDD
- Readability: Hard
- Target Audience(s): Seniors (5+ years)
-
Domain-Driven Design
- Author(s): Eric Evans
- Subtitle: Tackling Complexity in the Heart of Software
- Amazon URL: Link
- Edition: 1
- Tag(s): DDD
- Readability: Hard
- Target Audience(s): Seniors (5+ years)
System Design
-
System Design Interview (Vol. 1)
- Author(s): Alex Xu
- Subtitle: An Insider’s Guide
- Amazon URL: Link
- Edition: 1
- Tag(s): System Design
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
System Design Interview (Vol. 2)
- Author(s): Alex Xu, Sahn Lam
- Subtitle: An Insider’s Guide
- Amazon URL: Link
- Edition: 1
- Tag(s): System Design
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
CI/CD
-
Continuous Integration
- Author(s): Paul M. Duvall, Steve Matyas, Andrew Glover
- Subtitle: Improving Software Quality and Reducing Risk
- Amazon URL: Link
- Edition: 1
- Tag(s): CI, Continuous Integration
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
-
Continuous Delivery
- Author(s): Jez Humble, David Farley
- Subtitle: Reliable Software Releases through Build, Test, and Deployment Automation
- Amazon URL: Link
- Edition: 1
- Tag(s): CD, Continuous Delivery
- Readability: Medium
- Target Audience(s): Mediors (3+ years)
Microservices
-
Building Microservices
- Author(s): Sam Newman
- Subtitle: Designing Fine-Grained Systems
- Amazon URL: Link
- Edition: 2
- Tag(s): Microservices
- Readability: Hard
- Target Audience(s): Seniors (5+ years)
-
Microservices Patterns
- Author(s): Chris Richardson
- Subtitle: With examples in Java
- Amazon URL: Link
- Edition: 1
- Tag(s): Microservices Patterns, Microservices, DDD
- Readability: Hard
- Target Audience(s): Seniors (5+ years)
Computer Sciences
-
Algorithms
- Author(s): Robert Sedgewick, Kevin Wayne
- Subtitle: N/A
- Amazon URL: Link
- Edition: 4
- Tag(s): Computer Sciences
- Readability: Hardest
- Target Audience(s): Seniors (10+ years)
-
Introduction to Algorithms
- Author(s): Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
- Subtitle: N/A
- Amazon URL: Link
- Edition: 4
- Tag(s): Computer Sciences
- Readability: Hardest
- Target Audience(s): Seniors (10+ years)
-
The Algorithm Design Manual
- Author(s): Steven S. Skiena
- Subtitle: N/A
- Amazon URL: Link
- Edition: 3
- Tag(s): Computer Sciences
- Readability: Hardest
- Target Audience(s): Seniors (10+ years)
-
Art of Computer Programming
- Author(s): Donald Knuth
- Subtitle: Volumes 1–4B
- Amazon URL: Link
- Edition: 1
- Tag(s): Computer Sciences
- Readability: Extreme
- Target Audience(s): Seniors (15+ years)
DevOps
- Accelerate: Science of Lean Software and DevOps
- Author(s): Nicole Forsgren, Jez Humble, Gene Kim
- Subtitle: Building and Scaling High Performing Technology Organizations
- Amazon URL: Link
- Edition: 1
- Tag(s): DevOps, Lean Software
- Readability: Hard
- Target Audience(s): Seniors (5+ years)
Additional Suggestions
These are some book suggestions that are must-read books for software engineers:
- Even Faster Web Sites — Steve Souders (O’Reilly)
- High Performance Web Sites — Steve Souders (O’Reilly)
- Code Complete: A Practical Handbook of Software Construction — Steve McConnell
- Functional Programming for Java Developers — Dean Wampler (O’Reilly)
- Java™ Puzzlers: Traps, Pitfalls, and Corner Cases — Joshua Bloch
- Professional Java Puzzlers: Traps, Pitfalls, and Corner Cases — Joshua Bloch
- PeepCode Git Internals (PDF)
- Cracking The Coding Interview (5th Edition) — Gayle Laakmann McDowell
- SCJP Sun Certified Programmer for Java 6 Study Guide — Kathy Sierra
- Head First Servlets and JSP (2nd Edition) — Bryan Basham, Kathy Sierra, Bert Bates (O’Reilly)
- High Performance MySQL (3rd Edition) — Baron Schwartz, Peter Zaitsev, Vadim Tkachanko (O’Reilly)
- Java Performance: The Java Series — Charlie Hunt, Binu John
- Programming in Scala — Martin Odersky
- sed & awk (2nd Edition) — Dale Dougberty, Arnold Robbins (O’Reilly)
- Trees and Hierarchies in SQL for Smarties (4th Edition) — Joe Celko
- SQL Puzzles and Answers (2nd Edition) — Joe Celko
- Practical Vim: Edit Text at the Speed of Thought (Pragmatic Programmers) — Drew Neil
- Test-Driven Development By Example — Kent Beck
For more suggestions, you can read the article: "What are the must-read books for software engineers?"