Skip to content

Learning Paths ​

Choose a route that fits what you want to build or understand: backend services, data systems, or the machinery behind a running program. Adjust the route as you go and skip material you already know.

Each path selects material from the 14 volumes for one goal. Check the prerequisites, complete the stage output, and return to a foundation chapter when you find a gap.

The time ranges are rough planning estimates. “Zero to First Job” names a learning goal and does not promise an employment outcome. Your background, weekly schedule, and exercise depth will change them. learning-paths.json provides the machine-readable path data.

PathAudienceTime estimateFinal artifact
Zero to First JobStudents, self-taught beginners, and career changers6–12 monthsA small backend project with a database, HTTP API, tests, and deployment notes
Backend EngineerJunior backend and application developers3–6 monthsA reviewable service implementation and design
Data and AI EngineerData analysts, data engineers, and developers moving into ML4–8 monthsA project from data preparation through model evaluation and serving notes
Systems ProgrammerDevelopers moving into infrastructure, databases, compilers, or runtimes6–10 monthsA small interpreter, network service, or storage component
Software ArchitectSenior engineers and technical leadsOngoingAn architecture decision record with tradeoffs and an evolution plan
CS Interview ReviewCandidates preparing for interviews or role changes1–3 monthsTopic-based problem reviews, design mocks, and an error map

Track 1: Zero to First Job ​

Outcome: Complete foundation-level development tasks, use the common toolchain, and choose the right layer when debugging.

Stage 1: Development tools ​

  • Vol 0: Developer Workshop
  • Study the terminal, Git, IDE debugging, package management, builds, and Docker.
  • Checkpoint: clone a project, install dependencies, run its tests, set a breakpoint, and explain the contents of one commit.

Stage 2: Programming basics ​

Stage 3: Data structures and systems foundations ​

Stage 4: Networking foundations ​

Stage 5: Database foundations ​

Stage 6: Backend project ​

Track 2: Backend Engineer ​

Prerequisite: You can build a small service and understand collections, exceptions, file I/O, and basic SQL.

  1. Networks and APIs: Study Computer Networking and API Design.
  2. Data layer: Study Databases and Data Systems, with attention to query plans, transaction boundaries, isolation, caches, and messages.
  3. Engineering quality: Use Testing Strategies and CI/CD and DevOps.
  4. Distributed services: Start Distributed Systems with RPC, consensus, and storage. Continue into SRE, IaC, Kubernetes, and observability.

Produce a service design that covers the data model, transaction boundaries, caching or asynchronous work, failure handling, observability, and release flow.

Track 3: Data and AI Engineer ​

Prerequisite: You can process files and collections in one language and know basic algebra and probability.

Data and query preparation ​

Vol 5 ch05–ch08 cover LSM trees, columnar storage, hash indexes, external sorting, and query optimization. Use Vol 12 ch09 for distributed batch and streaming data processing.

Mathematics and machine learning ​

Your final project should cover data cleaning, feature work, training, and evaluation. Document the serving approach, data boundaries, and known risks.

Track 4: Systems Programmer ​

Prerequisite: You know a systems language or plan to learn C, and you can read basic data-structure and network code.

  1. Computer systems: Study Vol 3, with emphasis on memory, processes, concurrency, file systems, assembly, and calling conventions.
  2. Compilers and languages: Use Compilers and Language Internals.
  3. Networks and distributed systems: Study Computer Networking and Distributed Systems.
  4. Performance: Connect Cache Hierarchies, CPU Pipelines, and Performance Engineering.

Implement a small interpreter, network service, or storage component. Explain its behavior with benchmarks, a profiler, or system counters.

Track 5: Software Architect ​

Prerequisite: You have shipped and maintained production systems. Use this path alongside the requirements work, incident reviews, and cross-team decisions in your real projects.

  1. Architecture foundations: Study Software Engineering and Design Patterns and Domain-Driven Design.
  2. Distribution and consistency: Use Distributed Systems and Data Consistency.
  3. Security and governance: Study Security and Cryptography and Data Governance.
  4. Observability: Read Observability and Observability in Depth.

For each study cycle, choose one system and write an architecture decision record. Include the requirements boundary, candidate designs, tradeoffs, consistency model, security, observability, migration steps, and rollback conditions.

Track 6: CS Interview Review ​

Outcome: Review the gaps that matter for your target role and use explanations to support problem practice.

Algorithms ​

  • Cover complexity analysis, arrays and linked lists, hashing, trees, graphs, recursion, dynamic programming, and sorting.
  • Choose problems by pattern. For each miss, record the wrong assumption, complexity, and reusable technique.

Systems, networking, and databases ​

System design and language fundamentals ​

Finish with a topic-based error map, timed coding sessions, and system design mock reviews. Set the quantity from the role and your current gaps.

Professional lookup ​

TopicDirect links
HTTP request pathNetwork Layers · TCP · HTTP
TLSHTTPS and TLS
DNS, CDN, load balancingVol 4 ch07
CPU caches and memory hierarchyVol 3 ch05
Virtual memoryVol 3 ch06
Query optimizerVol 5 ch08
Transactions and isolationTransactions · MVCC and Isolation
RaftVol 7 ch03
ObservabilityFoundation · In Depth
API design and DDDAPI Design · DDD
Model evaluationVol 13 ch08

Reading across languages ​

Application chapters tend to use Java, with Python or C/C++ comparison sections. Computer systems chapters need C/C++ for the memory and machine model. Data and AI chapters often use Python. Follow the data model, state changes, and complexity before you compare syntax. You do not need three complete implementations for each concept.

Machine-readable paths ​

learning-paths.json lists stable IDs, audiences, outcomes, stages, time estimates, references, and assessment artifacts. npm run validate:docs checks each reference against the catalog. It cannot judge whether a path suits one learner or whether an article's technical claims are correct.

Built with VitePress | Software Systems Atlas