THE ROADMAP

Five stages from syntax to systems.

Each stage has a concrete outcome and project. Complete lessons in sequence, or use the map to identify the exact gap you need to close.

STAGE 05

Tooling, web & data

0% complete
0%

Outcome: Test, package, persist, serve, and analyze production-oriented Python applications.

Stage project: Ship a tested API with SQL storage and an analytics report.

  1. uv, pip, and packagingCreate reproducible environments, define pyproject metadata, and ship importable Python packages.
  2. Ruff, Black, and mypyAutomate formatting, linting, import hygiene, and static type checking without tool overlap.
  3. pytest fundamentalsWrite expressive tests with fixtures, parametrization, temporary resources, and boundary-focused mocks.
  4. Coverage that finds riskMeasure statements and branches with pytest-cov, interpret missing paths, and set useful coverage policy.
  5. Requests and HTTPXBuild defensive synchronous and asynchronous HTTP clients with explicit timeouts and useful errors.
  6. Build typed APIs with FastAPIDesign validated FastAPI endpoints with dependency injection, explicit errors, and testable boundaries.
  7. SQL databases in PythonUse sqlite3 and SQLAlchemy safely with parameters, explicit transactions, and deliberate abstraction.
  8. NumPy arrays and vectorizationWork confidently with array shapes, dtypes, broadcasting, vectorized operations, and numerical pitfalls.
  9. Pandas for tabular dataSelect, clean, aggregate, and join labeled tables while preserving types and row meaning.
  10. Testing strategyBalance unit, integration, contract, and end-to-end tests around risk and feedback speed.
  11. Capstone — civic data trackerBuild a packaged CLI and FastAPI service with a transactional database, data imports, and layered tests.