Where to start with teaching a bright 13 year-old programming?
February 23, 2012 11:18 PM   Subscribe

Where to start with teaching a bright 13 year-old programming? His interest comes from wanting to code Minecraft mods.

I am a programmer by trade but I have a couple of years' teaching experience in a different field. The student in question is obviously very bright and motivated to learn.

I am a self-taught programmer, mostly, having started with HTML / JS and moved on through Perl, PHP and Objective-C. I have a working knowledge of Ruby and some exposure to Python.

As I understand it Minecraft mods are Java (another language I have some exposure to), but my first inclination is to teach him general principles before moving on to specific uses like that.

Any pointers to relevant curricula are welcome, as are general recommendations about which language to teach. I'm thinking he should start in a nice language like Ruby or Python to learn the principles of OO and control structures before moving on to a specific SDK.
posted by grubby to Education (19 answers total) 31 users marked this as a favorite
Best answer: Python is great! Learn Python the Hard Way is probably the best way for someone new to code to learn it. If you want to learn Python alongside him, the tutorial in the python documentation is good and quick for people with programming experience. If either of you have any specific questions, the #python channel on Freenode irc is really helpful.

You might also want to consider javascript, which is starting to feel like the hot new language even though it's been around for quite some time. Eloquent Javascript is excellent, though I admit I haven't read the whole thing through.
posted by wayland at 11:30 PM on February 23, 2012 [4 favorites]

My high school computer science teacher used RUR-PLE to start teaching us us about programming and Python. We didn't use it for very long (making Reeborg turn got old after a while), but it was a really nice introduction. Plus, Reeborg is kind of cute.
posted by topoisomerase at 11:40 PM on February 23, 2012

Response by poster: topoisomerase - is the rurple environment something I can download? Does it work on Mac OS?
posted by grubby at 11:46 PM on February 23, 2012

I am out of my element here, but saw on Slate Mag in Jan about Code Year ...
I did sign up but have been so busy at work I have just saved the lessons (7 so far?, one per week).

posted by bebrave! at 12:06 AM on February 24, 2012

oops, didn't send the link, like I said i'm out of my element but codeyear.com
posted by bebrave! at 12:07 AM on February 24, 2012

Best answer: There's a plugin for Minecraft that allows mods to be written in Ruby, called Purugin (Documentation)

Try Ruby isn't very deep but is a nice introduction to the idea of programming. Maybe Rails for Zombies too, but that might be a digression into web-specific concepts
posted by BinaryApe at 12:10 AM on February 24, 2012 [1 favorite]

I am out of my depth here, but there is a video game called Code Hero that teaches you to code as its gameplay, allowing the player to learn and utilize Javascript to progress through the game. It bills itself as a "first-person science shooter where you use the code gun to manipulate code." I don't know how a 13-year-old boy could go wrong with that.

And with a quick search, I see it was featured on the blue last year.
posted by therewolf at 1:10 AM on February 24, 2012 [1 favorite]

grubby, RUR-PLE is something you can download. I Googled it and it looks like it works on Macs.

Here are some directions I found on installing everything you need to run it.
posted by topoisomerase at 2:06 AM on February 24, 2012

Aren't most minecraft mods written in Java?
posted by caddis at 4:02 AM on February 24, 2012

Response by poster: caddis: they are, but I don't think java is a particularly good learner language for young beginners. Which is why I was excited to learn what BinaryApe shared about writing mods in Ruby.
posted by grubby at 4:14 AM on February 24, 2012

Off the top of my head Code Year and Codecademy. I've not used them myself but a few friends seem to like them.

For something more visual Vormpus' Processing month is good and covers more of the graphics side of things.
posted by Z303 at 4:18 AM on February 24, 2012 [1 favorite]

For curricula, Ian Ibbotson ( @ianibbo on twitter) helps run Geek cadets in Sheffield so he may be a person to ask (I'm happy to introduce you if you want), they use 'Invent Your Own Computer Games with Python'
posted by Z303 at 4:34 AM on February 24, 2012 [1 favorite]

Response by poster: Z303 - yes please (introduction) - his site looks interesting and I once lived in Sheffield.
posted by grubby at 5:47 AM on February 24, 2012

inventing games with python
posted by mecran01 at 6:10 AM on February 24, 2012

The new version of computercraft has a programmable robot in Minecraft

I would start there.
posted by empath at 6:16 AM on February 24, 2012

And if you want to learn fundamental computer science theory, ie binary, logic, etc, simply creating redstone circuits in plain vanilla minecraft is a really good start.
posted by empath at 6:18 AM on February 24, 2012

I think it's best to work where the interest is, ie Minecraft mods, so in Java. It's.not a bad first language. Certainly it"s used as such by many colleges. It's a little hard, so you'd need to help get him started, ie write the framework for him. Messing about with an existing bare bones implementation of something is an easy way to learn from the inside, and very addictive.
posted by w0mbat at 7:25 AM on February 24, 2012 [2 favorites]

Don't start with general principles. Start where the interest is. Introduce principles as they become useful and/or necessary.
posted by vasi at 9:26 AM on February 24, 2012

I agree with w0mbat and vasi -- insisting that students start with general principles and/or languages which aren't used to do what they want often kills interest in programming. If he wants to write Minecraft mods, I think you should teach him to write Minecraft mods (and encourage him to do it the way everyone in the community does it, which means Java rather than Ruby).
posted by vorfeed at 10:45 AM on February 24, 2012

« Older What kind of fish would you tell a fish newbie to...   |   Forgotten remembrances Newer »
This thread is closed to new comments.