Hacker News new | ask | show | jobs
by mosburger 3809 days ago
Anything to get kids interested in programming is a good thing, right? My son already tells people he can "program in JSON" because of Minecraft's little command-block DSL that's comprised of instructions structured as JSON. It's really adorable and has piqued his interest in broader programming, and "stunts" like Minecraft BASIC interpreters can only help.
2 comments

My 11 year old son has been programming in Scratch for a few years, and kind of hit a dead end. So we recently bought him Sams Teach Yourself Mod Development for Minecraft in 24 Hours. It goes straight into some pretty heavy Java, but with a lot of hand-holding. He's really loving it so far, and seems to be learning a lot and making good progress.
There's this Greenfoot (http://www.greenfoot.org/) environment I've been hearing about. It has a visual interface that allows you to put sprites and assemble a game, but it also has Java foundations. It might be another option for that transition between a visual tool and a programming language.
Have you tried Code Combat? [1] Or, Vim Adventures? [2] Of course, you might skip the vim because real programmers use emacs.

[1] https://codecombat.com

[2] http://vim-adventures.com/

We all know real programmers use butterflies. I've been letting my son focus on the code rather than the editor, so he's using Eclipse per the aforementioned book's recommendation.
I got my start from Starcraft Broodwars map editor. It was comprised of if then conditions and actions. Very simple system and i'll bet there are a good amount of people that were inspired by a system like it.
Totally, the Starcraft editor got a lot of things right:

- It looked like text but you were actually working with a statically typed AST -> Syntax errors were impossible. - Commands were sentences with the parameters where you would except them, e.g. "PLAYER brings AMOUNT UNIT to region REGION.". Also, the commands were translated so you didn't need to learn English to learn programming. - Since you were programming on top of an existing game you had very high level commands at your disposal which allowed you to get impressive results with little effort.