🛠️ Projects¶
You learn Python by building things. This section is a catalog of projects at every level, each mapped to the skills it exercises.
Reading about a concept and using it are different kinds of knowledge. Projects force you to combine ideas, hit real problems, and finish something — the fastest path from "I've read about it" to "I can do it."
Levels¶
- 🌱 Beginner Projects — CLI tools, small games, file utilities
- 🔧 Intermediate Projects — web apps, APIs, dashboards, automation
- 🚀 Advanced Projects — async services, distributed workers, ETL
- ⚙️ Systems Projects — monitoring, tracing, low-level tooling
- 🔬 Research Projects — JITs, interpreters, novel experiments
How to get the most from a project¶
1. Pick something slightly above your level (stretch, don't drown).
2. Define a minimal version — the smallest thing that works.
3. Build the minimal version end to end. Ship it.
4. Then add features one at a time.
5. Write a few tests. Put it on GitHub.
Finish small things
A finished tiny project teaches more than an abandoned ambitious one. Scope down until you can complete a first version, then grow it. Every project here lists a "minimal version" so you know where to start.
A note on originality¶
Don't worry that a project "already exists." Building your own todo app, URL shortener, or web scraper is how you learn — the value is in your building it, not in it being novel. Save originality for later; right now, reps matter more.
💬 Discussion
Have a question about this topic? Found an error? Share your thoughts below.