Foundations
Print, variables, strings, and talking to the user.
Open Day 1 →
A complete beginner's course in the essentials of the language —
from print() on
Monday to classes, generators and a finished project by Sunday.
Every example on this site is a Python program you can edit and
run where it sits.
Real Python, running in this tab. The first run downloads the interpreter; after that it is instant.
Each is seven modules — about two hours a day is a guide, not a deadline. Beginner and Intermediate build on each other; Advanced is for a narrower goal, designing code other developers call. Read the first line of each card and start at the first one that sounds like you.
Write working programs, from print() to a finished project.
Make programs that survive bad input and stay easy to change.
Design code that other developers can use correctly.
Between Beginner and Intermediate? Open the beginner capstone project. If you could have written it yourself — a dataclass, a JSON file, error handling and tests — you are ready for Intermediate.
Every example is a live Python editor. Change the code, press Run, see what happens — the fastest way anyone has ever learned to program.
Real CPython 3.14 compiled to WebAssembly runs inside your tab. No download, no PATH, no version conflicts — and nothing you write leaves your machine.
Twenty-eight lessons, each building on the last, chosen to cover what you actually need — and to leave out what you do not.
Each lesson ends with something to write yourself, and a worked solution that explains why it is written that way.
Each day is four short lessons and takes roughly two hours — a guess we're still checking with real learners. Do one a day for a week, or take each over two sittings: the order is what matters, not the pace. Lessons marked Explore are optional on a first pass.
Print, variables, strings, and talking to the user.
Open Day 1 →Decisions with if, repetition with while and for.
Open Day 2 →Lists, tuples, dictionaries, and sets.
Open Day 3 →Naming behaviour and reusing it.
Open Day 4 →Handling failure and reaching for the standard library.
Bundling data with the behaviour that belongs to it.
Open Day 6 →Multi-file projects, tests, a capstone — and a program of your own.
These are not sandboxed toys. input()
really blocks, tracebacks name real line numbers, and you can
write files, import from the standard library, and split a
program across several modules.
Run the program beside this and answer its questions — the prompt appears in the output, exactly as it would in a terminal.
Four lessons: printing, variables, strings, and reading input. By the end of them you will have written a program that asks a question and answers it.