Curated Tech Reading Map

Find your next tech book to read

Learning Path

Aspiring Architect

A learning path for those aiming to become an architect — master software design principles, patterns, and architecture systematically, and gain the design judgement to lead large-scale systems.

Required Books
6 books
Recommended Books
18 books
Target Domains
Backend Development / Software Design / Database Design & Operations
Milestones
6 stages

Share this learning path

Milestones

6 stages
  1. 1

    Basics: Code Quality

    Learn the principles behind code that stays readable and easy to maintain

    1. Clean Code
    2. Refactoring
  2. 2
  3. 3

    Architecture Principles

    Study dependency inversion, boundary design, and the quality attributes architecture must satisfy

    1. Clean Architecture
    2. Fundamentals of Software Architecture, 2nd Edition
    3. A Philosophy of Software Design, 2nd Edition
  4. 4

    Domain Modeling

    Map the strategic and tactical landscape with an introduction, then go to the original text, so you can decide where to draw bounded contexts

    1. Learning Domain-Driven Design
    2. Domain-Driven Design: Tackling Complexity in the Heart of Software
  5. 5

    Distributed Systems Design

    Work through deciding where to split a system, migrating an existing monolith, applying the patterns that implement the split, and finally reasoning about consistency in distributed data

    1. Building Microservices
    2. Monolith to Microservices
    3. Microservices Patterns
    4. Designing Data-Intensive Applications
  6. 6

Required Books

6 books

Recommended Books

18 books

Head First Design Patterns

Building Extensible and Maintainable Object-Oriented Software

Eric Freeman, Elisabeth Robson

Design Patterns

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

A Philosophy of Software Design, 2nd Edition

John Ousterhout

Software Architecture: The Hard Parts

Modern Trade-Off Analyses for Distributed Architectures

Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani

Building Evolutionary Architectures

Support Constant Change

Neal Ford, Rebecca Parsons, Patrick Kua

Learning Domain-Driven Design

Aligning Software Architecture and Business Strategy

Vlad Khononov

Building Microservices

Designing Fine-Grained Systems, 2nd Edition

Sam Newman

Monolith to Microservices

Evolutionary Patterns to Transform Your Monolith

Sam Newman

Microservices Patterns

With examples in Java

Chris Richardson

Designing Data-Intensive Applications

The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

Martin Kleppmann

Working Effectively with Legacy Code

Michael C. Feathers

Release It!, 2nd Edition

Design and Deploy Production-Ready Software

Michael T. Nygard

Riron kara Manabu Database Jissen Nyumon (Learning Databases from Theory)

Efficient SQL through the Relational Model

Mikiya Okuno

Tatsujin ni Manabu DB Sekkei Tettei Shinansho, 2nd Edition (A Thorough Guide to DB Design, Learned from an Expert)

Mick

SQL Performance Explained

Everything Developers Need to Know about SQL Performance

Markus Winand

Database Internals

A Deep Dive into How Distributed Data Systems Work

Alex Petrov

Database Reliability Engineering

Designing and Operating Resilient Database Systems

Laine Campbell, Charity Majors

Data-Oriented Programming

Reduce software complexity

Yehonathan Sharvit