The Ruby Programming Language
Migrated from old site
I've been interested in Ruby for awhile, specifically because of Rails, but finding time to actually sit down and learn the language has been time consuming. I woked out how to get Ruby on Rails up and running on Ubuntu 12.10 Beta and did the tryruby.org and railsforzombies.org tutorials, which just wet the whistle so to speak. Certainly it wasn't enough to learn a language, let alone a framework with. If I was going to actually do anything real with Ruby, I was going to have to buckle down and do some reading.
I downloaded the kindle version of "The Ruby Programming Language" by David Flanagan and Yukihiro Matsumoto, based on the reveiws and also because of the price point. I was expecting just another programming book, the kind that is painful to read and best used as a spot reference.
I was wrong.This is the best programming book I have ever read, I couldn't stop reading it -- took two days to read -- and is probably the first book of it's kind that I read completely through from cover to cover; where others have been sift through the crap, take what I need and shelve for later reference. It's clear and concise, the examples are easy to read, very well commented and covers every aspect of the language.
The text introduces a object a little at a time, then later returning to it to give you the full api details instead of just clobbering your head in with it like so many other texts do. For instance, String is instroduced early on for obvious reasons but later on in the text it returns to String to give you the comprehensive understanding of its methods, and by the time you get to this point you have seen so much of it that your already pretty comfortable with Strings. The text follows this method for the whole language, in a naturaly flowing way that is a pleasure to read.
One of the things that really caught me is, unlike other programming texts; there were no review, questions, or programs to write at the end of the chapter. They simply aren't needed, the text covers everything so well.
What is really strange, is having read the book through and not having written any actual code I still feel that I have a strong grasp of the language and am ready to go about using it in place of my usual languages(Java, perl, python..) I am certain that this wouldn't be the case if I didn't already have a programming background, the more languages you learn the easier it gets to pick up a new one, and despite being easy to read it is still complex and covers a lot of concepts.
I'm going to get to coding in Ruby soon to see how I enjoy the actual language, but so far I'm impressed by what I have seen and am just looking for a decent project to test it out. I want to have a good base before I delve into Rails.