> After reading Brian's book, I was able to construct well-designed Ruby
> scripts, refactor all of my earlier Watir scripts, and can now understand
> more lengthy and complex pieces of Ruby code.  I also really like how Brian
> didn't start with the typical "hello world" example and instead jumped right
> into scripts that can solve real-world problems.  A "test the water with
> both feet" kind of approach. =)

I've been skimming the first hundred pages or so, especially the first
50.   What I like is that even though the problems are not terribly
complex,  they are complex enough that a naive programmer would make
all sorts of mistakes in the course of solving them.  The book helps
you avoid making those mistakes.

What I find, reading closely, is that as you type along with the
exercises and read the descriptions (which are good stories, logical
and nicely laid out) you are actually learning good programming
practices, without actually noticing.  It just seems like the natural
thing to do.  Every other page or so I find myself saying "that was
cool, I'll have to remember how he did that".   Someone with fewer
historical mistakes under their belt than me would simply learn good
practices instead of having to remember not use bad ones.

A long time ago I used to teach guitar lessons.  I always liked
teaching kids 8 or 9 years old, because they had no concept of what
was hard or not.  Teenagers and adults who had been exposed to records
and videos would think "playing barre chords is hard" and "playing
above the 4th fret is hard".  The kids didn't have those prejudices:
to an 8-year-old, that stuff is just how one goes about playing the
guitar.  It's all *equally* hard.

Likewise, a beginner who did all of the exercises in this book and
understood all of the explanations would find themselves at the end to
be quite a good Ruby programmer.  They wouldn't have known that blocks
are hard, methods are hard, test/unit is hard, classes are hard, etc.
etc.   That's just the way you (should) program Ruby.
Wtr-general mailing list

Reply via email to