Language and Tool Primers
Just enough of each language and tool to build the course system, each placed immediately before the first module that needs it (design decision D38). A learner starting from high-school algebra meets Python, the shell, C, Rust, HTTP, Go, containers, and Kubernetes in the first two passes; these primers are where each one is introduced from first principles.
Overview
Section titled “Overview”- What a primer is: a
practicemodule (lang.01tolang.11): one chapter plus small exercises in your course repo’sprimers/<id>/, checked byol check <id>. The exercises are not part of the system; they are the smallest artifacts that exercise the ideas the next module relies on. - Prerequisites: none for
lang.01; each later primer names its own. - Estimated time: 2 to 4 hours per primer.
Key Takeaways
Section titled “Key Takeaways”- Every primer ends in a checked artifact, so “I read about it” becomes “my code passes”.
- Each primer teaches only what its first call site needs, and its last section names that call site.
- Primers have no code call site of their own: later modules list them under
reading, so they never block anol check. The pass gates (MS-P0, MS-P1) require them.
How to Study
Section titled “How to Study”- Read the chapter’s sections 1 and 2 before you open an editor; do section 3 on paper.
ol tests <id>before writing code: each test says why it exists.- When a test fails, its
WHY:line names the pitfall from section 5.
Primer plan
Section titled “Primer plan”| ID | Primer | First use | Pass |
|---|---|---|---|
| lang.01 | Python and numpy: arrays, dtypes, broadcasting, views vs copies, uv projects | L0.0, rt.01 loader, L0.1 | P0 |
| lang.02 | Shell, git, make, processes: exit codes, signals, environment, pipes | craft.01, every ol verdict | P0 |
| lang.03 | C: memory, pointers, structs, the C11 toolchain, sanitizers, headers and linkage | rt.01, M03.1 | P1 |
| lang.04 | Rust: ownership, traits, Result, cargo workspaces, std TCP | L10.0, ds.05, L1.5 | P1 |
| lang.05 | HTTP/1.1, JSON, and Server-Sent Events from the wire up | L10.0, gw.00 | P1 |
| lang.06 | Go: packages, interfaces, goroutines, channels, context, net/http, testing | gw.00, dur.01, load.01 | P1 |
| lang.07 | Containers and Kubernetes: images, layers, Pods, Deployments, Services, Helm, kind | dep.00 | P1 |
| lang.08 | Python asyncio: event loop, tasks, cancellation, bounded concurrency | data.01 | P3 |
| lang.09 | Async Rust and tokio: futures, tasks, channels, cancellation, hyper | L10.5 | P7 |
| lang.10 | Protocol Buffers and gRPC: schema evolution, unary and streaming RPCs | L10.6, dur.01, dur.04 | P7 |
| lang.11 | SQL and SQLite: schema, transactions, WAL mode, indexes, aggregates | gw.07 | P7 |
Chapters
Section titled “Chapters”| # | Module | Chapter | Kind | Pass |
|---|---|---|---|---|
| 1 | lang.01 | Python and numpy: arrays, dtypes, broadcasting, views vs copies, uv projects | practice | 0 |
| 2 | lang.02 | Shell, git, make, processes: exit codes, signals, environment, pipes | practice | 0 |
| 3 | lang.03 | C: memory, pointers, structs, headers, and the C11 toolchain | practice | 1 |
| 4 | lang.04 | Rust: ownership, traits, Result, cargo workspaces, std TCP | practice | 1 |
| 5 | lang.05 | HTTP/1.1, JSON, and Server-Sent Events from the wire up | practice | 1 |
| 6 | lang.06 | Go: packages, interfaces, goroutines, channels, context, net/http, testing | practice | 1 |
| 7 | lang.07 | Containers and Kubernetes: images, layers, Pods, Deployments, Services, Helm, kind | practice | 1 |
| 8 | lang.08 | Python asyncio: event loop, tasks, cancellation, bounded concurrency | practice | 3 |
| 9 | lang.09 | Async Rust and tokio: futures, tasks, channels, cancellation, hyper | practice | 7 |
| 10 | lang.10 | Protocol Buffers and gRPC: schema evolution, unary and streaming RPCs, stubs | practice | 7 |
| 11 | lang.11 | SQL and SQLite: schema, transactions, WAL mode, indexes, aggregates | practice | 7 |