This post isn’t about why you should teach your kids to code (there’s plenty of those out there), it’s about the how. I’ve detailed several tools below which should be useful for children of all ages to learn programming concepts and languages.
I only really started programming at university, which is a shame because I could have gotten a massive head start on peers if I had dived in a bit earlier.
I know software engineering isn’t for everyone but I believe more people should get involved in the field, at least to have a better understanding of the technology that’s becoming an ever increasing part of our lives, and what better way to do this than by sparking an interest with your kids when they‘re young.
I decided to research what options are available for teaching kids how to code, or at least how to get them interested in that way of thinking (i.e. the logical and problem solving mindset). There are a ton of resources out there, far more than I will mention here, but the ones I’ve listed below should cover a wide range of ages and levels of understanding. I’ve listed my personal recommendations at the bottom of the page, for those of you who want to skip the others.
The visual language and interface was created at MIT Media Labs to get kids coding early, even if they can’t yet understand the complicated syntax that makes up written computer languages.
“One of the best ways to take the first leap into programming. Developed by the MIT Media Lab, Scratch is a visual programming language. It allows kids to build interactive stories, animations, games and music. This visual approach to programming is the perfect way to teach kids the fundamental concepts behind programming and software development.”
Platform: Web. Age Group: 8–17.
Scratch - Imagine, Program, Share_Scratch is a free programming language and online community where you can create your own interactive stories, games…_scratch.mit.edu
App Inventor is a cloud-based tool for building Android apps right in your browser. The website provides tutorials and support for students to create (and possibly release) their very own android apps!
Platform: Web (and optionally your Android phone). Age Group 12+.
MIT App Inventor | Explore MIT App Inventor_Interest in virtual reality (VR) and augmented reality (AR) applications is exploding. Last month's Pokemon Go craze…_appinventor.mit.edu
Interactive tutorial into the basics of programming using JavaScript that focuses on action. Code changes immediately yield visible results.
Code Monster is a gentle and fun introduction to programming concepts. It’s quite enjoyable and gets kids actually manipulating code right away, although it lacks some of the dazzle that some other graphical solutions may offer and the visuals are a little outdated.
Platform: Web. Age group: 9–14.
Code Monster from Crunchzilla_Code Monster gets kids excited about programming. It is a combination of a game and tutorial where kids experiment with…_www.crunchzilla.com
A brand new app from Apple. Learning to code with Swift Playgrounds is incredibly engaging. The app comes with a complete set of Apple-designed lessons. Play your way through the basics in “Fundamentals of Swift” using real code to guide a character through a 3D world. Then move on to more advanced concepts. Thanks to Matthew Fitch for the suggestion.
Platform: iPad. Age group: 8+.
Swift Playgrounds_Swift Playgrounds is a new app for iPad that teaches you to write Swift code in a fun, interactive way. Learn the code…_www.apple.com
A bit similar to Scratch although it’s more basic. Specifically designed for the iPad, Hopscotch is simple enough for most kids to get into it quickly but allows for them to set up all kinds of events and actions from a simple play button to more advanced things like tilting/shaking the iPad and drawing/colliding characters.
Platform: iPad. Age group: 8+.
Hopscotch - Learn to Code Through Creative Play_For curious people of all ages. Make your own games, art, and more. Tons of in-app tutorials and even lesson plans to…_gethopscotch.com
Same idea as hopscotch, except this game targets the youngest coders. I didn’t get a chance to use it but from what I’ve seen it’s extremely basic and it’s probably a good introduction to coding for 4–8 year old children. It allows kids to create basic events like “on dinosaur touched, move dinosaur”.
Platform: iPad. Age group: 4–8.
https://itunes.apple.com/gb/app/daisy-the-dinosaur/id490514278
Created as a fun and simple way to get people of all ages to begin coding. Uses a social element of earning badges for completing bits of code and progressing through tutorials which can be shared to friends. It’s very interactive and shows immediate feedback/outputs of your code.
Aimed at higher level students who want to actually learn how to program using real code, and not a pseudo programming language. It lacks the game-y aspect that many of the other child targeted solutions offer, but it’s still really easy to grasp and allows kids as young as 12 to learn the basics of many languages including Ruby, JavaScript, PHP and Python. They also have an After School Programming effort to try and encourage students/teachers to start programming clubs at their schools.
Platform: Web, iOS. Age group: 12+.
Learn to code_Learn to code interactively, for free._www.codecademy.com
Alice is a 3D programming environment that allows kids create animations, interactive games, or videos. The application introduces and will help kids understand key principles such as object orientated programming. Programs are created by drag and dropping graphic tiles. Each instruction corresponds to standard statements in a programming language, such as Java, C++, and C#. This tool looks a little outdated (but the core concepts aren’t) and support is still provided.
Platform: Desktop. Age group: 12+.
Designed as a cheap, accessible, programmable computer for kids, the Raspberry Pi is an excellent starting place for children of all ages to learn how to code, and it makes it even more enjoyable when it’s their every own computer!
The Raspberry Pi website also offers an educational manual as a free download, which guides students on how to set it up. It also contains tutorials for the aforementioned and popular Scratch programming language. Older/more experienced kids may also wish to avail of the python tutorials the manual provides.
Platform: RaspberryPi (of course). Age group: 8+.
Raspberry Pi - Teach, Learn, and Make with Raspberry Pi_The Raspberry Pi is a tiny and affordable computer that you can use to learn programming through fun, practical…_www.raspberrypi.org
This is one of the better places to start if your child has never programmed before. The age range on the site says 6–106 because they believe that anyone can and should go to code.org and learn the basics of coding for one hour.
Engineers from Google, Microsoft, Facebook at Twitter helped create the one hour tutorial and it has been endorsed by many celebrities (which will likely encourage kids to give it a go even more). It also uses graphics from the immensely popular Angry Birds and Plants vs. Zombies, which certainly can’t hurt. After completing one hour of coding the site offers recommendations on where to go next to continue learning.
Platform: Web. Age group: 6+.
Every child deserves opportunity_The Hour of Code started as a one-hour introduction to computer science, designed to demystify "code", to show that…_hourofcode.com
LightBot is a programming puzzle game in which you have to move a robot to the end of each level using high level programming concepts like loops and procedures. Gameplay involves dragging and dropping simple instructions to form a procedure for the robot to carry out to complete each level.
Platform: iOS, Android, Windows, Mac, Kindle. Age group: 4–8 (for junior coding puzzles) and 9+.
Some others that I was quite impressed by but didn’t get a chance to properly look at: Stencyl, Tynker and Hackety Hack.
Okay, I know I’ve mentioned quite a few above so here are my top three recommendations, in no particular order:
Scratch — http://scratch.mit.edu/
CodeCademy — http://www.codecademy.com/
Hour of Code — https://hourofcode.com/
Thanks for reading, I hope you found some of this useful.