← Back to the full chapter
Lesson

Your five-week plan

Turn messy records into a reproducible analysis, with a clear account of what you know.

2 min read50 hours practice planWeeks 1–5Updated
Read source ↗

About ten hours a week. Each week ends with something on GitHub.

WeekFocusDo thisDone when
1Setup + NumPyReuse the uv project, shortlist your dataset, learn NumPy basics, start Essence of Linear Algebraarr.shape and broadcasting exercises work
2pandasMcKinney ch 4–8, 10 or pandas Getting Started. Write 3 cleaning functions with testsFunctions in src/ and tests in tests/ pass
3SQLSQLBolt basics, selected ThoughtSpot window and join lessons, then DuckDB on your CSVTop-N-per-group query and join-cardinality check run
4Your datasetConfirm data you sourced. Write a schema/source manifest and cleaning decision logEight+ meaningful checks pass. Log has 3+ decisions
5PublishREADME with question, answer and limitation. Charts that answer questions. A locked fresh-process runA stranger can clone and reproduce it

New words in this chapter, such as array, broadcasting, dataframe and point-in-time, are explained where they first appear below and collected in Terms in plain English.

Work in the Chapter 1 project. Add the SQL, plotting and test dependencies, then commit the changed project files:

uv add duckdb matplotlib
uv add --dev pytest

After writing the Week 2 tests in tests/test_*.py, run uv run --locked pytest from the project root. Use pytest's getting-started guide for discovery and assertions. Start the linear-algebra videos with chapters 1–4, ending with "Matrix multiplication as composition". Later lessons are optional, inside the same 50-hour budget.


Something unclear or out of date? Suggest a correction ↗

Find your next idea

Loading local search…

Search is built from this edition. No account needed.