How did you learn Ruby on Rails?

Frederick C. wrote:

The danger of not fully grasping a language like ruby that has quite a
lot of subtleties is that (especially with a framework like rails that
tends to use them) is that you could get yourself horribly confused when
things go wrong and just end up stabbing around in the dark. (and in
general when debugging and so on it’s really important to understand
exactly what’s going on)

What? You mean ‘this \n string’ and “this \n string” aren’t the same?!?
:wink:

Do you know the other80% thoroughly enough to be confident about
that? :slight_smile:

I guess I don’t know what I don’t know so its hard to say. :slight_smile: My
point is only that while I constantly find myself learning more about
Ruby each day, I am still very productive in Rails. IMO if you tried
to pick up one of those massive Ruby language books (The Ruby Way in
particular but also Pickaxe) then you could find yourself a little bit
overwhelmed.

BTW I agree with you that R4R isn’t a Rails manual. I might word it
differently than you did :slight_smile: But it definitely isn’t supposed to be,
and never was meant to be, anyone’s one and only Rails guide. People
have gotten lots of different mileage out of it but on the whole I get
the impression that its sweet spot for a lot of people is as a second
book. Or maybe a 1.5th book :slight_smile:

I didn’t suggest that it was supposed to be a complete guide to
Rails. That’s exactly why I’m recommending people buy your book to
learn just the right amount of Ruby and then AWDWR to learn Rails in
detail. I’m actually a fan of the book so hopefully that came across
in my earlier post.

David

Sean

The pickaxe is pretty easy going I thought. You only need to read the
first chunk down, no-one is going to plough through the standard
library reference cover to cover.

Pickaxe is fine but IMO its better as a reference (although in
fairness I learned quite a bit of Ruby before I picked it up.)

The danger of not fully grasping a
language like ruby that has quite a lot of subtleties is that
(especially with a framework like rails that tends to use them) is
that you could get yourself horribly confused when things go wrong and
just end up stabbing around in the dark. (and in general when
debugging and so on it’s really important to understand exactly what’s
going on)

Please don’t take the 20% number too literally. My point was only
that you do not need to know the language cold before doing productive
things in Rails. I probably knew more then 20% of Ruby and I also had
a very solid foundation in MVC before I jumped into Rails.

Of course a solid understanding of Ruby is necessary to ultimately be
successful in Rails. Different people have different learning
styles. I enjoyed learning Ruby by doing a lot of examination of the
Rails source code itself as well as some of the more interesting
plugins. Every time I found that I didn’t understand something then I
would go to Pickaxe or whatever and read up on it.

Fred

Sean

Dave R. wrote:

Someone who can’t even teach themselves something as simple, well
documented, and well commented as PHP […]

I think he meant hire PHP programmers and train them up in RoR.

We also require, however, certain minimum standards in the area of
reading comprehension…


Phlip

Hi –

On Tue, 13 May 2008, schof wrote:

BTW I agree with you that R4R isn’t a Rails manual. I might word it
differently than you did :slight_smile: But it definitely isn’t supposed to be,
and never was meant to be, anyone’s one and only Rails guide. People
have gotten lots of different mileage out of it but on the whole I get
the impression that its sweet spot for a lot of people is as a second
book. Or maybe a 1.5th book :slight_smile:

I didn’t suggest that it was supposed to be a complete guide to
Rails.

I understood; that’s what I meant when I said I agree with you :slight_smile: My
“it isn’t supposed to be” was just amplifying that point.

That’s exactly why I’m recommending people buy your book to
learn just the right amount of Ruby and then AWDWR to learn Rails in
detail. I’m actually a fan of the book so hopefully that came across
in my earlier post.

It did, and I appreciate it.

David


Rails training from David A. Black and Ruby Power and Light:
INTRO TO RAILS June 9-12 Berlin
ADVANCING WITH RAILS June 16-19 Berlin
INTRO TO RAILS June 24-27 London (Skills Matter)
See http://www.rubypal.com for details and updates!

After reading a few of these comments, I’m reminded of my journey,
and I think there’s two very different things to distinguish:
learning how to program, and learning Ruby/Rails as an additional set
of tools to use.

The orginal poster wasn’t specific about whether the “learner” was
new to programming.

My first programming was AppleSoft in 1981. I immediately jumped into
Assembly Language after that, and the first thing I remember about
that being difficult was all the new players: CPU codes, assembler
codes, compiler, editor macros, ROM routines. AppleSoft, with the
exceptions of a few DOS commands was pretty much a self contained
environment. The hard part wasn’t the assebly language itself, it was
in reading examples and figuring out which player was responsible for
which lines of code. Of course back then, I was buying the equivalent
of $50 books just because 20 pages were different than the rest of my
books. The internet is awesome!!

Anyway… HTML is like AppleSoft in being self contained. One can
learn that and get a lot done with nothing else (not even CSS).

If one has done HTML and maybe some rudimentary CSS, the leap to
Rails (or any web framework) is enormous. Inherently in a
“professional” environment like that you’re thrust into the added
layers of advanced CSS, Javascript, Ruby, Rails, using Terminal
commands to even get the parts installed, and it isn’t long before
you have to know a little Apache etc.

To me that is what gets overwhelming.

I’ve been doing OO, framework-driven, high-security intranet apps
with Lasso for many years now, but switching to Rails was even a bit
overwhelming given all the new players: Ruby, Rails, Gems, Rake,
mongrel, monit to keep mongrel/Rails in line, etc.

To even get a teeny bit of Rails working reliably and securely takes
a large effort in support structure. Compared to Lasso’s turn-key
environemnt, it can kind of nuke all the claimed productivity gains
for a long time until all these peripheral pieces are absorbed as well.

How did I learn Rails? I had to study Ruby first. Rails’
interpretation of “beautiful” code made no sense to me at all until I
understood Ruby. Then I could understand why certain Rail’s
aesthetics were chosen.

I used the two Pragmatic books to start with (I absorb books like
air, so the more the better). And I now have Ruby Way, Rails Way, and
some others as references too. I do read them cove to cover so I know
what’s in there, and then I crack 'em open several times a day to
when I find myself in new territory.

Without a doubt blogs are a huge help because sometimes you just
don’t know how to ask the question, so googling helps find jargon,
which helps form better questions, which ultimately helps me even use
the books better. No doubt that a combination of book, blog, and talk
lists are essential to getting up to speed quickly.

I only used the pickaxe demo up to a certain point. As soon as I
could figure out how to put together some pages, then I explored with
all kinds of variation of that and wrote an indepth discovery of
assembling views, templates, partials, and layouts http://
www.railsdev.ws/blog/3/modular-page-assembly-in-rails/

After that I explored ActiveRecord and in particular, validations.
Didn’t like the defaults, so wrote an extensive custom validations
library WEBSITE.WS - Your Internet Address For Life™

I tend to explore in layers. Of course one has to do some cross-
cutting tracers to get anything done, but once I get functional, I
tend to build up depth by layers. Explore views to the nth, then
explore validations to the nth, then Ajax to the nth, then error
handling, etc, etc. This way I dont write too much crappy code, just
incomplete code which I find much easier and faster to add to/
refactor as I build a real application.

Oops. sorry, kind of long winded…

– gw