The Well-Grounded Rubyist Book Review - Manning

The Well-Grounded RubyistDuring my free time, I have been spending a considerable amount of time learning Rails and Ruby. Different than probably most developers, I am learning Rails and Ruby with a firm background on ASP.NET MVC and C#. The intial reasons for learning was mainly to intelligently respond to all the questions and comments from Rails developers who are attending my Tampa ASP.NET MVC Developer Group.

However, my interest is now different. I not only enjoy learning Rails and developing Rails Applications on my Mac, but I am really interested in the Ruby language itself. I know as developers we are “supposed to” learn a new language each year, but that is not an easy task and I often don't find much motivation given that .NET has been so VB and C# centric. However, given my interest in Rails, the Dynamic Language Runtime ( DLR ), and IronRuby, I now for the first time feel there are so many good reasons to learn another language and for me it is Ruby.

My first course of action was to purchase a book focused on Rails, because this gives me practical reasons and the motivation to apply Ruby today. However, Rails book usually just give you enough information on Ruby to get by on Rails, and one quickly finds that a more fundamental education on Ruby is necessary. I especially noticed this since Ruby is a completely different animal than C# in many ways, and I found myself struggling with a number of the operators and core classes / modules that were a bit foreign to me. Hence, I picked up what I think is a fantastic book on Ruby, The Well-Grounded Rubyist by David A. Black.

The Well-Grounded Rubyist is a solid book all around because it starts you with the fundamentals, moves you up to object-oriented programming for software development, and then hits you with a spattering of advanced topics for when you really want to take advantage of Ruby. You essentially have a beginning, intermediate, and advanced book on Ruby rolled into one.

For me, the fundamentals were critical to my understanding. Although I feel very comfortable with language features and concepts in general coming from C#, I have a whole new set of keywords, operators, and object hierarchy to understand. Personally, I think The Well-Grounded Rubyist excels at explaining the fundamentals which can be a nightmare to explain to new programmers and programmers coming from another language. It can be especially difficult to explain to me as someone who is carrying the baggage of a statically typed language like C# :) In the end, David does an excellent job getting me up to speed on the basics of Ruby and opening my eyes to the coolness of a dynamic language.

Of course, the fundamentals of Ruby will only get you so far. You really need to understand the various classes and modules in Ruby to do real software development. Here is where David does a good job of explaining not only the various classes and modules in Ruby, but those crazy things like, equality vs. identity, enumerability, enumerators, comparability, closures, etc., that are so crucial to understanding how things work in the real world. This is also where you get into so much of the syntatical sugar in languages that experienced developers take advantage of and new developers need to know :) Again, David does an excellent job going beyond the language and hitting those concepts in the built-in classes and modules that you need to know and will experience in the real-world.

Finally, you get into the dynamics and functional areas of Ruby which make Ruby so popular. Thankfully we started to see a lot of Functional programming in C# 2.0 and 3.0 which gave me a step up on anonymous functions, lambdas, and “Eval“. Functional and dynamic programming is important so it is good to see David hit these advanced topics in the book to round out our education.

I see it like this. If you are learning Rails and/or the Dynamic Language Runtime ( DLR ) and IronRuby coming out of Microsoft, you need a solid reference book on Ruby. The Well-Grounded Rubyist is an excellent reference book on Ruby. It is a language book and hence focuses on the language and various fundamentals of programming using the core classes and modules in your applications. For me it has been an excellent addition to various Rails books when I needed to understand how the various classes and modules worked as well as the syntatical sugar used by more experienced Rails Developers.

Learn more about The Well-Grounded Rubyist on Manning as well as Amazon. I highly recommend it.

 

David Hayden

 

posted on Saturday, June 06, 2009 1:03 PM

Main

News

Green Tea

.NET Development

Enterprise Library

Patterns & Practices