A local father asked for advice on what laptop he should get for his 7 year old daughter, who he wants to get interested in programming. That got me thinking about getting kids interested in programming generally.
Of course, I was a kid once, so I started by thinking about what got me into it. I first got interested in programming because it helped me solve a problem (I needed a mother's day card and we lived too far away from any physical stores, so I learnt to program a digital one) and I got even more excited about it because it helped me be creative in new ways (e.g. I could create digital versions of the games I would play in real life with my friends). So, at least for me, it was less about getting interested in programming itself and more about discovering what programming would enable me to do. Programming was not the goal, it was the way to get there. Now, after many years of programming, I am interested in the meta aspects of programming itself, like what makes for a good language and clean code, but I still value the output of my program more than the program itself.
So, that's the first thing I'd advise for parents who want to get their kids into programming: don't just tell them about programming, also expose them to all the crazy things you can do with programming, and the way that your programs can be used by anyone in the world. Maybe your kid isn't into robots or 3rd printers, but when you tell them they can make a game where their favorite cartoon character is the lead, that's when it clicks for them.
But besides desire, they also need the tools and the skills. I've written before about the different ways that aspiring programmers can learn online and in SF, but I was curious to find out what the most kid-friendly resources are out there. So I turned to everyone on Twitter for their opinions. Here's what they suggested:
Programming Languages & Environments
- MIT Scratch
- Isla Language
- Processing JS
- Greenfoot Java Programming
- MIT App Inventor
- RenPy: Visual novel engine
- Inform7: Interactive fiction design platform
- Mozilla Webmaker Tools
Computer Science Lessons
Books & Blogs
- Hello World: Computer Programming for Kids and Other Beginners
- Python for Kids
- Invent with Python
- Young Programmers Blog
Robotics & Electronics
- Lego Mindstorms
- Makey Makey
- Hands-on Science with Squishy Circuits
Jen Myers asked her Twitter feed for advice on game programming resources for her daughter, so I gathered these links from their answers:
- MineCraft: No programming, but the building mechanics involve logic.
- Little Big Planet 2: the authoring environment includes AI programming.
- Adventure Games Studio: "Minimal programming, lots of graphicky goodness."
- GameSalad: Aimed for non-coding, but coding is possible for more advanced users.
Now, I'm not a parent myself and haven't had any first-hand experience with exposing kids to programming. If you have, or if you're young enough to remember your own first exposure, let me know in the comments!