While on Twitter yesterday, The Linux Foundation tweeted a link to this VentureBeat article on why your 8-year-old should be coding. Being a programmer and now a mom, I have to question 8 years old as the right spot. For me, especially watching my son tinker with things at 1, I’d love to teach him programming earlier. Apparently I’m not the only one who questions this – from what I remember, the young boy who co-authored Hello World! Computer Programming for Kids and Other Beginners was younger than 8 when he helped his dad with that book. Teaching programming to children has always fascinated me. As someone who loves translating tech into simple English analogies for non-techies to understand us, this area really intrigues me. So I’m dedicating this blog post to all of the children in my life – my son, nephew, niece, goddaughter, and other family and friends’ children – who may one day be programming alongside me. These are some resources – in addition to the book I just mentioned – that can help teach programming to kids.
This is the programming product featured in the VentureBeat article. You can learn more about Tynker at: http://www.tynker.com/ Tynker was inspired by Scratch.
Scratch started out as a research project at MIT, funded by the National Science Foundation. It allows for young people to create interactive stories, animations, games, music, and art. It also allows them to share their creations online. You can find more about Scratch at: http://scratch.mit.edu/
I remember watching one of my shows as a kid – Sesame Street, 3-2-1 Contact, The Electric Company…. one of those shows – and seeing a video of a kid playing with the Logo programming language. What I remember was a monochrome (green on black) screen and a triangle (called a “turtle”) moving around the screen. It was a simple language that taught children how to move the turtle around. So imagine my surprise when doing a search for Logo and finding a modern version! Someone apparently remembered Logo as well, and they’ve created Turtle Logo, a logo simulator in Silverlight. Check it out at: http://logo.codeplex.com/ You can read more about the history of Logo here: http://en.wikipedia.org/wiki/Logo_(programming_language)
Seeing screenshots of Tynker and Scratch, I’m reminded of a language I presented to the Toledo Area Linux Users Group back in 1999 – Squeak! I first heard about Squeak at OOPSLA ’99, and to see a Smalltalk-based language – heck, any language! – to teach kids about programming just really got me excited. Upon further investigation, Scratch is indeed based upon Squeak – so that reminder was no coincidence! You can read more about Squeak at: http://squeak.org/
But wait… what about… ?
Yes, this is just a scratch on the surface (no pun intended). There’s also Alice, Kodu, Small Basic… the online awesomeness of the web has compiled a list of educational programming languages on Wikipedia. Whatever the language or paradigm, this list offers options for various approaches for teaching programming to kids.
There are so many tools out there to teach kids about programming. Keep in mind that many of these products are FREE – so the costs associated with teaching these kids are tied more towards hardware and time spent teaching. If you’re a programmer and want to share your passion with children, hopefully this blog post will inspire you to pick a language to share with the children around you. As for me, I look forward to finding the right language to teach my little boy about programming when he’s a little older, but it’ll most likely be well before 8 years old.