Thursday, October 6, 2011

Book Review: The Book of Ruby

Yes, I've been feeling a little bit "under pressure" to complete reviews for books I've been working through and reading. I have a virtual stack of titles I'm working through in parallel, so it's taking me months instead of weeks to finish certain titles (and this doesn't even include titles that I am actively reading that re in Beta and are thus not yet ready to be reviewed).

Disclaimer: No Starch Press provided me a free copy for review.

First, I am a big fan of NoStarch titles. I like the way that they are organized and the way that the information is presented. In this classification, The Book of Ruby by Huw Collingbourne fits well into the publishing method NoStarch is famous for. It's a beautifully designed book, and the formatting and the prose itself is easy to follow. It’s a good overall reference, and the format is helpful to find areas that are of interest quickly (this is a hallmark of pretty much all of NoStarch’s books). In fact, I’d say the strongest element of the book is the NoStarch format and the ability to quickly find what interests you.

The books starts out well, with clear syntax and presentation of topics, you feel like you are on top of things. The problem comes with trying to work through the book as you go through the examples. There feels like a disconnect between chapters, and I personally felt it a little slow going, requiring resetting and rereading the chapters. I found that using it as a reference book on the given topics is the most effective, but it doesn’t work as well as a continued narrative. To be fair I'm reviewing this from a perspective of being an "advanced beginner". This means I've read a few books on Ruby and have written a few programs, but don't use it enough yet to consider myself to be proficient, or for that matter even an intermediate user (though I use Cucumber fairly extensively and patch it with Ruby as needed). I think it's important to state where I am at so I can state why I'm scratching my head at some points.

While I think Huw's explanations work for most of the examples, there's just this nagging feeling that I'm missing something as I read through and work on them. I did like the "Digging Deeper" sections. These allow the author to go more in depth on a specific topic. I actually wish there were a few more of these in the book, but I appreciated the ones that were included.

Another area that I found disconcerting was that there was little emphasis on a consistent coding style. Yes, most languages allow for different stylistic approaches and indenting/not indenting isn’t a huge deal, but it can be frustrating when comparing books from different sources. A consistent style would have helped me see patterns and perhaps not need to back-track and reread certain sections.

I think there are many good aspects of the book, and I think that there are many benefits. However, if a user were to pick up a single title to get started with Ruby, I'd probably steer them to "Learn to Program" from Chris Pine or "Learn Ruby the Hard Way". After reading those, I think The Book of Ruby would stand better as a supplementary text.

No comments: