Skip to content

Module 0 — Orientation & mental models

Estimated: ½ week · Syllabus · Next → Module 1

  • What software engineering is beyond coding: managing complexity over time, across people, under change. Coding is writing instructions; engineering is keeping those instructions correct, understandable, and modifiable as requirements shift and the codebase grows. The enemy is complexity, and most practices exist to fight it.
  • Essential vs. accidental complexity (Fred Brooks, No Silver Bullet). Essential complexity is inherent to the problem; accidental complexity is what we add through poor tools, structure, or choices. Nearly every practice in this course targets accidental complexity.
  • The cost curve of change. Bugs and design flaws get exponentially more expensive to fix the later they’re caught — cheap in a spec, moderate in review, expensive in production. This single fact justifies planning, testing, and review.

Set up your two dev environments deliberately. Note what VS Code + Claude does well vs. Antigravity, since you’ll use both. Create a scratch repo just to practice the mechanics without stakes.

☐ A one-page written answer to: “What makes code good beyond ‘it works’?” Revisit and revise it at the end of the course — the delta is your learning.

Write it as notes/00-what-makes-code-good.md. Do not revise that file in place at the end of the course — write a second file and diff them. The delta is the point.

(working notes go here)