Monday, July 30, 2007 9:39 PM jerdenn

Teaching Ruby

 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!

Filed under:

Comments

# re: Teaching Ruby

Monday, July 30, 2007 10:02 PM by rex

Would you be willing to post or email those tutorials? Being a C# developer, i'm be keen to learn Ruby but want to start right from the bottom so i dont miss anything ;)

thanks,

x

# re: Teaching Ruby

Monday, July 30, 2007 10:41 PM by michael

I'd love to see them as well!

# re: Teaching Ruby

Monday, July 30, 2007 10:47 PM by Sameera

Cute :)

Why not go with KPL (www.kidsprogramminglanguage.com/parents.php)? Its a VB.NET variant which is for building games and other kids stuff. I'm sure she'll love that

:D

best of luck.

# re: Teaching Ruby

Monday, July 30, 2007 11:06 PM by jerdenn

Why did we pick Ruby?  Well, for me, Ruby is a language that I've wanted to learn for years.  My daughter and I are learning this language together, albeit at different levels.

Our lesson plans tend to center around me writing a very simple example program, with one or two new concepts in each example.  We discuss the new concepts (our latest subject was arrays), and then she writes her own program to exercise her newfound skills.

@rex & michael:  There are several good Ruby books available online, and whatever I post would be a mere shadow, so I probably won't go there.  The most commonly referred to book is the "Pickaxe" book, available here: whytheluckystiff.net/.../pickaxe .

@Sameera: We wanted to learn something together, so we picked Ruby.  However, KPL does look pretty cool - perhaps we will pick that up for language #2.  She's already decided that she's going to be computer-multi-lingual :)

# re: Teaching Ruby

Monday, July 30, 2007 11:12 PM by kr

2 days huh?

I have met "professional" developers that still do not understand those concepts after several years...

# re: Teaching Ruby

Tuesday, July 31, 2007 1:24 AM by Prissilia Kho

Such a cute father daughter relationship! :)

# re: Teaching Ruby

Tuesday, July 31, 2007 9:56 AM by Doug Moore

I would recommend Why's Poignant Guide (http://poignantguide.net/ruby/) would be quite appropriate for a pre-teen audience.  It is light-hearted and explains the language elements in an easy to understand manner.

# re: Teaching Ruby

Wednesday, August 01, 2007 7:42 PM by Hanna

That is awesome! I feel like a STAR!!

# Guess you owe me an apology, kiddo! « Code of Defiance

Wednesday, September 12, 2007 10:36 AM by Guess you owe me an apology, kiddo! « Code of Defiance

Pingback from  Guess you owe me an apology, kiddo! « Code of Defiance

# Guess you owe me an apology, kiddo! « Code of Defiance

Wednesday, September 12, 2007 10:38 AM by Guess you owe me an apology, kiddo! « Code of Defiance

Pingback from  Guess you owe me an apology, kiddo! « Code of Defiance

# re: Teaching Ruby

Thursday, September 13, 2007 5:27 AM by sap

I would like to see that tutorials which is prepared by expert of C#

Leave a Comment

(required) 
(required) 
(optional)
(required)