Geez time flies. It's just a tad under 4 years ago that I wrote about teaching kids to code with code.org which is an amazing resource for young ones to start learning programming basics. In that post I shared a photo of my then 6-year-old son Ari holding a Lenovo Yoga 900 I gifted him as part of the Insiders program I'm involved in:
He got a lot of mileage out of that machine and learned a lot about the basics of both code and using a PC. Today seemed like a good time to follow up on that post, starting with a new machine:
This one is a Lenovo Yoga C940 and for full disclosure, it came courtesy of the same program his last one did. The 900 was a great machine but it ultimately succumbed to the sort of treatment you'd expect a 6 / 7 / 8 / 9 / 10-year-old to dish out over a period of 4 years. The new machine times well with him moving into year 5 which, for his school, is the first year that kids need to start bringing a laptop in with them. Curiously, the requirement there is for a Windows-based touch screen machine (I imagine Mac families aren't real happy about that...) which suits the Yoga just fine. Plus, it does the whole bendy flippy "yoga" thing so it can be used in tablet mode too (more on that later):
Flush with good machines myself (I run a ThinkPad P1 as my primary machine and the P50 I wrote about years ago as a backup), when the C940 arrived the other day I thought it was time to do an updated post. I also want to use this post as an opportunity to plug a couple of upcoming free events Ari and I will be running for kids:
They both run at the end of the day during the respective NDC conferences and they're a great way to expose kids to code. I wrote about this briefly when we announced the events in November, let's now move on to a few of the Code Combat basics.
Firstly, get into it for free at codecombat.com. Being browser based there's no install, no setups, no elevated privileges required etc etc. Just point and go.
Code Combat takes you through a progression of levels that gradually introduce new concepts akin to the ones we use in everyday "adult" programming. For example, take a look at the following screen:
You'll see the language is set to Python and the code window represents a whole bunch of common programmatic constructs including:
- Data types
You can run the code as is (this is populated by default at the beginning of each level), but the objective of this particular exercise won't be met so the code will fail. You can then debug the code, modify it and re-run, just like we'd do when writing software as a profession. It's somewhat gamified with heroes fighting enemies and animations that make the whole thing a lot more engaging so at least in our experience, it's something he's quite happy sitting down plugging away at for decent amounts of time without it becoming tedious.
As with most games, as you progress through the levels new concepts are introduced and the complexity increases. For example, some of the aforementioned programmatic constructs are introduced in the "Defense of Plainswood" level:
Keep going further through the levels and more concepts are introduced, including some you'll be pretty familiar with yourself if code is your day job:
So that's Code Combat in a nutshell and I'd highly recommend getting your kids involved with it. If they're a bit younger like Ari was in that first blog post then get them on over to code.org but either way, give them the opportunity to code. I never push either of my kids in this direction (my 7-year-old daughter regularly uses code.org), but I've found just a little bit of exposure has been enough to have them coming back and continually asking to do more. Clearly, they enjoy it (this vid is a good example of where the touch screen and convertibility of the Lenovo Yoga is really handy too):
That's it on the kids coding front for now, if you're in Oslo this week or London next week then do please get along to one of the NDC events, we'd love to see a great turnout of parents and their kids. Who knows, it might just be the spark they need to set them on a passionate (and maybe even professional) coding journey.