views:

200

answers:

7

Hey Guys,

My 12 year old brother has recently expressed an interest in learning to program. I of course think this is a great idea, why not start him early? I'm wondering what you guys think with regards a book? I was thinking I should start him off on Java but I'm unsure what book would be best? Any suggestions with regards a book or even another language would be much appreciated.

UPDATE: I've went with Python and I'm starting him off with "Snake wrangling for kids".

+6  A: 

Head First Java is a great book for any new Java programmer. It has lots of pictures, fun quips and puzzles to solve. Definitely worth the buy.

Sergio Tapia
+1 for the Head First recommendation :)
StudiousJoseph
+11  A: 

Lego Mindstorms? http://mindstorms.lego.com Not a book but might be a more fun introduction to programming for a 12 year old.

JoshP
+1: Yes yes yes, this is how I learned (although with the old yellow RCX). With NXT you can also program it in Java, python and other programming languages.
Callum Rogers
A: 

I too can recommend the Head First series.

You could try "Head First Programming". It uses some python though.

Thomas Ahle
+4  A: 

I found Python to be really easy to learn at first. This is a great, fun book for it. Just make sure he has fun!

Mike
Yeah, the idea I want to get across is that programming is fun. It may be tedious or even boring at first but once you realise the things you can do it becomes amazing.
Aidanc
I'd encourage him to use Python to solve Project Euler problems. I thoroughly enjoy crafting clever scripts for that. :)
Mike
+1 Python. Don't let a compiler ruin the fun :)
tarn
+3  A: 

I'm way past 12 and didn't write my first Fortran program until I was 17, so I may not be an authority.

But I suspect Python is a better start than Java, and this book looks appropriate.

Don Roby
+1  A: 

If your brother plays any PC games, you might check to see if any of them are moddable. Many games these days come with scripted campaign editors or have python scripts underlying them that you can modify. They are a great way to get involved with the basic concepts behind programming, as your brother can get pretty immediate feedback in an environment that's already very interesting to him.

It may not be 'programming' per se, but it's an exercise in instructing the computer to do what you want, which requires a clear intention and some work and investigation to actually achieve what you've intended. If he develops that mindset, then more general programming in a more complex environment follows naturally.

Dan Bryant
+1  A: 

I would go (as you did) with Python. Java seems to be overengineered (as Steve Yegge described) -- especially for 12 year old kid.

Hello World: Computer Programmer for Kids and Other Beginners seems to be good choice -- it was even written by some kid about 12 year old and his father.

On Hello World: Computer Programmer for Kids and Other Beginners is even written that this is perfect book for 12 year old :).

Both authors where interviewed by Scott Hanselman -- worth to listen.

Grzegorz Gierlik