Scratch is not a waiting room
A child who is genuinely fluent in Scratch — building their own games, using lists, nesting conditions, debugging when something misbehaves — understands more computer science than a child who can type twenty lines of Python copied off a worksheet.
Worth holding onto, because the pressure to switch almost always comes from adults. Python looks like programming in a way that coloured blocks do not, so the move feels like progress by itself. Whether it actually is depends entirely on what the child brings with them.
The two gates
Both need to be clear. One without the other produces a stalled, discouraged child.
- Gate one: they can build their own projects. Not remix, not follow along. Can they decide to make something, work out which pieces it needs, and get there — with variables holding state, loops repeating work and conditions branching? A child who can do that owns the concepts, and Python becomes new notation for ideas they already have.
- Gate two: they can type. Python is typed text with punctuation that matters. A child hunting for the colon, the underscore, the bracket is spending their whole working memory on transcription, with nothing left for the actual problem. This is the gate that gets skipped, and it is the more decisive of the two.
Gate two has a purely mechanical fix: ten minutes of typing practice a day for a few weeks. It is dull, and it is worth it. A child who types comfortably at around twenty words a minute, knowing where the symbols live without looking down, has a completely different first month in Python from one who does not.
A five-minute test at home
Ask your child to open one of their own Scratch projects and explain a loop that uses a variable — a score going up, a countdown, a repeat that stops on a condition.
Listen to how the explanation comes out. "It adds one each time round, and when it gets to ten it stops" is a child ready to move. "I dragged that block there and it worked" is a child who should stay in Scratch a while longer, building things without a tutorial until the narration arrives.
This is the reading comprehension test in a different costume. You are checking whether the underlying idea belongs to the child, or whether the tool has been quietly carrying it for them.
Signs to wait
Any one of these is a reason to give it another few months.
- They still need a tutorial for everything. The concepts have not transferred yet, and Python will not transfer them.
- They cannot explain a variable in their own words. Not the textbook definition — what it is doing in their own project.
- Two-finger typing. Fix this first. It is the cheapest problem on the list and the one that most reliably ruins the first month.
- You want it more than they do. This is the strongest single predictor of a child abandoning programming, and no curriculum survives it. A child happily making games in Scratch is not behind anyone.
Do not make it a hard switch
The worst version of this transition is closing Scratch on Friday and opening a Python editor on Monday.
Be clear-eyed about the trade: the first weeks of Python are objectively less rewarding than Scratch. More typing, less happening on screen, and errors that stop everything over a missing bracket. A child who has just given up something they were good at experiences that as a punishment.
- Let them overlap. Keep Scratch for creative projects while Python starts on small self-contained logic — a dice game, a number guesser, a quiz.
- Start with visible output. Python turtle graphics draws shapes from real typed code, which keeps the reward of seeing something happen while the syntax becomes ordinary.
- Remove setup friction. If running code means installing three things first, that is exactly where the enthusiasm goes. Start somewhere it runs in one click.
- Say the cost out loud. Tell them the first month will feel slower than Scratch and that this is normal. Children handle a difficulty they were warned about far better than one that ambushes them.
The Raspberry Pi Foundation project library is a good free source of first Python projects, and it is structured so a child can work through it largely unaided.
If they are happy in Scratch, leave them there
We teach Python, so read this as the paragraph that costs us something.
There is no advantage to starting Python at eight rather than eleven. Nothing compounds in between. A child who spends another year building increasingly ambitious Scratch projects and moves at Class 6 will be ahead, within a term, of one who was pushed early, struggled, and quietly concluded that coding is not for them.
The only real deadline is that Classes 6 to 10 leave plenty of room — which is why our Python pathway begins there, and treats typing and project design as part of the work rather than assuming both.