Advanced Python: stop guessing what it does.
You can already write Python. This course is about why it behaves the way it does —
why a default argument remembers old values, why two variables change together, what
@decorator actually is, how @property works, and what the GIL really
prevents. Every example is runnable and every output shown is real.
The one idea this course is built on
In Python, variables are not boxes that hold values — they are names attached to objects. Almost every surprising behaviour in the language is this one fact in disguise.
list(a), a.copy(), copy.deepcopy(a).
You know loops, functions, lists, dicts and basic classes. If for,
def and class are new to you, do the official Python tutorial first
(docs.python.org/3/tutorial) — then come back. Examples target Python 3.12+, and
call out anything newer.
Pick a path
I keep hitting weird bugs
Lessons 01, 02, 04. Names vs objects, scope and closures, and function defaults explain most of them.
Python interview coming up
Lessons 01, 03, 05, 06, 09, 16, 17. Object model, decorators, generators, dunders, the GIL and asyncio.
I write libraries / frameworks
Lessons 09, 10, 11, 12, 15. The data model, descriptors, dataclasses, metaclasses and typing.
My code is too slow
Lessons 03, 16, 17, 18. Know what the interpreter does, pick the right concurrency model, and profile first.
Ships with a hands-on project
🛠 Build a small task-queue library
A registry of jobs declared with a decorator, retry and timeout policies, typed configuration
validated by descriptors, a lazy generator pipeline for results, an asyncio worker pool — packaged
with pyproject.toml and covered by pytest. Every lesson in the course shows up in one
real codebase.