This is the question I am asked most often. The short answer: children can start coding at about six — but only if they start in the right form for their age. Sit a six-year-old down to type Python and most will quit within a fortnight.
Ages 6–8: blocks, not typing
At this age English reading is still shaky and typing is slow. Ask them to type code and their energy goes into hunting for letters on the keyboard instead of thinking. The right tool is block-based programming (Scratch or Blockly), where instructions snap together like jigsaw pieces.
What they actually gain is not "a programming language" but sequence — what happens first, what happens next, what to do when a condition is met. That is the root of every language they will ever learn.
Ages 9–12: the sweet spot
If I had to pick one window, this is it. Reading and writing are fluent, attention stretches to a 20–30 minute problem, and homework has not yet taken over their evenings.
Children this age can spend two or three months on blocks and then move straight to a real language like Python. Many of my students started at ten and were writing their own games by twelve — you can play some of them on our student work page.
Thirteen and up: too late?
Not at all. Teenagers think abstractly, so variables, functions and data structures land far faster than they do with younger children. Students who start in secondary school often overtake children who began in primary within a single year, because they understand why rather than only how.
Age is not what decides it. What decides it is whether they started from the right place for their age.
Three signs your child is ready
- They can stay with one thing for 20 minutes — Lego, drawing, a game. It does not have to be schoolwork.
- They ask "why" a lot — children who want to know how things work tend to love programming.
- A mistake does not end the day — coding is making a mistake, fixing it, repeating. If every error still brings tears, wait six months.
The usual misconception
Many families believe a child must be strong at maths first. They do not. Coding at this level uses little more than basic arithmetic. What it really uses is patience and step-by-step thinking. A child who is average at maths but calm usually goes further than one who is excellent at maths but impatient.
If you are unsure, the simplest test is to watch ten minutes of a real recorded lesson together and see whether they ask questions afterwards. That reaction tells you more than any age.