Earlier this week, my twelve year old daughter approached me and asked to learn "All that computer stuff that you do." We had chatted previously about my job, but I had taken particular care to not pressure her into learning computers. Such a decision is best left to natural curiousity.
Hanna and I talked about several languages. She had wanted to learn C#, as that is what I spend most of my time with. Instead, I suggested Ruby. I've always wanted to learn the language, and an interpreted environment would make the edit-compile-debug loop a little bit easier.
Ruby has yet to disappoint me as a teaching language. While I haven't found any Ruby books suitable for teaching a pre-teen Ruby programming skills, I have been able to develop simple lesson plans to teach basic concepts. Along the way, I'm also learning the language, which is a big plus for me.
In two days, she has learned console input and output, variables, string comparison, arrays, simple iterators, if / else constructs, and more. It's really been a blast. I'd definitely recommend Ruby as a teaching language.
Next topic: Objects. Wish us luck!