Skip to content

Learning Contract

Page Maps

graph LR
  family["Python Programming"]
  program["Python Meta-Programming"]
  section["Guides"]
  page["Learning Contract"]
  capstone["Capstone evidence"]

  family --> program --> section --> page
  page -.applies in.-> capstone
flowchart LR
  orient["Orient on the page map"] --> read["Read the main claim and examples"]
  read --> inspect["Inspect the related code, proof, or capstone surface"]
  inspect --> verify["Run or review the verification path"]
  verify --> apply["Apply the idea back to the module and capstone"]

Read the first diagram as a timing map: this guide is for a named pressure, not for wandering the whole course-book. Read the second diagram as the guide loop: arrive with a concrete question, use only the matching sections, then leave with one smaller and more honest next move.

This course only works if you treat it as a judgment-building program instead of a bag of runtime tricks. The contract below is the minimum discipline required to get that value out of it.

Non-negotiable study rules

  1. Read the course in order from Module 00 to Module 10.
  2. Keep the Capstone Guide and Capstone Map open while reading.
  3. After every module, identify the lower-power alternative that would solve some of the same problems.
  4. Do not copy a pattern into production code until you can explain its debugging cost.

Questions you should always answer

  • What happens at import time, class-definition time, instance time, or call time?
  • Which metadata or invariants must remain visible after transformation?
  • Which part of the behavior belongs on an object, a field, a wrapper, or a class?
  • What would become harder to test or review if this code became more magical?

Evidence rule

Every major claim in the course should be checkable in either:

  • one runnable code fence in the module
  • one named capstone file
  • one capstone proof command

If you cannot check the claim, treat it as untrusted until you can.

When to slow down

Slow down immediately if:

  • decorators start feeling interchangeable with descriptors
  • metaclasses feel exciting instead of narrowly justified
  • eval, import hooks, or monkey-patching stop sounding dangerous

Those moments usually mean the earlier conceptual boundary is not firm yet.