What is the best way for a 14 year old boy, obsessed with video games, to learn to program? Here’s a letter I recently received on this topic, and my answer. I’d be interested to see answers from other Geekdad readers and contributors in the comments section.
– Jim Bumgardner
I’m the father of a fourteen year-old boy. He’s bright (I realize you have every reason to doubt my objectivity) and (like many kids his age) obsessed with computer games. He’s better at computer stuff than i am (we’re a Mac family) and he thinks he might be interested in programming. At this point all that translates to is creating ‘mods’ for some of the games he plays. He goes to a pretty crappy school. I’m not at all impressed with the quality of instruction he receives, especially in science and math. so he is not challenged, nor is his interest in how he could apply his learning piqued. His grades are okay because they must be in order for him to get on the computer. He is a big reader, mostly fantasy and magazines.
What i’d like from you is guidance on how I could help further his interest in programming. I keep thinking it would be good if he could do something. Books I’ve looked at seem kind of daunting. Someone suggested MSWLogo & Phrogram but we don’t have a Windows machine.
I got into computers via a route that involved something I was passionate about: Electronic music. If your son is passionate about games, then perhaps game programming is a route he can take. As you know, it’s best to try to exploit those things he is already into.
It’s a lot harder for game programmers to learn their craft today than it was when I started programming in 1982. While there are far more resources available, game programming has become considerably more complex, and the programming languages and systems used in professional game programming are not particularly good choices for the first time programmer.
There are some excellent programming systems for first-time programmers, including StarLogo, Processing, Max-MSP, and Flash. However, I am hesitant to recommend pushing them on your kid, unless your kid already has a clear goal in mind (e.g. a specific project or problem, which one of those languages can be applied to. My own experience is that teens tend to be resistant to the things their parents suggest, unless they are already trying to solve a problem, and need help.
The Teen Second Life system (the teen-appropriate version of Second Life) has a pretty rich scripting environment that your boy might take to – this involves more elaborate programming than most game mod systems. If he hangs out a bit on Second Life, he will notice other avatars that are using complexly scripted objects (and avatars) and he may wish to create some of his own.
Another promising virtual community with an even richer programming environment is Whirled, from Three Rings, which I saw at the recent ETech (emerging technologies) conference in San Diego. Whirled is currently in a closed alpha test, but you might want to sign up as a beta tester. Your son might enjoy the perk of getting early access to this very powerful programming system, and the relatively small community of early adopters that Whirled will start with is likely to make for a better social environment, although I don’t know if they are offering a teen-appropriate version yet.
In general, I have found making "classic" arcade games in Flash (such as Pong and Frogger) to be an excellent introduction to programming for teens and young adults. I teach a Flash game programming class for local high school kids at Art Center in Pasadena. And I’ve posted source code to some of the games I developed for this class in my Flash Bestiary. I imagine these kinds of classes are hard to find in most areas, however, it’s certainly worth making sure.
[And a note to you talented game programmers out there: how about offering a class like this in YOUR area?]
In the absence of physical classes, look for online communities that cover this subject. There are a few online communities that have a lot of neophyte programmers who are teaching each other to program games. One such community is FlashKit, which has a forum for game programmers, and lots of programming newbies asking good questions.