Skip to content

🗺️ Curriculum — Blocks, Dependencies, Transition Signals#

"Order is built around dependency, not technology. Every step's rationale: it's required to understand the next one."

This page is the skeleton of the path: which module belongs to which block, what it counts as a prerequisite, when you move from one block to the next. Block boundaries and the order between blocks cannot be changed. Splitting modules within a block is fine.

The level axis isn't the number of tools — it's the radius of responsibility:

Definition
L0 Does defined work on a defined system
L1 Owns a system, takes the calls for it
L2 Decides which system should exist, can say "no"

📋 Module table#

ID Module Block Duration Prerequisite
A0 Before you start: environment, terminal, how the path works A · L0 ~6h
A1 Linux fundamentals: process, filesystem, permissions, user/group A · L0 ~16h A0
A2 Networking I: TCP/IP, ports, routing A · L0 ~14h A1
A3 Networking II: DNS → HTTP → TLS/certificates A · L0 ~16h A2
A4 Git fundamentals: commit, branch, merge, rebase, conflict A · L0 ~12h A1
A5 Bash — just enough shell to get work done A · L0 ~12h A1, A4
A6 Stand up an application by hand (NO containers) A · L0 ~27h A1, A2, A3, A4, A5
B1 Reading logs: journalctl, structured logging B · L0 ~12h A6
B2 Metrics: Prometheus fundamentals, cardinality B · L0 ~12h A6, B1
B3 First broken lab — finding the fault on a broken VM B · L0 ~12h B1, B2
C0 Python for ops — just enough to write automation scripts C · L1 ~30h A5
C1 Containers: image, layer, multi-stage, compose C · L1 ~14h A6, B3
C2 CI: test → build → artifact → registry C · L1 ~16h A4, C0, C1
C3 Terraform — automate A6 C · L1 ~16h A6, C1
C4 Cloud fundamentals + budget alerts C · L1 ~12h C3
D1 K8s fundamentals: Pod/Deployment/Service/Ingress — RBAC + NetworkPolicy from day one D · L1 ~28h C1, C2
D2 K8s in production: request/limit, probes, PDB, HPA D · L1 ~16h D1
D3 Secret management D · L1 ~12h D1
D4 Supply chain: scanning + signing — a continuation of the C2 pipeline D · L1 ~14h C2, D1
D5 GitOps (ArgoCD) — single application D · L1 ~14h D1, C2
E1 SLI / SLO / error budget E · L1 ~12h B2, D2
E2 Alerting + on-call discipline E · L1 ~12h E1, B1
E3 Incident response + blameless postmortem E · L1 ~14h E2
E4 Databases in production — especially restore E · L1 ~14h A6, D2
E5 Advanced broken lab / chaos E · L1 ~12h E3, D2
F1 Cost and trade-offs (FinOps) F · L2 ~10h C4, D2
F2 Threat modeling + compliance (KVKK / GDPR / SOC 2) F · L2 ~12h D1, D4
F3 Platform, IDP, Team Topologies F · L2 ~10h D5, F1
F4 Writing: ADR, RFC, postmortem F · L2 ~10h E3
F5 Stakeholder management, saying "no", vendors F · L2 ~6h F3

Total: 30 modules · ~423 hours · + 3 capstones (~60 hours) = ~483 hours. Block totals: A 103 · B 36 · C 88 · D 84 · E 64 · F 48 · Capstone 60.

Gate projects: Capstone 1 (end of Block C), Capstone 2 (end of Block D), Capstone 3 (end of Block E) → capstones/.


🔗 Dependency graph (DAG — no cycles)#

graph LR
  subgraph A["Block A — Intuition"]
    A0 --> A1
    A1 --> A2 --> A3
    A1 --> A4 --> A5
    A1 --> A5
    A3 --> A6
    A5 --> A6
  end
  subgraph B["Block B — Visibility"]
    A6 --> B1 --> B2 --> B3
    A6 --> B2
  end
  subgraph C["Block C — Reproducibility"]
    A5 --> C0 --> C2
    B3 --> C1 --> C2
    C1 --> C3 --> C4
  end
  subgraph D["Block D — Orchestration"]
    C1 --> D1
    C2 --> D1 --> D2
    D1 --> D3
    D1 --> D4
    C2 --> D4
    D1 --> D5
    C2 --> D5
  end
  subgraph E["Block E — Ownership"]
    B2 --> E1
    D2 --> E1 --> E2 --> E3 --> E5
    B1 --> E2
    A6 --> E4
    D2 --> E4
    D2 --> E5
  end
  subgraph F["Block F — Judgment"]
    C4 --> F1 --> F3 --> F5
    D2 --> F1
    D1 --> F2
    D4 --> F2
    D5 --> F3
    E3 --> F4
  end

Verification: Every module's every prerequisite comes before it; there are no cycles; no module treats a later block as a prerequisite; A0 has no prerequisites (the single entry point — anyone starting from zero enters here).


🚦 Transition signals — not a calendar#

Block transitions are tied to these questions, not to a duration. The acceptance criteria make these signals concrete:

Transition Signal
A → B Can you narrow down why a service won't start, using three commands, without checking the docs?
B → C Did you prove a fault with logs and metrics, rather than guess it?
C → D Can you rebuild your system from scratch without touching anything by hand?
D → E Did something you built break because of your own mistake, and did you bring it back?
E → F Did you say "no" to something and defend your reasoning in writing?

These signals become concrete at the end of each block through a stage exam — every question traces back to a module's acceptance criterion; there's no subjective "I get it":

Block Exam Gate
A block-a-intuition/STAGE-EXAM.md A → B
B block-b-visibility/STAGE-EXAM.md B → C
C block-c-reproducibility/STAGE-EXAM.md C → D (+ Capstone 1)
D block-d-orchestration/STAGE-EXAM.md D → E (+ Capstone 2)
E block-e-ownership/STAGE-EXAM.md E → F (+ Capstone 3)

Block F doesn't close with an exam — its output is written (ADR/RFC/postmortem), and the last two gates can't be passed on your own (see Honest ceiling below).


🔒 The strictest rule: no moving to Block C before finishing Block B#

You can't operate a system you can't see. Before adding complexity (containers, K8s), you need to be able to see the system you've built. Don't start C0/C1 before passing B3's broken lab.

🧵 Security woven in as a thread#

This is a DevSecOps handbook. A structure of "teach K8s first, then bolt on a separate hardening section" repeats the exact "leave security for last" mistake this repo criticizes elsewhere. That's why D1 is never written without RBAC and NetworkPolicy; D4 isn't a separate security lesson — it's a continuation of the pipeline set up in C2. Security isn't a block; it's a thread running through all of them.


🧗 Honest ceiling#

The last two gates (E, F) can't be passed on your own. They require a fault you didn't choose, a system you own, and real users. At this point, the answer isn't more reading: it's getting a job, joining the on-call rotation, volunteering for incidents. This path gets you to that point; production teaches you what comes after.

What's not yet included and why: NOT-YET.md. Certification gates (end of Block C/D/E, 3 gates — not 10): certifications/ in Phase 6.5.


"You return to the same system three times: in D for how it works, in E for how it breaks, in F for what it costs and who owns it."