Course structure
The course is three modules, not counting the introduction you are reading right now. Each module works like a mini-course: it takes its own group of topics and sees them through.
- Fundamentals of Python I — variables, data types, functions, conditions, loops and collections. The things every Python program is built from.
- Fundamentals of Python II — libraries and modules, working with files, classes and objects, exceptions, decorators, dates.
- Advanced Python — databases, testing, threading and async.
The order is not arbitrary: each module stands on the one before it. In the second you will write functions and loop over lists from the first, and the third does not hold together without them. If the basics are already familiar, skim what you know — but don't start in the middle.
The code block
Almost every article has a code block in it. It looks like this:
Python 3.13print("Hi, I love Python 😊")Hi, I love Python 😊
The line marked with >_ is not code any more — it's the result: what Python printed after running the line above. So read the block top to bottom: first what we asked for, then what came back.
Four icons live in the top right of the block:

The ▶ icon isn't on every block — only on the ones whose code can be run. It opens the code in the sandbox: a separate tab where you can change it and run it as many times as you like.
One detail about ▶ that saves some confusion: it picks up not just its own block, but every executable block in the article above it, including itself. So a variable declared in the very first block still reaches the last one, and the code doesn't break halfway.
Self-testing tasks
Not in every article, but in many — especially in "Fundamentals of Python I" — a block of tasks waits at the end:

Don't skip them. Reading about a loop and writing a loop are different things, and you only find out which is which at the keyboard 🎓.
Log in before you start, otherwise your solutions won't be saved.
