
A tutorial and reference to the object-oriented programming language for beginning to experienced programmers, updated for version 1.8, describes the language's structure, syntax, and operation, and explains how to build applications.
Dave Thomas's Programming Ruby was a fixture on my office desk for a decade. One of the best programming books I've ever read, with a fantastic reference section (built from Ruby's own excellent baked-in docs), my copy is well worn, and I still find reasons to dig it off the shelf from time to time.
I can't give enough Kudos to Matz, Dave, and the rest of the Ruby community for bringing this language into my life. The community they've built is truly amazing, and the language has endured even as it's grown with far fewer bumps and jolts as compared to other similar languages over the same time period.
In summary, quite simply amazing! Happy Birthday, Ruby!
For instance, methods only exist on classes. And there's no mention of the singleton class whatsoever.
For a more accurate lesson, watch Dave Thomas, author of the "Pickaxe" Programming Ruby book, present on the Ruby Object Model: http://scotland-on-rails.s3.amazonaws.com/2A04_DaveThomas-SO...
1. Learn to Program by Chris Pine
2. Everyday Scripting with Ruby by Brian Marick
3. Programming Ruby: The Pragmatic Programmer's Guide by David Thomas and Andrew Hunt
An excellent book to build your skills and internalize the common Ruby idioms is The Ruby Way by Hal Fulton.
As others have mentioned, Agile Web Development with Rails is The Book to use for learning Rails.
Of the above, the only book I don't have in one form or another is Chris Pine's (because it is, frankly, well below my skill level). There's an online tutorial by the same name, by the same guy, that can perhaps serve as a substitute -- but the book is much more complete, so if that's suitable to your skill level, I recommend getting the book.
Best o' luck! Ruby is a lot of fun.
Below are my favorites (in no particular order), what other "greats" am I missing?
The Art of Computer Programming (three volumes + fascicles) - Knuth (aka TAOCP)
Structure and Interpretation of Computer Programs - Abelson and Sussman (aka SICP, aka The Wizard Book)
Introduction to Algorithms - Cormen, Leiserson, Rivest, Stein (aka CLRS)
Design Patterns - Gamma, Helm, Johnson, Vlissides
The C Programming Language - Kernighan, Ritchie
The C++ Programming Language - Stroustrup
The Scheme Programming Language - Dybvig
Practical Common LISP - Seibel
Programming Perl - Wall, Christiansen and Orwant
ANSI Common Lisp - Graham
Refactoring - Fowler
UML Distilled - Fowler
Introduction to the Theory of Computation - Sisper
Information Theory, Inference, and Learning Algorithms - MacKay
Modern Operating Systems - Tanenbaum
On Lisp - Graham
Hackers & Painters - Graham
Paradigms of Artificial Intelligence - Norvig
Pattern Recognition and Machine Learning - Bishop
The Java Language Specification - Gosling, Joy, Steele
Learning Python - Lutz & Ascher
Programming Erlang - Armstrong
Programming Ruby - Thomas, Fowler, Hunt
Calculus - Spivak
How to Solve It - Polya
The Design and Implementation of the 4.4 FreeBSD Operating System - McKusick, Bostic, Karels, Quarterman
The Design of the Unix Operating System - Bach
The Unix Programming Environment - Kernighan, Pike
The Art of Unix Programming - Raymond
Godel, Escher, Bach - Hofstadter
Metamagical Themas - Hofstadter
Joel on Software - Spolsky
Code Complete - McConneli
The Mythical Man-Month - Brooks
No Silver Bullet - Brooks
The Long Tail - Anderson
The Art of the Start - Kawasaki
If you don't know Ruby, get the pickaxe book. I'd also recommend Agile Web Development with Rails:
http://www.amazon.com/Programming-Ruby-Pragmatic-Programmers... http://www.amazon.com/Agile-Web-Development-Rails-2nd/dp/097...
Also check out PeepCode; it gets rave reviews:
