Introduction
I learnt to program many years ago when my school got a Commodore PET, an early all-in-one computer programmed in Basic. I can remember how excited I was when that first program worked and I really wanted my kids to experience that.
I've also taught a class of 9 year-olds in the local school Scratch, if you want to teach a class to program then you might find my experiences useful.
I try to keep the site fairly up-to-date with resources as I find them, this area changes all the time and languages and teaching environments come and go all the time.
How old can you start programming?
I think you could start really young if you have a motivated child and you have the time and expertise to work with them; perhaps 7 years.
I see lots of comments on programming sites of parents teaching younger kids but personally, I'd wait, they're going to spend years sitting in front of screens, do you really want to encourage it earlier?
My 9 year old could do fun things with Scratch and of course teens and older children are going to find this easier than the younger ones. For really young kids there look to be some fun apps that might be good way to start.
Early teens and complete beginners would probably still enjoy using Scratch / Small Basic to get a feel for it but a keen older child would probably be best to rapidly move on to Python(see below); also for the more practical child do try combined hardware/software kits like Lego Mindstorms.
Recommended Books on Coding for Kids
Also check out my longer kids programming reading list page.
Minecraft
There's been a big increase in using Minecraft in education and with "mods" kids can change the way Minecraft works, you can do this in several ways.
There's a web-based system called Learn To Mod which is pretty good web based subscription service a good book linked to the service is Minecraft Modding for Kids.
Alternatively, if you've got a somewhat older kid (say 13+) then do it yourself with the Forge framework and Minecraft Modding with Forge: A Family-Friendly Guide to Building Fun Mods in Java.
Combined software and hardware options for kids
For many children pure programming can be a bit abstract, adding some hardware into the mix can be a good way to make it more "real".
Lego Mindstorms According to the Lego site: The Mindstorms robotics toolkit comes with building instructions for 4 main models ranging in building complexity, going from the Quick Start model that you can assemble and program in 30 minutes, to the ultimate Humanoid. 6 building and programming challenges are included on the software CD, complete with step-by-step building instructions and programming guide for all models. | |
Arduino Kits There are lots of these kits available, a bare-bones kit can be $25 but unless you've got a lot of electronics lying around you'll need some sensors to be able to actually do anything fun. I'd suggest getting a kit with all the getting started stuff like the one shown to the left. There's also the second edition of the awesomely named book 30 Arduino Projects for the Evil Genius . MAKE: magazineis also well worth subscribing to as they do a lot with Arduino kits and lots of other inspiring projects, they also have a good bookavailable. | |
Raspberry Pi Raspberry Pi has been out for a few years now and is onto version 3, so now for under $50 you get a computer with WiFi! You will need a few more bits (like a memory card, USB power supply) but it's a fully fledged computer, great for kids to experiment with hardware and software. It connects to a regular TV via HDMI. The excellent MAKE magazine also has a book for getting started with the Raspberry Pi. | |
SAM Labs
A UK based company who have built this neat kit for getting kids started, it has a bunch of tiny wireless blocks: a button, an LED, a motor etc and you can just drag-and-drop them onto a workspace and then draw connections between them without any programming to get started. However, then you can add Javascript code to do more sophisticated things. I got one for my son and he's had good fun with it. |
Programming Environments Suitable for Children
I've started pulling out a better list of kids programming environments.
Environment | |
---|---|
Scratch Good starting environment especially for younger children, I would estimate most kids 8-9 years old could start and probably smart 7 year olds. Programming is all drag-n-drop but has a reasonable set of control structures (loops, ifs) and a good event based model. | |
SmallBasic Created in 2008, a simple Basic environment for .NET, I tried it very briefly when it first came out and was a little disappointed, however its been improved since then and they've put a lot of work into it. One great feature is that once the kids have outgrown SmallBasic they can take their project and upgrade it and then take it further with the full VisualBasic.NET environment (the Express edition is free too). Microsoft also has some great beginning programming videos and tutorials, overall highly recommended. | |
GameMaker | GameMaker |
PyGame Add in a library like PyGame and you've got a pretty good basis. Check out my dedicated page on Python resources for kids. | |
Kudo Microsoft Research visual coding environment, my 9 year old enjoyed using this. Emphasizes the fun aspect. Also check out the excellent Microsoft Kid's Corner in their beginners development center. | |
Alice | |
TouchDevelop | |
Logo |