The Bottom Line
The Book of Ruby by Huw Collingbourne teaches Ruby to people who already know another programming language. It doesn't hold your hand and explain minor points like "what is a variable" and doesn't explain concepts like Object Oriented Programming, it assumes you know these things. It touches on all major features of Ruby, as well as a few odds and ends at the end of the book.
But in the end, The Book of Ruby is adequate. There are other Ruby titles that do a much better and thorough job. That's not to say that The Book of Ruby is a bad book, it does teach you Ruby. It's just that it's up against some other great books.
- Short. This is not a reference or an exhaustive guide, it teaches you Ruby and leaves it at that.
- No-nonsense. There are no lengthy discussions, it just shows you how to program in Ruby.
- Fast. It shouldn't take you long to work through this book, it'll get you on your feet in no time.
- Free. There's a PDF you can download for free (legally).
- Non-idiomatic in places. The author willingly deviates from Ruby idioms, which is not the Ruby way.
- Short. This was also a Pro, but it's also a Con. You just don't get all that much for your money.
- Competition. This is not a fault with this title per se, but it's going up against some good books.
- Chapters 1 to 3 cover strings, numbers, etc as well as the basic class hierarchy.
- Chapter 4 tackles arrays and hashes.
- Chapters 5 and 6 cover loops and conditionals.
- Chapters 7 to 10 teach methods, arguments, exceptions and blocks.
- Chapter 11 covers symbols, a small but important piece of the puzzle.
- Chapter 12, modules and mixins.
- Chapter 13 is about files and IO.
- Chapters 14 to 20 are a mishmash of various smaller topics such as YAML, a short chapter on Rails, etc.
Guide Review - The Book of Ruby
The Book of Ruby by Huw Collingbourne is an instructive text on how to program in Ruby. It's written for people who already know another programming language and basic programming concepts. But other than that little stepping stone, it's a very gentle book. It won't throw you into the deep end straight away.
The book is written in bite-sized chapters, each covering a single aspect of Ruby, most of them about 20 pages. In those pages you'll find some rather well-written explanations of Ruby, some short example code and a section at the end of each chapter called "Digging Deeper" that will explore these features further, but can be skipped if you wish. Most of the chapters are on the core Ruby language, only a few chapters at the end of the book cover third party libraries such as YAML or Rails, and those chapters are very short.
One thing to take note of, however, is that the author knowingly deviates from several Ruby idioms. For instance, the author prefers to use for loops instead of each, if something then something_else rather than something_else if something, doesn't use braces and do..end on single-line and multi-line respectively, etc. These are little Ruby idioms that other Rubyists expect to see, but the code in the book is correct. This is kind of like being taught English by someone who, while they speak English correctly, has brought idioms from their native tongue.
Some other things in this book are curious. For instance, one of Ruby's most powerful learning tools, IRB, is only mentioned once near the end of the book. I had thought that everyone learns Ruby by experimenting with IRB. Writing scripts and running them to test small things is just so... un-Ruby. But again this isn't incorrect, just different.
But the biggest thing to think about when considering this book is the competition. This title is up against some really great books that frankly give you more bang for your buck. The two titles that come to mind are Beginning Ruby by Peter Cooper and Programming Ruby by Dave Thomas et al (the infamous "pickaxe book"). Both are the same price or cheaper, give you much more content and teach Ruby in much the same way. But it's hard to fault The Book of Ruby for this.
Overall, The Book of Ruby by Huw Collingbourne is just adequate. It's a bit quirky in a few spots, but it does its job of teaching the reader Ruby in a gentle way. But it isn't anything really great, it's simply adequate.