Skip to content

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.

  • What a primer is: a practice module (lang.01 to lang.11): one chapter plus small exercises in your course repo’s primers/<id>/, checked by ol 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.
  • 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 an ol check. The pass gates (MS-P0, MS-P1) require them.
  • 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.
IDPrimerFirst usePass
lang.01Python and numpy: arrays, dtypes, broadcasting, views vs copies, uv projectsL0.0, rt.01 loader, L0.1P0
lang.02Shell, git, make, processes: exit codes, signals, environment, pipescraft.01, every ol verdictP0
lang.03C: memory, pointers, structs, the C11 toolchain, sanitizers, headers and linkagert.01, M03.1P1
lang.04Rust: ownership, traits, Result, cargo workspaces, std TCPL10.0, ds.05, L1.5P1
lang.05HTTP/1.1, JSON, and Server-Sent Events from the wire upL10.0, gw.00P1
lang.06Go: packages, interfaces, goroutines, channels, context, net/http, testinggw.00, dur.01, load.01P1
lang.07Containers and Kubernetes: images, layers, Pods, Deployments, Services, Helm, kinddep.00P1
lang.08Python asyncio: event loop, tasks, cancellation, bounded concurrencydata.01P3
lang.09Async Rust and tokio: futures, tasks, channels, cancellation, hyperL10.5P7
lang.10Protocol Buffers and gRPC: schema evolution, unary and streaming RPCsL10.6, dur.01, dur.04P7
lang.11SQL and SQLite: schema, transactions, WAL mode, indexes, aggregatesgw.07P7
#ModuleChapterKindPass
1lang.01Python and numpy: arrays, dtypes, broadcasting, views vs copies, uv projectspractice0
2lang.02Shell, git, make, processes: exit codes, signals, environment, pipespractice0
3lang.03C: memory, pointers, structs, headers, and the C11 toolchainpractice1
4lang.04Rust: ownership, traits, Result, cargo workspaces, std TCPpractice1
5lang.05HTTP/1.1, JSON, and Server-Sent Events from the wire uppractice1
6lang.06Go: packages, interfaces, goroutines, channels, context, net/http, testingpractice1
7lang.07Containers and Kubernetes: images, layers, Pods, Deployments, Services, Helm, kindpractice1
8lang.08Python asyncio: event loop, tasks, cancellation, bounded concurrencypractice3
9lang.09Async Rust and tokio: futures, tasks, channels, cancellation, hyperpractice7
10lang.10Protocol Buffers and gRPC: schema evolution, unary and streaming RPCs, stubspractice7
11lang.11SQL and SQLite: schema, transactions, WAL mode, indexes, aggregatespractice7