On Mon, Mar 12, 2007 at 10:35:08AM +0900, Robert Hicks wrote:
> I would like to learn Ruby so I am looking at getting "Programming
> Ruby". I am also looking at converting stuff to RoR, so I was looking
> at getting "Agile Web Development with Rails".
> 
> Would those be good?

The short answer:  "It depends."

Programming Ruby, also known as "the Pickaxe" because of the pickaxe on
the front cover, is an excellent book for people who are already
programmers in (an)other language(s).  It's also a very nice reference
to have on your shelf.  If you're a brand new, or relatively novice,
programmer, you might want to choose something that does a little more
hand-holding in the early stages of learning Ruby (and learning to
program in general).  Programming Ruby basically assumes you know most
of the concepts of programming that come up in the first few chapters,
but don't know how they apply in Ruby.

So -- if you're a programmer already, Programming Ruby's an excellent
choice.  If you've never programmed before, or have only barely touched
program source code (such as doing some very simple imperative stuff
with PHP or JavaScript), you'd probably be better served by choosing a
book like Chris Pine's "Learning to Program".

There's now an effective middle road, in the form of another book called
"Everyday Scripting with Ruby".  You might want to have a look at that
while you're deciding as well.  There are other books available, but
these are the three with which I'm familiar that I know are at least
reasonably good.  In fact, from what I've seen, all three are truly
excellent -- they just target different audiences.  They are also,
conveniently, all published under the Pragmatic Programmers imprimatur.

"Agile Web Development with Rails" is also an excellent book, but not
for learning Ruby, per se.  It's an excellent book for learning Rails
itself, the framework.  You really don't need to know much Ruby to do
basic Rails development -- though if you start using Rails heavily you
will *definitely* benefit from learning Ruby itself pretty heavily.  If
you're already a PHP web developer, you should be able to get started
with Rails pretty quickly with the Rails book by starting with the
appendix that gives a brief overview of the Ruby language.  That'll help
you translate programming concepts from a language like PHP to Ruby,
insofar as is needed to do basic work with Rails.  Surprise: Agile Web
Development with Rails is also a Pragmatic Programmers book, and of a
high quality similar to the others I've mentioned.

While I'm talking about the PragProgs, I should mention where the
Pragmatic Programmers name arose: Some time ago, Dave Thomas and Andrew
Hunt wrote a book called The Pragmatic Programmer.  It doesn't teach any
particular programming language, and in fact doesn't teach you to
program, really.  It does, however, provide excellent details on how to
be a *good programmer*, once you already know how to program,
*regardless of the language*.  I recommend it wholeheartedly, as one of
the seminal works of programming practice.

Back on topic: If you're serious about Rails, and want to start with
Rails then move into Ruby, I suspect that the second book you should
pick up after Agile Web Development is a book called "Ruby for Rails".
I haven't had a chance to go through it at all, but by reputation it is
an excellent book as well, and teaches Ruby programming from a Rails
perspective, going beyond merely teaching the framework and the minimum
of Ruby knowledge necessary to use Rails.

I hear good things about "The Ruby Way", as well.  I salivate for this
book, and will probably get it next month.  It's probably a good second
or third Ruby book (depending on how much programming you know when you
start with Ruby and how quickly you learn the language).

Neither Ruby for Rails nor The Ruby Way is a Pragmatic Programmers book,
but don't let that deter you.  I've heard nothing but glowing
recommendations in relation to these two books.  I can't personally
vouch for them, but I certainly have heard enough to be reasonably sure
I wouldn't waste my money to purchase them.

I hope that helps.

-- 
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
"The ability to quote is a serviceable
substitute for wit." - W. Somerset Maugham