Q: My son wants to make computer games for iPhones and Android phones. He’s only 15, so college is still a few years off. Should he wait until college to get started? What could he do to start learning now?
A: If he’s interested now, there's no need to wait. Kids are learning how to “code” or write computer programs or mobile phone apps as young as five and six, but really twelve is about the perfect age to start coding. He should probably start with basic web programming, for a good foundation, but he doesn’t have to. There are tons of free resources online that will teach him how to code.
Khan Academy teaches the basic concepts of computer programming, but you won't find much material that actually teaches actual coding. Code Racer is a free, fun, interactive game where you race against others to figure out the right code to build a website. It only teaches HTML and CSS, the absolute fundamentals, but its a lot of fun to play. Code Racer's parent site, Treehouse, also has great training videos and exercises to learn all of the same languages as Codecademy above plus iOS and Android. However, the courses on Treehouse are not free.
Once he knows the basics, he should check out Stanford University's Udacity, MIT OpenCourseWare, and the multi-university partnered Coursera. All of the universities provide many, if not all of their computer science courses online for free, but you'll still have to fork out the big bucks if you want him to have a shiny piece of paper to go along with that education. Stanford has some of the best iOS app development classes. In fact, if he has an iPad or iPhone, he can enroll in the Stanford classes for free in iTunes U app. For iOS and Android development, some of the best resources are available for free, right from Apple and Google. If he has a Mac, he can download Xcode 4 from Apple. Android is unsurprisingly more open. He can download the Android SDK, Android Software Development Kit, for Mac, Windows or Linux. Once he has those programs, he can start playing with sample code and tutorials, and even see what his app would look like on an iPhone, iPad or Android device.
Don't be surprised if he suddenly loses interest, though. Coding can be overwhelming at first. Encourage him to try it out, and to commit to learning for a month. After he's done it for a solid month, he'll know if it's something he really enjoys. That's why I recommend starting out with CodeYear. Tell him to let us know the first time he says, "Hello World!"