What Age Should a Child Start Coding? (An Honest Answer)
Blocks from around six, typing from around nine. Why the real answer is a ladder with two proper rungs, and how to tell which one your child is on.

In this article
We get asked this more than any other question, usually by a parent who has been given four different answers by four different people, two of whom were selling something.
So here is ours, with the number first and the honesty afterwards.
Blocks from around six. Typed code from around nine or ten. Those are the ages we would give if you stopped us in a corridor and had ten seconds.
But an age is a description of a crowd, and you do not have a crowd. You have one child, and the useful version of this answer is about them.
The short answer, and what is wrong with it
Six for blocks and nine or ten for typing is roughly right, in the way that saying children walk at one year is roughly right. It describes the middle of a wide spread and tells you almost nothing about the child in front of you.
We have taught seven-year-olds who were ready for Python and twelve-year-olds who were far better served by another year in blocks. Neither of those was a problem. Both would have become one if we had gone by the birthday on the form.
The trouble with an age is that it collapses four separate things into one number. Those four things move independently, at different speeds, in every child.
That is why the honest answer is a ladder rather than a date, and why the rung your child is on is something you can check yourself this week.
Four sliders, not one line
Here is what actually decides readiness. Attention span, reading fluency, frustration tolerance, and curiosity.
Attention span is the ability to stay with one thing for twenty minutes without the room falling apart. Blocks need less of it than typing does, because a blocks project rewards you every few seconds and a typed one can go ten minutes without visible progress.
Reading fluency is the one that decides the most and gets discussed the least. Python is read far more than it is written, and every error message is an English sentence. A child still spending real effort on reading itself will spend all of it there and none on the logic.
Frustration tolerance is how long they can sit with something broken before shutting the laptop. Typing produces many more small failures per hour than blocks do, and a child who is not ready for that volume does not go slower. They go away.
Curiosity is the one that is almost always already full. Nearly every six-year-old has it. It is the others that need time.
An age is a fact about a crowd. Readiness is a fact about your child, and you can check it yourself.
When a child is genuinely too young for typing
This is the part most articles will not say plainly, so here it is.
If your child is not yet reading fluently, typed code is the wrong room. Not a stretch, not a challenge. The wrong room. Put a six-year-old in front of Python and almost everything they meet is spelling, and the ideas they came for never get a look in.
Look at what a single line demands before anything at all happens on screen:
print("hello")
# lowercase p
# round brackets, not square
# a quote mark at both ends
# no space before the bracket
# and the whole thing on one lineBoth rungs are real
The five requirements above are why blocks exist, and why they are not a waiting room.
A blocks environment removes the spelling and leaves the thinking. A six-year-old dragging a repeat block around two others is doing genuine computational work, and the fact that it looks like play is a feature of the design rather than evidence that nothing is happening. They are building the same four ideas a Python student meets, which we laid out in when a child is ready to move from Scratch to Python.
The other half of this matters too, and parents of older children need to hear it more often. A child starting at eleven or twelve has not missed a window. There is no window. They will move through the early material faster than a seven-year-old would, precisely because their reading and their patience arrived first.
The only genuinely bad outcome we see is a child moved to typing before they were ready, who concluded from three difficult months that they are not a coding person. That belief costs years and it is entirely avoidable, which is most of why we would rather you waited.
What you can do this week
You can check all four sliders at home without your child knowing they are being checked.
None of this needs a laptop and none of it needs you to know any code.
- Hand them a page of writing meant for their age and listen. If reading it aloud is still effortful, blocks are the right room for now.
- Watch how long they stay with a jigsaw or a Lego set that is fighting them. Twenty minutes is the number to look for.
- Ask what they would make if a computer would do anything they said. Whatever they answer, that is the curiosity slider, and it is usually full.
Final thought
So the honest answer is that there are two proper starting points rather than one, and neither is a consolation prize. Around six for blocks, around nine or ten for typing, with a wide margin either side that belongs to your child rather than to the average.
If you take one thing from this, make it the reading test. It predicts more than the birth certificate does, and it takes about four minutes.
If your child is already in blocks and you are wondering about the next rung, the observable signals are in 7 signs your child is ready to move beyond blocks. If they are on the typing rung and short of ideas, there are five finishable ones in what should a 10-year-old actually build with Python. And if you are still weighing up whether any of it is worth starting, we answered that plainly in why kids should still learn to code in the age of AI.
Or let us look with you. Book a free trial class and we will tell you honestly which rung your child is on, including when the answer is not yet. One hour, no card needed.


