Just added: Algorithms you can run and practice
Updated Jun 19, 2026 Edit on GitHub

Python From Zero

Python is the language people reach for when they want to get something done without fighting the language first - data work, scripts, web backends, automation, glue between systems. It reads almost like English, which makes it inviting, and that same readability hides a few sharp edges nobody warns you about. This guide takes you the whole way: from "I've never run Python" to understanding what the language is actually doing underneath your code - explaining each piece rather than handing you spells to memorize.

It's one zero-to-hero journey in two halves. Phases 1–9 are the basics - enough to write real, well-organized programs. Phases 10–18 are the deep half - the data model, generators, decorators, typing, concurrency, performance, and packaging, the stuff that separates "writes Python" from "understands Python." Each phase carries a difficulty badge so you can see the climb.

If programming itself is brand new - not just Python - start with Programming From Zero first; it builds the "what is a program" mental model this guide assumes.

How to read this

  • Brand new to Python? Read 1–9 in order, top to bottom - each builds on the last. Type the examples as you go (most are runnable right here); doing beats reading. Come back for 10+ when the basics feel comfortable.
  • Already know another language? Skim 1–5 for Python's spelling of ideas you have, then start properly at Phase 6: Objects & Classes.
  • Past the basics already? Jump straight to the deep half - Phase 10: The Data Model onward is where Python stops being "a readable scripting language" and starts being a language you can reason about to the metal.

The phases

Part 1 - The basics (🟢 Basic → 🟡 Intermediate)

  1. Install & Your First Program 🟢 - Python 3, the REPL, a real hello.py.
  2. Syntax, Values & Types 🟢 - indentation as structure, the core types, f-strings.
  3. Collections 🟢 - lists, tuples, dicts, sets, and the aliasing trap.
  4. Control Flow & Functions 🟢 - if/loops/def, truthiness, the mutable-default trap.
  5. Modules & Project Layout 🟢 - import, the stdlib, __main__, a clean layout.
  6. Objects & Classes 🟡 - what an object really is, self, when to reach for a class.
  7. Errors & I/O 🟡 - reading tracebacks, try/except, files without corruption.
  8. Ecosystem & Tooling 🟡 - pip, virtual environments, formatters, linters.
  9. Idioms & Gotchas 🟡 - the Pythonic way, and the sharp edges that bite everyone once.

Part 2 - Beyond the basics (🔴 Advanced) 10. The Data Model & Dunder Methods 🔴 - make your objects behave like built-ins. 11. Iterators & Generators 🟡 - yield, laziness, processing huge data without the RAM. 12. Decorators 🔴 - the @ magic in every framework, demystified. 13. Context Managers 🟡 - with, and never leaking a file/lock/connection again. 14. Type Hints & mypy 🟡 - gradual typing; catch the bug before runtime. 15. Dataclasses & Modern Modeling 🟡 - kill the boilerplate. 16. Concurrency & the GIL 🔴 - threads vs processes vs async, and what the GIL actually blocks. 17. Performance & Memory 🔴 - how CPython runs, the GC, and the real speedups. 18. Packaging & Environments 🟡 - ship a package, not a folder of scripts.

Finale 19. Where to Go Next 🟢 - web, data, automation, and what to build.

Frameworks (FastAPI, Django) are their own guides - they're different tools, not "more Python." This guide makes the language make sense, top to bottom.