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.
Books on Coding for Kids
Also check out my longer kids programming reading list page
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
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".
The Lego Mindstorms kits are well regarded but are a bit pricey; with the kit you can make innumerable cool robots and devices, for instance a robot that guards your room and shoots balls at intruders!
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.
Definitely one for older kids only, I'd think 14+ unless they are really committed.
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: magazine is also well worth subscribing to as they do a lot with Arduino kits and lots of other inspiring projects, they also have a good book available.
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.
Programming Environments Suitable for Children
Free, cross platform (also Web browser version).
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.
There's a new release which runs entirely in a web browser which is great.
Free, Windows only.
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.
||Not strictly targeted at kids but I think it would make a good next step after Scratch. Again no hand-writing of scripts its all drag-n-drop and dialogs but much more fully featured than Scratch (and hence more complicated).
PyGame and Python
For somewhat older kids I think you could get useful stuff done with a generic programming language (like Python).
Add in a library like PyGame and you've got a pretty good basis. Check out my dedicate page on Python resources for kids.
Free: Windows and XBox
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|| 3D Programming environment that's very different from most other approaches, it feels like a 3D version of Scratch for older kids.|
| TouchDevelop||Another environment from Microsoft, works directly in pretty much any web browser, 3 skill levels from beginner to expert. Kids can code using drag-and-drop tools or a programming language and share their games with anyone via the web site.|
| || Logo||Probably the first language targeted at kids specifically. |
It's fallen out of favor over the years but might be worth a look. Turtle Academy has a web based version and there are apps too for some platforms.
Camps and Courses
| code.org||code.org||Amazing work by some ex-Microsoft brothers, a non-profit organization dedicated to teaching kids to code.|
A range of courses, over 20 hours worth, with options for almost any age.
|Khan Academy |
Free: Cross platform (browser based).
A bit dry for the younger kids. Now has courses for Python and Java too.
| || iD Tech Camps.||Holds summer camps for technology inclined kids, when choosing a camp I'd recommend choosing one that looks a bit too hard for your child as in my experience their descriptions over-sell what they will actually do. Also pretty pricey, I warn you.|
Game Design for Kids
You may find, as I did with my youngest son, that your child doesn't really want to program, what they want to do is design games, I've gathered a few resources on that here
You can contact me at M A R K at Teach Kids To Program dot com (no spaces, all lower case).