Short, focused lessons that take you from your first print() to writing real scripts: reading data, automating everyday tasks, and building small tools you will use again. Runs in your browser. Works on a phone. Free forever.
Not sure which path? The roadmap puts them in order, from zero to employable.
24 topics, one A4 page each, from strings and loops to NumPy and pandas. Every example on them is run with Python before the sheet is printed, and each sheet ends with the mistakes people often make.
See all 24 cheat sheetsTake these in order, from your first print() to large projects.
Start here if you've never written code. Variables, control flow, functions, lists and dictionaries: the basics you need before anything else makes sense.
After the basics, this is where Python becomes useful for real work: OOP, files, exceptions, comprehensions, decorators and the other techniques you will use every day.
Metaclasses, descriptors, async, type hints and performance: the topics you need to understand how large Python projects and libraries work.
Use what you have learned to build complete, working Python programs. Each project goes through the build step by step, then gives you extra goals to try on your own.
After the basics, pick the area you want to work in.
From your first DataFrame to models and LLMs. Beginner on the first row, then deeper.
An easy start in data science: what it is, why it matters, and your first hands-on pandas analysis. Each idea is explained in plain words before any technical terms.
Machine learning without heavy maths. Linear regression, classification, decision trees, and the metrics that tell you if a model is good.
Neural networks explained in plain words first, then built with Keras. CNNs for images, RNNs for sequences, and what each line of training code does.
NumPy, Pandas, Matplotlib, and just enough statistics to not embarrass yourself. Real datasets, real questions, no toy examples.
How ChatGPT, Claude and other large language models work (tokens, attention, embeddings, RAG, fine-tuning), and how to use them from Python.
Neural networks, CNNs, NLP, GANs, and how the parts of a production AI system fit together. Theory only where it helps, and working code everywhere else.
Build web apps and APIs, secure them, store their data and put them online.
Flask, FastAPI and Django: when to use each one, how to build a working app in each, and the patterns real teams use. Authentication and databases have their own tracks.
Password hashing, sessions, JWT, OAuth2 with real providers, and the OWASP-flavoured security checklist every web app needs before it goes live.
Docker, GitHub Actions, environments and secrets: the work that takes code from 'works on my laptop' to 'works in production'.
The next step after SQLite: Postgres with psycopg/asyncpg, Redis for caching and queues, MongoDB for document data, and ORM patterns that stay fast in production.
Open these whenever you need them: a task to solve, an error, a syntax reminder, a ready program, a habit to learn.
Step-by-step answers to the tasks people search for most: the terminal, Git, scraping, APIs, CSVs, databases, automation, testing, logging and packaging.
The Python errors you are most likely to meet, from a wrong indent to a server that stops at 2am. For each one: what the message means, the code that causes it, and the fix. You can run every example here.
Cheat sheets and a glossary for when you forget the syntax: comprehensions, slicing, f-strings, datetime, regex. Short pages with just the answer.
Short, practical habits that experienced Python developers rely on: the before, the after, why it works, and when not to use it. Plus how real projects like Dropbox and Spotify used these ideas at scale.
One page per question people type into a search box: read a CSV, parse JSON, use SQLite, sort a dictionary by value, call an API. The code first, then the one or two things that trip people up.
Classic programs in order, from Hello World and leap years to sorting, file handling and small tools. Each page has the code, the real output, a Run button and a short explanation of how it works.
Real outages, lost data and a malicious package (Cloudflare, GitLab, PyPI): what went wrong, told from each company’s own write-up, and the habit that would have caught it. Every story ends in code you can run.
The data tracks expect you to run the code yourself, and you can. scikit-learn, XGBoost, LightGBM, pandas and statsmodels all run in this tab, with no install, and your code never leaves your device. Train a model, score it on a test split, plot the result. PyTorch and TensorFlow are the honest exceptions: no WebAssembly build exists, so those lessons ask you to run locally and say so plainly.
Cells that share one Python session. Load a DataFrame in the first cell and every cell below can use it. You don't need to run the whole file again to change one line. Tables and plots render where you make them, and it autosaves.
Open the notebook →Seven CSV files with real patterns in them, so a model you train can find something: housing, weather, retail, films, students and churn, plus one file that is messy on purpose, so you can practise cleaning data. One line to load any of them.
Browse the datasets →The full editor when you want a scratchpad rather than a notebook: multi-tab, syntax checking, package installs, and your session restored exactly where you left it.
Open the playground →Charts render as high-resolution images, and Plotly figures render live: you can drag to rotate a 3D scatter plot or a loss surface and look at it from every side.
A short, honest note. It takes two minutes to read.
222 lessons (including 60 error write-ups), 195 Python programs, 31 tips, 26 short answers and 24 cheat sheets so far, and the site is still being written. These four arrived most recently. We also ran every code example in the lessons again, fixed the ones whose output did not match the page, and rewrote the text in plainer English. There’s no newsletter and no notify me box. If there’s something you want next, say so with the feedback button. Requests are how we pick what to build.
Programs that ask a question with input() or pause with time.sleep() now work in Safari, Firefox and every browser on iPhone and iPad, in the editor and in the lessons, and Stop works there too. The editor also completes names from your own code, for example math.sqrt after import math.
The editor now runs Python 3.14, 3.13, 3.12 or 3.11: click the status line above the output to switch, and share links keep the version. The lessons, examples and notebook stay on 3.13, the version every output on them was checked on.
See what changed →195 classic programs, from adding two numbers to sorting, games and small tools. Each page has the code, the output and a short explanation, and you can run it in your browser.
Browse the programs →Paste a traceback and it finds the page that fixes it (60 errors written up), or explains the error and points at the line of your code to look at. Failed runs in the editor and the lessons now have an Explain this error link.
Paste an error →Everything already here stays free, and everything new will be free too: no account, no paywall, no email sign-up.
No paywall, no premium tier, no email gate. Your code runs in your browser, not on servers we rent, which is what makes free possible. There are no ads today. When they arrive they'll be clearly labelled, and the lessons stay free either way.