1. Teaching Ruby to Kids
Or, how to do your part for world domination.
Sarah Mei
Saturday, February 20, 2010 1
2. Ohai
• sarahmei (twitter, github...)
• Software engineer @ Pivotal Labs
• Teaching is my hobby
• Workshops for adults
• Workshops for kids
Saturday, February 20, 2010 2
3. Why?
Most programming instructors = FAIL.
Programming is becoming part of basic literacy.
Saturday, February 20, 2010 3
4. Why should you teach?
• It’s rewarding to spread your excitement about
programming to someone else.
Saturday, February 20, 2010 4
5. Why should you teach?
• It’s rewarding to spread your excitement about
programming to someone else. (blah, blah, blah...)
• Teaching leads to learning
Saturday, February 20, 2010 5
6. Teaching: not rocket science
• You already have all the tools you need
• You already use all the techniques you need
Saturday, February 20, 2010 6
7. Agile teaching
Look familiar?
• Set goals
• Form a plan, but expect to adapt
• Keep iterations short
• Listen to the customer
• Deploy continuously and listen to feedback
Saturday, February 20, 2010 7
8. Set goals
Specific, immediate, measurable, achievable
Saturday, February 20, 2010 8
9. I want Aiden to grow
up to be a developer.
Saturday, February 20, 2010 9
10. I want Emma to get
interested in
programming.
Saturday, February 20, 2010 10
11. I want Lily to be so
excited that she
explores things on her
own after we’re done.
Saturday, February 20, 2010 11
12. I want Jack to enjoy
programming so much
that he looks forward
to the next time.
Saturday, February 20, 2010 12
13. I want Ada to be my
little clone being so I
can subcontract work
out to her when she
turns 10.
Saturday, February 20, 2010 13
14. I want the kids to leave
excited about what they
can build, with enough
tools to keep exploring.
Saturday, February 20, 2010 14
15. Form a plan
(but expect to adapt)
• Also known as, “what do I start with?”
• Keep your goals in mind.
• Tools:
• Shoes
• Hackety Hack
• Small Ruby
Saturday, February 20, 2010 15
16. Notice a theme?
• Kids love anything visual
• They also love anything interactive
• irb: compelling for adults.
• (Maybe.)
Saturday, February 20, 2010 16
17. Your plan
• Install all the tools you might use on all the
computers the kids have access to.
• Start small
• Use teh intarwebz
Saturday, February 20, 2010 17
18. Keep iterations short
• Your “lesson plan” should be a series of
very small steps
• 15 minutes or less
• Visual change
Saturday, February 20, 2010 18
19. Listen to the customer
• Follow tangents!
• Don’t stick to a plan because it’s the plan
• Don’t worry about “finishing”
• Look for teachable moments
• Look for signs they’ve turned off
Saturday, February 20, 2010 19
20. Deploy continuously
• Teaching is a learned skill.
• Take all the opportunities you can to teach.
• talks at your local meetup
• pair programming
• summer camps, etc., need volunteers
• National Lab Day
• In SF, I always need teachers for introductory
workshops
Saturday, February 20, 2010 20
21. Expect some things you
try to fall flat.
Keep at it.
Saturday, February 20, 2010 21
22. To sum up
• You should teach.
• You can teach.
• Agile is for more than just development.
• Practice.
Saturday, February 20, 2010 22