Skip to content

Learning Paths by Role

Suggested reading orders through the material for different backgrounds and goals.


New Graduate Path

Goal: Build foundational understanding from first principles up to system design.

  1. Programming Paradigms (Tier 0)
  2. Data Structures (Tier 0)
  3. Algorithmic Thinking (Tier 0)
  4. Type Systems & Memory (Tier 0)
  5. Software Design (Tier 2)
  6. Testing Strategies (Tier 2)
  7. Concurrency & Parallelism (Tier 1)
  8. Software Architecture (Tier 2)
  9. API Design (Tier 2)

Backend Engineer Path

Goal: Deep systems understanding for building reliable server-side applications.

  1. Data Structures (Tier 0)
  2. Compute & Memory Foundations (Tier 0)
  3. Storage & I/O Foundations (Tier 0)
  4. Data Modeling & Persistence (Tier 1)
  5. Networking Foundations (Tier 1)
  6. Concurrency & Parallelism (Tier 1)
  7. Distributed Fundamentals (Tier 1)
  8. Distributed Patterns (Tier 1)
  9. API Design (Tier 2)
  10. Performance Optimization (Tier 3)
  11. Observability (Tier 3)

Frontend Engineer Path

Goal: Understanding the full stack while focusing on user-facing concerns.

  1. Programming Paradigms (Tier 0)
  2. Data Structures (Tier 0)
  3. Algorithmic Thinking (Tier 0)
  4. Software Design (Tier 2)
  5. API Design (Tier 2)
  6. Testing Strategies (Tier 2)
  7. Networking Foundations (Tier 1)
  8. Performance Optimization (Tier 3)
  9. Observability (Tier 3)

Senior Engineer Deepening Path

Goal: Fill gaps and deepen understanding for experienced engineers.

  1. Distributed Fundamentals (Tier 1)
  2. Algorithm Patterns (Tier 0)
  3. Compute & Memory Foundations (Tier 0)
  4. Security Patterns (Tier 2)
  5. Observability (Tier 3)
  6. Software Architecture (Tier 2)

Security Specialist Path

Goal: Deep security understanding grounded in system fundamentals.

  1. Type Systems & Memory (Tier 0)
  2. Compute & Memory Foundations (Tier 0)
  3. Networking Foundations (Tier 1)
  4. Security Patterns (Tier 2)
  5. API Design (Tier 2)
  6. Distributed Fundamentals (Tier 1)
  7. Observability (Tier 3)

Data Engineer Path

Goal: Specialization in data systems and pipelines.

  1. Data Structures (Tier 0)
  2. Algorithmic Thinking (Tier 0)
  3. Storage & I/O Foundations (Tier 0)
  4. Data Modeling & Persistence (Tier 1)
  5. Distributed Fundamentals (Tier 1)
  6. Distributed Patterns (Tier 1)
  7. Performance Optimization (Tier 3)
  8. Observability (Tier 3)

Platform/Infrastructure Engineer Path

Goal: Building reliable platforms for other engineers.

  1. Compute & Memory Foundations (Tier 0)
  2. Storage & I/O Foundations (Tier 0)
  3. Networking Foundations (Tier 1)
  4. Concurrency & Parallelism (Tier 1)
  5. Distributed Fundamentals (Tier 1)
  6. Distributed Patterns (Tier 1)
  7. Security Patterns (Tier 2)
  8. Observability (Tier 3)
  9. Performance Optimization (Tier 3)

Quick Reference Path

Goal: Minimum viable understanding for cross-functional work.

  1. Programming Paradigms (Tier 0)
  2. Software Architecture (Tier 2)
  3. Distributed Fundamentals (Tier 1)
  4. Security Patterns (Tier 2)
  5. Observability (Tier 3)

Tips for All Paths

Read tensions first: Every domain starts with fundamental tensions. Understanding these frames everything else.

Cross-reference liberally: When a concept says 'Transfers To: X', consider reading that domain's treatment of similar ideas.

Don't memorize, understand: The goal is to recognize patterns in unfamiliar code, not to recite definitions.

Apply immediately: After each domain, try to identify its concepts in code you're currently working with.

Revisit periodically: Understanding deepens with experience. A domain read at year 1 will yield different insights at year 5.