The short version: Scratch teaches how to think; Python teaches how to talk to a real computer. Most children should start with Scratch and move to Python within three to six months.
What Scratch is
Scratch is block-based programming built at MIT. Each block is one instruction — "move 10 steps", "if on edge, bounce" — and children snap them together and press play to see the result immediately.
Its most important quality is that a child cannot make a typing mistake. No missing brackets, no forgotten semicolons. All their attention goes into working out how to make the character behave the way they want.
What Python is
Python is a real language professionals ship work in — websites, banking systems, artificial intelligence. Its syntax reads closer to English than any other popular language, which makes it the best first real language for a child.
# Three blocks in Scratch; one line in Python
for i in range(10):
print("Hello!")
Side by side
| Scratch | Python | |
|---|---|---|
| Best age | 6–11 | 10 and up |
| Typos | Impossible | Break the program |
| Speed to first result | Instant, and animated | Slower; text first |
| Usable for real work | No | Immediately |
| Portfolio weight | Some | Considerable |
Signs it is time to move on
- They complain there are "too many blocks" on bigger projects
- They can build a game with several scenes and characters unaided
- They ask how "real" programs are written
One warning: do not skip Scratch because it looks childish. Young children who jump straight to Python usually spend their time hunting for typos instead of learning to think in steps.
Our own path is built around exactly this — the Basic course starts with blocks, and the Python course carries it into a real language. You can see what students end up building on the Python project page.