
Ruby4Kids - DanielRibeiro
http://blog.ruby4kids.com/
======
hammerdr
Very, very cool.

I love that the kids are having fun with this. Sometimes, in the argument of
whether NoSQL is better than RDBMS or if Backbone.js is too little for too
much, it seems like we collectively forget the joy that it is to program :)

------
jacquesm
If there is one thing that I would attribute the popularity of Ruby and ROR to
then it is that Ruby has been made exceptionally accessible to younger people
learning how to program. Other language proponents should take a leaf out of
this book (and that of the tobacco industry as well as a lot of organized
religions): 'get them while they're young'.

Congratulations on a really neat project, if there is one thing I love doing
it's teaching kids about computers and programming, and this inspired me to go
and do some more of that.

~~~
Luyt
Even more exciting than these kids learning Ruby is that they're learning
_programming_. After they have a grasp of the concepts of how to program a
computer, they can expand to other languages (or stay with Ruby ;-)

I think programmatically controlling hardware (like robots and Lego) can be
very attractive to kids, too.

~~~
jacquesm
Absolutely, but contrasted with say 'logo' the power of ruby is that it is not
a 'toy' language, you can build just about anything other than hard real time
systems in it.

That's a pretty powerful tool to master. The only other languages that I can
think of that are that accessible to children are Logo, Basic and SmallTalk
and none of those is as well established as a starting language for kids to
use _and_ as powerful at the same time.

The lego robotics kits are nice and well thought out but there is no stepping
stone between there and say making a website or some other non lego-related
program.

Robots and turtles are cool in that they allow control of real-world objects
from a programming environment.

~~~
steveklabnik
And, as we did with Hackety, you can embed Logo inside of Ruby. You get the
best of both! DSls are awesome.

------
KMStraub
I wish someone had introduced me to code at 10-years-old. I had computer lab,
but we just practiced Mavis Teaches Typing and played Oregon Trail. The
closest I ever got to this was a circuit board, and I can remember how proud I
was at the end--I practically slept with it. I wish I'd built more things as a
kid. You know, figured out how stuff works. I think sometime in high school I
must have decided there'd always be someone else to solve my problems. And
when I got to college, we talked more about the depth and various
dimensions/degrees of problems than about fixing them. Now I'm stilted. I have
bookmarks and bookshelves of HTML, CSS, and Java tutorials and I can't bring
myself to even read the Table of Contents.

~~~
mcantor
It's not easy to overcome that inertia without the passion for programming
itself. I have two suggestions:

1\. Start small

Don't start with Java. Find something simple as hell, like QBASIC[1], or easy
as hell (to begin with) like Ruby or Python. _Play_. I repeat: _Play. Play.
Play._ Play with the language. _Let_ it be fun. Let yourself be childlike
about it. Focus on messing around and seeing what you can do. At some point,
you'll realize that you're six layers of "I wonder if..." deep, and at this
point, I officially declare you to be a Programmer.

2\. Start big

 _Find a problem you want to solve_. Here are some examples:

\- "I can't believe there isn't an iPhone app for tracking what kind of
burgers you eat." \- "I hate how I never know when a Hacker News post
involving Tim Ferriss has been submitted." \- "Wouldn't it be great if I never
had to e-mail myself a file again?"

Footnotes

[1] - Renowned computer scientist Edsger Dijkstra would opine that any
programmer whose first language was in the BASIC family tree is forever warped
in the most vital parts of their brain. I cannot confirm nor deny this, but my
potentially-warped brain has served me quite well.

Many of these types of problems already have answers, like the third one (the
answer is Dropbox). But the practice of researching them and finding existing
answers is just as much a part of programming as is the writing of code.

~~~
KMStraub
I know it's been 10 hours, but can I just say thank you? I left a random
musing as a comment and signed off, and someone took the time and liberty to
personally address it. One of the many reasons why I love this community.

~~~
mcantor
You're welcome; and thank you in turn for being so appreciative! I hope it
helped a little.

Edit: FWIW: I was introduced to code at age 10, but I honestly believe that
there is no "best" age. As kids, we have the inbuilt zen-like child mind that
lets us delve into the vicissitudes of even the most simple toy; a programming
language is even more fascinating. It is the nature of adults to lose instant
accessibility to that mindset, but it is by no means unachievable. Conversely,
discovering code as an adult has its own advantages beyond general experience
and improved cultural context: The adult mind possesses a vast array of
existing systems, analogies and frameworks to aid in the understanding of
higher-level concepts.

I guess what I'm saying is, it's easier for kids to _motivate_ themselves to
learn programming, but it's easier for adults to _learn_ programming. I'm sure
there are fine arguments to the contrary on both points, but there is
undeniably something interesting going on there.

------
codysoyland
This looks like an interesting project, but I don't see how it can teach kids
how to program. I clicked on the lesson 1 screencast and saw that, even before
trying to run a single line of code, it dived into importing 2 modules,
subclassing and defining 3 methods, and running a GUI. It's hard to grock
inheritance if you haven't been introduced to variables and operators. If you
actually want to teach kids programming in a way they'll understand, I
recommend Zed Shaw's book Learning Python the Hard Way
(<http://learnpythonthehardway.org/index>).

~~~
wyclif
LPTHW by Shaw is my pick for raw beginners, because it assumes nothing: not
even how to use an editor and how to run a program. It's very good for the
rote learning of basic programming that a child (or someone who has never done
any programming) would need.

However, I'll find it amusingly ironic if this catches on, even though Zed's
book contains no profanity and is just fine for the kids.

------
blatherard
The screencasts with the kids are great. Aaditya's code walkthrough
([http://ruby4kids.com/ruby4kids/videos/show_and_tell/aaditya_...](http://ruby4kids.com/ruby4kids/videos/show_and_tell/aaditya_bonus.mov))
was especially fun. He mentions many modern programming techniques such as
working around a bug and using copy-paste.

------
freedrull
This is great. I think teaching kids would be a lot of fun. I'm sure this kind
of thing is not very common though, any ideas for similar projects I could get
involved with? Computer summer camps maybe?

------
steveklabnik
This is awesome.

If there's anything that I can do help with this via Hackety, let me know.

------
chrismealy
It's fantastic that the kids have their own accounts on github.

------
locusm
This was very timely - started showing my 7 yr old son on the weekend some
basic Ruby. Hadnt heard of Gosu either so will be checking that out.

------
mhidalgo
What was the age range of the kids?

~~~
mgcross
I didn't see an age or class range listed, but based on the photo/video, I'd
guess middle school/junior high (12-14yrs).

