Nathalie and I started teaching our kids to program on our own without doing a whole lot of research on how other kids were being taught. I learned how to program at a very young age, largely on my own, so I never doubted that they could learn. The question is just how early to start. Having kids in the house ages 6, 8 & 9, I was confident the 8 & 9 year olds would have no problems (having started myself at age 8), but I was a little skeptical of teaching the 6-year-old.
In short, boy was I wrong. Put the 6-year-old in front of Scratch and tell him it’s a game and he is off and running. To be honest, I’m not sure he knows it isn’t a game, he just is having fun. At first the fun is in adding crazy pictures and making the computer make silly noises that only young boys would appreciate. But it’s not too long before programming starts happening. For them, this is just how the world works. Figuring out how to make a ball bounce in Scratch or figuring out how to blow up a zombie in Minecraft is all the same to them.
Other people are clearly ahead of me in this. One of the wonderful things about writing about things is that friends/readers take the time to tell about what they have found. My friend Adam sent me a link to a Kickstarter project: Robot Turtles. It is a board game designed to teach programming. The amazing thing about it is that our kids are way too old, it is targeted at 3 to 5 year olds. It really is worth watching the video. Even though it is a board game and there is no computer involved, you can quickly see the value.
Wired magazine also had a recent opinion piece: Forget Foreign Languages and Music. Teach Our Kids to Code. I would not go so far as to skip languages and music, but I fully agree with the sentiment of teaching programming and formal logic earlier. To be honest, as someone who hires programmers, the people who didn’t start learning until college spend years catching up to the people who started young. Like learning a foreign language at a young age, logic and programming come very easily for the young.
I don’t know if any of our kids will grow up to be programmers, but for them it is going to be a basic skill that I expect will be needed in almost any job.
As a bonus, click on the picture above – we converted the pong game to breakout. We found some of the limits of Scratch – after creating 40 blocks, we created a separate script for bouncing in the 4 different directions. It took me a moment to figure out why the computer was getting so slow, but in effect we created 160 threads! Anyway, its a fun little game. It still has a few bugs – when working with kids there isn’t much incentive to perfect things and besides after an hour or so they have had enough. I continue to be impressed with Scratch, it is amazing how much you can get done in that first hour.
So to answer the question in the title: How Young? If you can make it fun, as young as you can keep them interested, even if for only a few minutes.
Thanks for reading,