Every year, somebody publishes a think-piece declaring that Scratch is "too simple," that it's "just for little kids," and that your nine-year-old should really be learning Python already. Every year, they're wrong. Not catastrophically, embarrassingly wrong — just quietly, consistently, provably wrong.
Scratch, the block-based visual programming language built by MIT's Lifelong Kindergarten Lab, has been the world's most widely-used introductory coding environment since 2007. Over 110 million projects have been shared on the Scratch platform. It's used in more than 150 countries. And despite every prediction of its irrelevance, it keeps producing better foundational programmers than almost any text-based alternative for the 5-to-12 age bracket.
So why? What does a platform built around dragging coloured blocks actually teach that typing Python doesn't?
The Syntax Problem Nobody Talks About
Here's what happens when a nine-year-old tries to write their first Python loop:
"for i in range(10):" — they type. Then they hit Enter. The cursor drops one line and just… sits there. Is it waiting? Did it break? Why is nothing happening? Wait, what's 'range' again?"
This isn't a failure of intelligence. This is a failure of the medium. Text-based code is deeply unforgiving in ways that have nothing to do with logic or problem-solving ability. A missing colon. A wrong indentation. An extra space. Any of these will crash the program — and the error message returned will often be more cryptic than enlightening. The child starts to believe the problem is them, not the syntax.
Scratch removes this entirely. If the logic block exists, it snaps in. If it doesn't belong where you're trying to put it, it doesn't snap. The feedback is instant, spatial, and clear. The child's mental energy goes entirely into the actual problem-solving — not into managing the ceremony of a programming language.
Computational Thinking First. Syntax Second.
The goal of learning to code isn't to memorise Python. The goal is to develop what researchers call computational thinking — the ability to break a complex problem into manageable steps, identify repeating patterns, abstract the details, and build a solution algorithmically.
MIT's own 2019 research review on Scratch found that even simple Scratch projects require students to engage with sequences, loops, conditionals, events, operators and data management — the same fundamental concepts that underpin every programming language on earth. A child who truly understands how a Scratch loop works will learn a Python for-loop in minutes, because the concept is already embedded. They're just learning new grammar for an idea they've already got.
Compare this to the reverse: a child who has memorised Python syntax but doesn't understand why a loop iterates or when to use a conditional. They can regurgitate code but can't solve novel problems. That's not a programmer. That's a parrot with a keyboard.
The Research Backs This Up
A 2020 study published in the journal Computers & Education compared children who learned programming via visual block-based tools against those who started with text-based languages. The block-based group showed significantly stronger performance on computational thinking assessments — not just initially, but at 6 and 12 months follow-up. The head start mattered.
Google's own "Made with Code" initiative identified block-to-text transition as one of the most critical phases in junior coding education. The research confirmed that children who spent meaningful time in visual environments transitioned to text-based languages more confidently, made fewer foundational logic errors, and showed greater persistence when debugging.
But My Child Is Already Googling Things…
Yes. And that's wonderful. But "interest in tech" and "readiness for text-based code" are two different things. A twelve-year-old who is obsessed with computers and wants to make games is not automatically ready to make peace with indentation errors and semicolons. They're ready to build things. Scratch lets them build things — immediately, meaningfully, and with the full satisfaction of seeing something move on screen.
That satisfaction is not a small thing. Motivation is the biggest predictor of learning outcomes in children. A child who spends 6 months happily building games, animations and stories in Scratch will accumulate more usable computational thinking than a child who spends 3 frustrated weeks learning Python syntax before giving up.
When to Move On
To be clear: Scratch is not forever. There's a natural ceiling, and a good mentor will recognise when a student is hitting it — usually when their projects are technically working but they're starting to feel constrained by what's possible. That's the exact moment to introduce Python or JavaScript. The transition is smooth, exciting, and fast because the foundations are already solid.
At STEMulus, we've run this process over hundreds of students. The ones who arrive at Python having spent meaningful time in Scratch don't just learn it — they thrive in it. They ask better questions. They debug their own code more intuitively. They understand what they're building, not just how to type it.
The blocks aren't training wheels. They're foundations. And you don't tear down a foundation because the building is getting taller.
The Bottom Line
If your child is between 5 and 12, start them with Scratch. Not because it's easy. Because it's correct. Because it teaches them what code is for before it teaches them what code looks like. Because it builds the mental models that every subsequent language will slot into. And because, honestly, building a game in Scratch and seeing it run is one of the most genuinely joyful things a kid can do with an afternoon.
Python is waiting. It'll be there in a year, or two, or whenever your child is ready. And when they arrive, they'll be more than ready.