This year, the Hogsfather brought Molly her first computer: a little Arduino disguised as a desk clock. Molly has been interested in learning to code for some time, but I’ve been struggling with how to introduce her to something that can be super complex. Both of us wanted to jump right in and build a SpriteKit based game for our new Apple TV. Wouldn’t that be the coolest?
Rationally, we both knew a tvOS game would be much too complex for her first exploration of real programming. Leaving aside my personal feelings about Swift, I can’t teach her a language I don’t know. Who wants to explain provisioning profiles and entitlements to a ten year old? We still want to build a tvOS game, but we’ll wait until she’s got some programming projects under her belt.
What I wanted for Molly was the experience I had as a kid when I was sucked in by the immediacy of the Commodore VIC-20. I could type just a few lines of BASIC and make something cool happen. Was it a game? No, not really. Maybe just a few letters moving around the 22 by 23 character screen, but it was something I had made happen. This was an experience I wanted to share with Molly.
We could probably replicate my childhood experience using libraries and any number of languages. There are so many to choose from these days: Ruby, Python, Smalltalk, or even LISP1. Heck, I could probably even find a BASIC interpreter to teach her with. But I don’t know how much the abstract idea of making pixels light up on a screen appeals to Molly. I do know she loves to make things. She’s always stealing the Scotch tape and disappearing into her room to make a “creation”. I could totally see her creating a wizard’s staff by wiring up some blinking LEDs to a Adafruit Feather.
Molly has all the tools she needs to get started. The Hogsfather also brought her a lovely soldering iron, wire snips, and some solder. TextMate has an Arduino bundle; so there’s no need to use the funky Arduino IDE. Now she has a tiny little computer with a 20 x 7 pixel screen. That may not seem like much, but it’s the constraints of an environment that make it interesting.
She’s been thinking of animations for when the alarm goes off. “When can we get started?” she asked me.
Yes, I really would teach my daughter LISP. I learned LISP as my third language the summer between 7th and 8th grade. So it would be a bit early for her, but I’m certain she could grok it. ↩