Teaching kids to code
I've noticed a lot of talk about "learning to code" over the last couple of years — both from the likes of Codecademy promoting services, and from people I know who are interested in the idea of "learning to code."
Now, there is a whole topic around what "learning to code" means, who should really be doing it and at what level, but as someone who has taught themselves languages like PHP, Javascript, Ruby, Objective C, VBA and a few others, my main interest is how to get my kids interested at an early age. I don't know if its something that they will be interested in, but I do want to make sure that if they are, then I'm making it as easy for them as possible.
I didn't think that it was something that would be happening any time soon — my eldest is about to turn 5, and his maths knowledge is still at the "adding and taking away" stage. But I was surprised to discover that apparently as a part of the National Curriculum, next year he will be learning about "code" at school. Which means, I suppose, my "job" isn't so much about giving him a head start as giving him support.
Which means that a couple of apps that I recently discovered should be worth sharing with anyone with kids of a similar age.
The first one is Daisy the Dinosaur. Its very simple, and basically consists of writing instructions to get a cartoony dinosaur to perform certain tasks. For example, to get her to reach a star, you give the instructions to move forwards and then jump. Its a simple drag-and-drop interface to move "commands" into the "program", and (I think) quickly gets across the idea of chaining commands and loops.
Its very basic, but enough to give you an idea of whether this is going to be interesting or not. Once you've cleared the (low) bar that it offers, had a play around with the "free" mode and got to the point where you want to do something beyond the ability of poor Daisy, then take a look at Hopscotch from the same developers. This is pretty similar at first glance, but also lets you create your own "rules" from a set of different commands. Its got another level of complexity, and its probably worth spending a bit of time with it yourself before introducing it to your kid (and playing along with them.) On one hand, this seems like it could be a bit intimidating, but on the other, the language it uses is "Turing complete" — which means that the possibilities of what can be done with it are limited by what can be done with computers in general, rather than specific limitations of the application. So if you consider that, its actually a very impressive application.
(And if you're in the position now where you might find your 5 year old teaching you things you didn't know about coding, maybe you should just quietly download them for yourself.)