Learn Python
ActiveZero to production in 274 projects
Course Overview
A complete, hands-on Python curriculum that takes you from zero programming experience to production-grade engineering. Every concept is taught through building real projects — no passive lectures, no toy examples.
What You’ll Build
- 274 hands-on projects across 13 progressive levels
- 12 technology modules covering web frameworks, databases, APIs, testing, and more
- 10 elite-track capstones for staff-engineer-level challenges
- 34 concept guides with visual diagrams and real-world examples
Curriculum Highlights
Foundations (Levels 0–3): Variables, control flow, functions, data structures, OOP basics. You write code from day one.
Intermediate (Levels 4–6): File I/O, error handling, modules, decorators, generators, context managers. Projects get more complex and realistic.
Advanced (Levels 7–9): Concurrency, networking, databases, web frameworks (Flask, FastAPI), testing with pytest. You build real applications.
Expert (Level 10 + Elite Track): System design, distributed systems, performance optimization, security. Staff-engineer-level challenges.
Expansion Modules: Deep dives into Django, data science, machine learning, DevOps, and more.
How It Works
Each project includes:
- A clear problem statement and requirements
- Starter code with TODO markers
- A comprehensive test suite (run
pytestto check your work) - An annotated solution walkthrough
You learn by doing. Tests verify your implementation is correct, and solutions explain the reasoning behind each approach.
Prerequisites
- A computer with Python 3.11+ installed
- A text editor or IDE
- Curiosity and willingness to build things
No prior programming experience required. Level 00 starts from absolute zero.
Start Here — Learning Roadmap
A suggested path from zero to mastery. Follow these steps in order:
- Install Python & Set Up Your Editor — Get Python 3.12+ from python.org, install VS Code with the Python extension, and run your first script
- Learn Core Syntax — Variables, data types, strings, numbers, booleans, conditionals, and loops using the official Python Tutorial or python.org docs
- Master Functions & Data Structures — Write reusable functions, work with lists, dictionaries, tuples, and sets until they feel natural
- Understand Object-Oriented Programming — Classes, inheritance, encapsulation, and Python’s data model (dunder methods, descriptors)
- Handle Files, Errors & Modules — Read/write files, use try/except properly, organize code into packages and modules
- Learn Testing with pytest — Write unit tests, fixtures, parameterized tests, and build the habit of test-driven development
- Explore the Standard Library — pathlib, itertools, collections, functools, logging, argparse — Python’s batteries-included toolkit
- Build Web Applications — Start with Flask for simplicity, then FastAPI for modern async APIs, then Django for full-stack applications
- Go Deeper — Generators, decorators, context managers, concurrency (asyncio, threading, multiprocessing), and type hints
- Ship Real Projects — Deploy applications, contribute to open source, package and publish your own libraries on PyPI
Official & Core Documentation
- Python Official Tutorial — The original Python tutorial from the core team, excellent for beginners (Beginner)
- Python Standard Library Reference — Complete reference for every built-in module and function (All levels)
- Python Language Reference — Formal language specification covering syntax, data model, and execution (Advanced)
- PEP 8 — Style Guide — The definitive Python style guide, essential for writing idiomatic code (Beginner)
- Python Packaging User Guide — Official guide for packaging and distributing Python projects (Intermediate)
- Python Developer’s Guide — How CPython itself is developed, useful for contributors and advanced learners (Advanced)
- Python Roadmap — Community-created visual roadmap with a step-by-step learning path (Beginner)
- Real Python — High-quality tutorials and articles covering every Python topic in depth (All levels)
- Python Type Hints Cheat Sheet — Quick reference for type annotations from the mypy docs (Intermediate)
GitHub Awesome Lists & Curated Collections
- awesome-python — The definitive curated list of Python frameworks, libraries, and tools organized by category
- awesome-python-typing — Collection of Python type-checking tools, stubs, and plugins
- awesome-fastapi — Curated list of FastAPI resources, third-party packages, and project templates
- awesome-django — Curated list of Django resources, packages, and projects
- awesome-flask — Curated list of Flask resources, extensions, and tutorials
- awesome-pytest — Collection of pytest plugins, fixtures, and testing utilities
- awesome-python-data-science — Python libraries and tools for data science, ML, and scientific computing
- best-of-python — Ranked list of 300+ Python open-source projects with activity metrics
Interactive Courses & Hands-On Platforms
Free Courses
- freeCodeCamp — Scientific Computing with Python — Free project-based Python curriculum with certification (Beginner)
- Kaggle — Intro to Python — Short, focused Python course with in-browser exercises and real datasets (Beginner)
- Google’s Python Class — Free 2-day Python course originally designed for Google employees (Beginner)
- Microsoft — Introduction to Python — Free official Microsoft training modules with sandbox environments (Beginner)
- Scrimba — Learn Python — Interactive screencasts where you can edit code inside the video player (Beginner)
University & MOOC Courses
- MIT 6.0001 — Introduction to Computer Science and Programming Using Python — MIT’s foundational computer science course, free on OpenCourseWare (Beginner)
- Harvard CS50P — Introduction to Programming with Python — David Malan’s excellent Python course with problem sets and projects (Beginner)
- University of Michigan — Python for Everybody — Charles Severance’s popular free Python course with textbook and exercises (Beginner)
- 100 Days of Code — The Complete Python Pro Bootcamp — Angela Yu’s comprehensive project-based course with 100 real projects (Beginner, Paid)
Practice & Challenges
- Exercism Python Track — Mentored coding exercises with community feedback and learning-focused progression (Beginner)
- Codewars — Thousands of Python kata ranked by difficulty from fundamentals to expert (All levels)
- LeetCode — Algorithm and data structure challenges, essential for interview prep (Intermediate)
- Project Euler — Mathematical programming challenges that build algorithmic thinking (Intermediate)
- Advent of Code — Annual December coding challenge with 25 days of increasingly difficult puzzles (All levels)
- Python Challenge — Puzzle-based challenge where each level requires Python to solve (Intermediate)
Video Courses & YouTube Channels
Structured Course Playlists
- freeCodeCamp — Python Full Course for Beginners — Comprehensive 4+ hour Python course for absolute beginners (Beginner)
- Corey Schafer — Python Programming Tutorials — One of the most popular and well-structured Python tutorial series on YouTube (Beginner)
- Corey Schafer — Python OOP Tutorials — Clear, focused series on object-oriented programming in Python (Intermediate)
- ArjanCodes — Software Design in Python — Design patterns and architecture applied to Python (Intermediate)
Individual Creators & Channels
- Corey Schafer — Gold standard Python tutorials covering fundamentals, OOP, Flask, Django, and developer tools (All levels)
- ArjanCodes — Software design, architecture patterns, and clean code in Python (Intermediate)
- Tech With Tim — Practical Python projects, game development, and machine learning tutorials (Beginner)
- mCoding — Deep dives into Python internals, CPython, and performance optimization (Advanced)
- Fireship — Fast-paced concept explainers including “Python in 100 Seconds” and framework overviews (All levels)
- anthonywritescode — Python internals, tooling, and pragmatic coding advice from a CPython core contributor (Advanced)
Books & Long-Form Reading
Free Online Books
- Automate the Boring Stuff with Python — Al Sweigart’s beloved practical programming book, completely free online (Beginner)
- Python Crash Course — Eric Matthes’ project-based introduction, companion site with free resources (Beginner)
- Think Python — Allen Downey’s introduction to Python through computer science concepts (Beginner)
- Dive Into Python 3 — Mark Pilgrim’s classic for programmers coming from other languages (Intermediate)
- Architecture Patterns with Python — Harry Percival & Bob Gregory’s free book on clean architecture and DDD in Python (Advanced)
Essential Paid Books
- Fluent Python — Luciano Ramalho’s deep exploration of Python’s data model and advanced features, the definitive intermediate-to-advanced book (Advanced, Paid)
- Effective Python — Brett Slatkin’s 90 specific ways to write better Python (Intermediate, Paid)
- Python Cookbook — David Beazley & Brian Jones’ recipe-based guide to advanced Python techniques (Advanced, Paid)
- Robust Python — Patrick Viafore on type annotations, protocols, and writing maintainable Python (Intermediate, Paid)
- Test-Driven Development with Python — Harry Percival’s guide to TDD with Django, free online (Intermediate)
Community, Practice & News
Forums & Discussion
- r/learnpython — Beginner-friendly subreddit for Python learners with active, helpful community
- r/Python — Main Python subreddit for news, projects, and discussion
- Python Discord — Large, active Discord server with help channels, events, and code review
- Stack Overflow — Python — The largest Q&A archive for Python problems and solutions
Newsletters & Blogs
- Python Weekly — Weekly newsletter with the latest Python articles, news, and packages
- PyCoder’s Weekly — Curated weekly newsletter covering Python tutorials, tools, and community news
- Real Python Newsletter — Weekly roundup of Real Python’s latest tutorials and guides
- Python Bytes Podcast — Weekly podcast covering the latest Python headlines in short, digestible episodes
- Talk Python to Me — Long-form interview podcast with Python creators, contributors, and practitioners
Package Registry
- PyPI — Python Package Index — The official repository of 500,000+ Python packages
- Conda-Forge — Community-led collection of conda packages, essential for data science
- Snyk Advisor — Check health and security scores for Python packages before installing
Tools & Environments
- VS Code + Python Extension — The most popular Python editor with IntelliSense, debugging, and integrated terminal
- PyCharm Community Edition — Full-featured free Python IDE from JetBrains with smart code completion and refactoring
- Jupyter Notebook — Interactive notebook environment for data exploration, visualization, and literate programming
- uv — Extremely fast Python package installer and resolver, modern replacement for pip + virtualenv
- Ruff — Extremely fast Python linter and formatter written in Rust, replaces flake8 + isort + black
- mypy — Static type checker for Python, catches type errors before runtime
- pytest — The standard Python testing framework with powerful fixtures and plugin ecosystem
- IPython — Enhanced interactive Python shell with tab completion, magic commands, and rich display
- Poetry — Dependency management and packaging tool with lockfiles and virtual environments
- pyenv — Simple Python version management for installing and switching between Python versions
- Rye — All-in-one Python project manager from the Astral team (makers of uv and Ruff)