How to Use This Curriculum¶
Curriculum orientation. How levels work, study modes, and time estimates. If you have not installed Python yet, start with START_HERE.md first.
This guide walks you through how the curriculum is organized, what order to follow, and how to pace yourself.
Reading Order¶
Start with these four documents, in this order:
- START_HERE.md -- Install Python and run your first script in under 10 minutes.
- 00_COMPUTER_LITERACY_PRIMER.md -- What a terminal, file, and program are. Skip this if you already know.
- 01_ROADMAP.md -- The full program overview: every level, every milestone.
- 03_SETUP_ALL_PLATFORMS.md -- Detailed setup instructions for Windows, Mac, and Linux.
After that, follow the "Next" link at the bottom of every document. The entire curriculum is a single click chain -- you never have to figure out what comes next.
Reference-Only Documents¶
These documents are not meant to be read front-to-back. Use them when you need to look something up:
- 02_GLOSSARY.md -- Definitions of key terms. Come back here when you encounter unfamiliar words.
- 13_SAMPLE_DATABASE_SCHEMAS.md -- Example database schemas used in SQL-related projects. Relevant starting at Level 6.
- concepts/ -- Concept guides on variables, loops, functions, etc. Read these when a project references them or when you need a refresher.
Time Estimates¶
How long each section takes depends on your pace and prior experience. These are rough estimates for someone working through the material carefully, including the "Alter it / Break it / Fix it" exercises.
| Section | Estimated Hours |
|---|---|
| Level 00 (Absolute Beginner) | ~5 hours |
| Level 0 (Terminal, Files, Basic I/O) | ~15 hours |
| Level 1 (Input, CSV, JSON, Paths) | ~20 hours |
| Level 2 (Data Structures, Cleaning) | ~20 hours |
| Level 3 (Packages, Logging, TDD) | ~25 hours |
| Level 4 (Schema Validation, Pipelines) | ~25 hours |
| Level 5 (Scheduling, Monitoring) | ~25 hours |
| Level 6 (SQL, ETL, Idempotency) | ~30 hours |
| Level 7 (APIs, Caching, Observability) | ~30 hours |
| Level 8 (Dashboards, Concurrency) | ~30 hours |
| Level 9 (Architecture, SLOs, Security) | ~35 hours |
| Level 10 (Enterprise, Production Readiness) | ~35 hours |
| Elite Track (Algorithms, Distributed Systems) | ~40 hours |
| Each Expansion Module (12 available) | ~10-20 hours |
| Total | ~400-500 hours |
Weekly Pacing Suggestions¶
| Hours per Week | Approximate Duration |
|---|---|
| 5 hours/week | ~2 years |
| 10 hours/week | ~1 year |
| 20 hours/week | ~6 months |
| Full-time (40 hours/week) | ~3 months |
There is no rush. Consistent practice matters more than speed. It is better to spend 5 hours per week for two years than to cram for a month and burn out.
When You Get Stuck¶
Getting stuck is not failing -- it is learning. Every professional programmer gets stuck daily. The difference between a beginner and an expert is not that experts never get stuck. It is that experts have been stuck thousands of times and built a toolkit for getting unstuck.
When you hit a wall, that uncomfortable feeling is your brain forming new connections. Research on learning consistently shows that struggling with a problem -- even unsuccessfully -- produces deeper understanding than being handed the answer. If everything feels easy, you are not learning anything new.
So when you feel stuck, frustrated, or like you are "not cut out for this," recognize that feeling as evidence of growth. Take a breath, and try the process below.
For more on learning effectively, see LEARNING_HOW_TO_LEARN.md.
A process that works¶
- Read the error message. Python error messages tell you exactly what went wrong and on which line. Read it from the bottom up.
- Re-read the concept doc. Every project links to related concept guides. Go back and re-read the relevant section.
- Add
print()statements. Print the value of variables before the line that breaks. See what the data actually looks like. - Take a break. If you have been stuck for 20 minutes, walk away for 10 minutes. The answer often comes when you stop staring at the screen.
- Check the FAQ. Common problems and solutions are collected there.
- Search the error message. Copy the last line of the traceback and search for it online. Someone has hit the same error before.
- Open an issue. If you think the curriculum itself has a bug (broken test, missing file, unclear instructions), open an issue on GitHub.
How to Track Your Progress¶
Run the progress tracker from the repository root:
You can also manually update PROGRESS.md as you complete projects.
Choosing a Learning Mode¶
The curriculum supports three modes. Pick the one that fits how you learn:
- Play-First -- Open a project, tinker, break things, figure it out. Read the concept doc when you get stuck.
- Structured -- Read the concept doc, take the quiz, then do the projects in order. Use checklists and mastery gates.
- Hybrid (Recommended) -- Follow the structured path on weekdays. Explore expansion modules and challenges on weekends. Review flashcards daily.
Practice Tools¶
The curriculum includes several tools to reinforce your learning beyond the main projects:
- Quizzes — Test your understanding of each concept:
concepts/quizzes/ - Flashcards — Quick-review decks for key terms and patterns:
practice/flashcards/ - Challenges — Standalone problems sorted by difficulty:
practice/challenges/ - Browser Exercises — Run Python in your browser with no install:
browser/ - Spaced Repetition — SM-2 algorithm to schedule your reviews:
tools/spaced_repetition.py
| ← Prev | Home | Next → |
|---|---|---|