I'm a full-stack developer. I've spent over a decade building web applications, managing production infrastructure, and debugging systems at 3am. My tools are TypeScript, React, Node.js, and whatever else the job demands.
Python wasn't one of them. I'd read about it, used it for the occasional script, but I'd never actually sat down and learned it. When I finally decided to, I hit the same wall everyone hits: most Python courses are either too shallow (build a calculator and call it a day) or too academic (here's a lecture on Big-O notation before you've written a for loop). Nothing matched how I actually learn — by building real things, breaking them, and understanding why they broke.
So I built the curriculum I wished existed. Then I open-sourced it, because if it helps me learn Python, maybe it helps you too.
This is a complete, hands-on Python curriculum. From "what is a terminal?" to deploying production applications. 251 projects. Every learning style supported. Go at your own pace.
Every learning style is first-class. Read concepts, build projects, watch walkthroughs, test with quizzes, review with flashcards, visualize with diagrams, or try code in the browser — all following the same path. However you learn best, there's a way through this curriculum for you.
You build real things. 251 projects, not toy examples. Every project has tests, starter code, and challenges that force you past copy-paste into actual understanding.
You go at your own pace. This isn't a bootcamp with deadlines. Follow the click chain, take breaks, come back. The spaced repetition system tracks what you've forgotten so you can review efficiently.
Every step is connected. Every document, concept guide, project, quiz, walkthrough, and challenge is linked through a single click chain with a "Learn Your Way" navigation table at every stop. Start at the beginning and follow the "Next" links. That's it.
Not sure how you learn best? Take the Learning Style Selector quiz to get a personalized path through the material.
| Domain | Examples |
|---|---|
| CLI Tools | Password checkers, file renamers, batch automation scripts |
| Web Scrapers | HTML parsers, pagination handlers, CSV exporters |
| REST API Clients | JSON consumers, authenticated API callers, retry-enabled clients |
| FastAPI Applications | CRUD endpoints, JWT authentication, Pydantic-validated APIs |
| Async Systems | Concurrent task runners, async HTTP fetchers, queue processors |
| Database Applications | SQLAlchemy models, Alembic migrations, query optimizers |
| Data Analysis | Pandas pipelines, matplotlib visualizations, data cleaners |
| Django Full-Stack Apps | Models, views, templates, DRF APIs, full CRUD applications |
| Dockerized Services | Multi-stage builds, docker-compose stacks, CI/CD pipelines |
| Cloud Deployments | Railway/Render hosting, Postgres-backed production apps |
git clone https://github.com/travisjneuman/learn.python.git
cd learn.pythonOpen START_HERE.md and follow the guide. You'll be writing Python in under 10 minutes.
Never used a terminal before? Start with 00_COMPUTER_LITERACY_PRIMER.md — it explains everything from scratch.
Not sure how to use this curriculum? Read the Getting Started Guide. Have questions? Check the FAQ.
Already know JavaScript, Java, C#, or Ruby? Jump to the Fast Track to skip what you already know.
The curriculum is a straight line from zero experience to production-grade engineering. Every stage builds on the last.
| Stage | Docs | What You Learn | Projects |
|---|---|---|---|
| Absolute Beginner | 00-03 | What is a terminal, how to install Python, first commands | 15 exercises |
| Foundations | 04 | Variables, loops, functions, files, errors, collections | 15 projects |
| Quality & Testing | 09 | pytest, ruff, black, writing tests that catch real bugs | 15 projects |
| Intermediate Python | 05-08 | Excel/CSV automation, SQL basics, data pipelines | 60 projects |
| Professional Practices | 10-12 | Packages, logging, refactoring, dependency management | 45 projects |
| Operations & Integration | 13-15 | Scheduling, monitoring, ETL, caching, APIs | 45 projects |
| Elite Track | Curriculum 16-50 | Architecture, observability, resilience, security, cost modeling | 10 projects |
| Expansion Modules | 12 modules | Web scraping through cloud deployment — real libraries, real tools | 56 projects |
Total: 251 projects across 13 levels and 12 technology modules.
See the full Curriculum Map for a dependency diagram and every project listed at a glance.
Play-First (Builder) — Open a project, tinker, break things, figure it out. Read the concept doc when you get stuck. Watch the walkthrough only if you're truly blocked. Good for people who learn by doing.
Structured (Reader) — Read the concept doc, take the quiz, then do the projects in order. Use the checklist and mastery gates. Good for people who like clear progress markers.
Watch-First (Watcher) — Watch the curated video for each concept, read the walkthrough to see the thinking process, then build the project. Good for people who learn by observing first.
Visual-First (Visualizer) — Start with the Mermaid diagrams to see the big picture, read the concept guide with the diagram as your mental map, then build. Good for people who think in pictures and systems.
Hybrid (Recommended) — Follow the structured path on weekdays. Explore expansion modules and challenges on weekends. Review flashcards daily. Mix modalities as needed.
Take the Learning Style Selector to find your best starting approach.
Every level has a theme, a set of projects, and a capstone that ties everything together.
| Level | Theme | Projects | Example Project |
|---|---|---|---|
| level-00-absolute-beginner | First steps — no imports, no tests | 15 | 01-first-steps |
| level-0 | Terminal, files, basic I/O | 15 | 02-calculator-basics |
| level-1 | Input validation, CSV, JSON, paths | 15 | 05-csv-first-reader |
| level-2 | Data structures, cleaning, error handling | 15 | 12-csv-to-json-converter |
| level-3 | Packages, logging, test-driven development | 15 | 04-test-driven-normalizer |
| level-4 | Schema validation, data contracts, pipelines | 15 | 09-transformation-pipeline-v1 |
| level-5 | Scheduling, monitoring, resilience patterns | 15 | 11-retry-backoff-runner |
| level-6 | SQL, staging, ETL, idempotent operations | 15 | 09-incremental-load-simulator |
| level-7 | API adapters, caching, polling, observability | 15 | 08-ingestion-observability-kit |
| level-8 | Dashboards, concurrency, fault injection | 15 | 08-fault-injection-harness |
| level-9 | Architecture, SLOs, capacity planning, security | 15 | 06-reliability-scorecard |
| level-10 | Enterprise blueprints, compliance, production readiness | 15 | 11-production-readiness-director |
| elite-track | Algorithms, distributed systems, staff-engineer capstone | 10 | 06-event-driven-architecture-lab |
Twelve self-contained technology modules. Each one teaches a real Python library or framework through 3-5 progressive projects.
| # | Module | Projects | Prerequisite | What You Learn |
|---|---|---|---|---|
| 01 | Web Scraping | 5 | Level 2 | requests, BeautifulSoup, CSS selectors, pagination, CSV export |
| 02 | CLI Tools | 5 | Level 2 | click, typer, subcommands, interactive prompts, progress bars |
| 03 | REST APIs | 5 | Level 2 | requests, JSON parsing, authentication, retries, API client design |
| 04 | FastAPI Web Apps | 5 | Level 3 + Module 03 | FastAPI, Pydantic, uvicorn, CRUD endpoints, JWT auth |
| 05 | Async Python | 5 | Level 3 | async/await, asyncio, aiohttp, queues, concurrent tasks |
| 06 | Databases & ORM | 5 | Level 3 | sqlite3, SQLAlchemy, Alembic migrations, query optimization |
| 07 | Data Analysis | 5 | Level 2 | pandas, matplotlib, data cleaning, grouping, visualization |
| 08 | Advanced Testing | 5 | Level 3 | parametrize, mocking, fixtures, hypothesis, integration tests |
| 09 | Docker & Deployment | 5 | Level 5 | Dockerfile, multi-stage builds, docker-compose, GitHub Actions |
| 10 | Django Full-Stack | 5 | Module 04 + Module 06 | Django models, views, templates, DRF, full CRUD app |
| 11 | Package Publishing | 3 | Level 3 | pyproject.toml, src layout, build, TestPyPI |
| 12 | Cloud Deployment | 3 | Module 04 + Module 09 | Railway/Render, Postgres, production checklist |
Suggested order: Modules 01-03 and 07 after Level 2. Modules 04-06, 08, 11 after Level 3. Modules 09-10, 12 after Level 5.
35 concept guides explain core ideas in plain language — from variables and loops through decorators, async/await, and security. Most have matching quizzes. See the full concept index.
34 quizzes — one per concept guide. Run them from the terminal:
python concepts/quizzes/what-is-a-variable-quiz.py24 flashcard decks — spaced repetition using a Leitner box system. Cards you get right appear less often. Cards you miss come back immediately.
python practice/flashcards/review-runner.py30 coding challenges — 10 to 30 minutes each. 15 beginner, 15 intermediate.
python practice/challenges/beginner/01-swap-variables.pyPlus diagnostic assessments, an auto-grader, and a progress dashboard.
These gates mark real, demonstrable competence. Each one produces something you can show.
| Gate | Milestone | What It Proves |
|---|---|---|
| A | Setup complete + first script + first passing test | You can write and run Python |
| B | File/Excel automation handles malformed input gracefully | You can build resilient data tools |
| C | SQL ETL pipeline is idempotent and recoverable | You understand data integrity |
| D | External API data ingested into local database cache | You can integrate external systems |
| E | Browser dashboard renders data for non-technical users | You can build for real users |
Contributions are welcome. If you find a typo, a broken link, a test that could be better, or want to add a project — open an issue or submit a pull request.
If this curriculum helps you learn Python, that's already worth it. If you want to make it better for the next person, even better.
Please read CONTRIBUTING.md for guidelines and CODE_OF_CONDUCT.md for community standards.
| Document | Description |
|---|---|
| Getting Started Guide | How to use this curriculum, time estimates, pacing suggestions |
| FAQ | Common questions from new learners |
| Curriculum Map | Visual dependency diagram and projects-at-a-glance table |
| Fast Track | Accelerated path for developers who already know another language |
| 30-Day Python Challenge | Curated 30-day subset of the curriculum with daily goals |
| Review Schedule | Spaced repetition review calendar with checkpoints per level |
| Career Readiness | Map curriculum levels to job roles, interview prep by stage |
| Portfolio Guide | How to present your projects to employers |
| Teaching Guide | Classroom adaptation: semester mappings, rubrics, GitHub Classroom |
| Workshop Kit | Run a 2-hour Python workshop at meetups and user groups |
| Accessibility | Screen reader guidance, cognitive accessibility, accommodations |
| Creator Kit | Guide for YouTubers and bloggers creating companion content |
| Validation | What the CI checks do and how to run them locally |
| Tools Guide | Documentation for all curriculum tools |
| Changelog | Version history and release notes |
| Contributing | How to contribute to this project |
| Code of Conduct | Community standards |
| License | MIT License |
