Python Atlas

The Python Atlas

A decision-first curriculum from Python fundamentals to production engineering.

Python is easy to start and deep enough to reward years of study. This curriculum teaches both: the language you type and the engineering judgment behind reliable software.

How to use this curriculum

Read a concept, predict what each example will do, run it, then change one assumption. The exercises are part of the lesson—not optional review.

The learning loop

  1. Model — explain the behavior before running the code.
  2. Build — write the smallest complete version.
  3. Test — prove normal, boundary, and failure behavior.
  4. Inspect — use logs, a debugger, types, and profiling data.
  5. Refactor — improve names and boundaries without changing behavior.

What “advanced” means here

Advanced Python is not shorter syntax. It is the ability to:

  • choose a collection from access patterns and invariants;
  • recognize when a function, class, protocol, generator, or context manager fits;
  • separate CPU work, blocking I/O, and asynchronous I/O;
  • make timeouts, cancellation, transactions, and resource ownership explicit;
  • test behavior at the cheapest useful layer;
  • select a dependency from evidence instead of popularity;
  • keep code obvious enough for another developer to change safely.

Install Python 3.12 or newer and uv, then create a scratch project:

uv init python-atlas-lab
cd python-atlas-lab
uv add --dev pytest pytest-cov ruff mypy
uv run python --version

Keep one repository for your exercises. Commit after each lesson so your history becomes a record of how your design decisions improved.

Choose your route

If you want to…Begin with…
learn programming from zeroFoundations
understand Python internals and designCore language
organize and debug larger projectsSoftware engineering
write concurrent I/O programsStandard library & async
test, package, build APIs, or analyze dataTooling, web & data