The Well-Grounded Rubyist Paperback – 7 Jun 2009
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
About the Author
David A. Black is a Senior Developer at Cyrus Innovation, Inc., and the director of Ruby Power and Light, LLC. He has been programming in Ruby since 2000, and is also a director of Ruby Central, Inc., the parent organization of the International Ruby Conference (RubyConf).
Top customer reviews
This is not a book about Rails or any other web frameworks; purely Ruby. Though much of the material will also apply to the 1.8.x series of Ruby, this is a book about the 1.9 version of the Ruby language. It's broken into three parts - Ruby foundations, Built-in classes and modules and finally Ruby dynamics. But don't let the title of Ruby foundations fool you for part one - this is not some remedial rush through the basics of Ruby in six chapters. Rather, after a couple of warm-up chapters, it moves quickly to clarify the key aspects of how classes and module inter-relate, as well things such as crystallising what 'self' really means in different contexts in a Ruby program. The author sets out his stall early - what makes Ruby different from other languages is it's focus on objects rather than classes. Everything else stems from this and by the end of the section you feel like you have an understanding of Ruby's design and focus.
Part two of the book is Built-in classes and modules. Now that you know what makes Ruby tick, it's time to get seeped in all aspects of the core library that ships with it. One of the problems when learning a language is that becoming familiar with all methods of a particular core class is a tedious task. It's much more interesting to learn about concepts such as meta programming than memorising lists of methods by rote. But if you don't take the time to familiarise yourself with the dusty corners of a language's API then you're less likely to think of those handy methods when a problem they would elegantly solve presents itself. At this point the book shifts gear to a more reference style of text. However, it still gives the reader an interesting story to follow as it documents arrays, hashes and other classes - throwing in the occasional golden nugget of information that will be a valuable additional to the toolbox of even experienced Rubyists. One side effect of the change in style is that this section is probably the most accessible to beginners. Again it's broken down into six chapters. In addition to collections, it also covers topics such as regular expressions and file handling. Each topic takes a zero-to-hero approach meaning that you can bring little regular expression knowledge to the table yet still walk away learning an immense amount about the subject.
The final part of the book, Ruby dynamics, returns to the book's roots from part one - a focus on imparting a deep knowledge of Ruby's design. Before you even pick up this book you have an inkling that procs and lamdas are going to make a guest appearance at this late stage. And they do not disappoint. Extending the behaviour of objects takes centre-stage and meta-programming based techniques move quickly to the fore. Any block/proc/lamda confusion you may have will be a distant memory by the time you finish this section. Threading is also covered here - though a detailed discussion of 1.9's new native OS threads vs green threads is left to one side to focus on the usage of threads regardless of which underlying type you use. Lots of material is also provided on querying objects; which is not only useful for program design but also invaluable as a debugging aid. The book really shines in this section because a lot of other texts make the mistake of going into 'super-boffin' mode at this point, leaving the reader lost, whereas the author here continues to provide patience and context to get you round that final lap on you way to becoming a Well Grounded Rubyist!
This book cannot be all things to all people. Because it is catering for a wide range of intermediate to advanced Rubyists, it will feel like it's moving a little too slowly for some. By the author's own admission, this is in order to make it accessible to a wider audience and no doubt it will make it easier for developers of all levels to digest - your humble reviewer very much included! Ruby first-timers would be best off having some straight-to-the-point tutorials or entry-level text to hand in order to get some instant gratification - as part one of the book, by it's very nature, is a little more abstract than a complete beginner would expect. But all in all, this book is a great way to learn just how Ruby crams so much expressiveness into such a simple clean framework. Whenever I read a book like this I keep a list of new things learned along the way. For The Well Grounded Rubyist it is a very long list! Well done to David A. Black and Manning for producing a book that fills those gaps in many Rubyists' understanding of the language while at the same time delivering an absorbing readable book that would sit proudly on any Ruby programmer's bookshelf.
Most helpful customer reviews on Amazon.com
Ruby is a beautiful and very very powerful language - a language that allows you to write domain specific languages (e.g. RAILs is one of them). To really harvest the power that object oriented paradigm brings to the table, one must master the language.
There are many experts in ruby programming, but only a few that can teach you how to master ruby like Dr. Black can. I've been literally digesting this book for the past several months. Spending hours each week referencing the material discussed in this book, experimenting with the language on my new automation project.
For me this book is worth several thousand $ in value. How did I arrive at the value? I spent a week at my company's ruby class which was taught by some ruby expert costing 2k per person. And I didn't get more than 20% covered in the book. Besides, some of the complex concepts just require time and experiment to sink in. Only a book like this can fulfill such a requirement.
It all depends on what you want to get out of the book. The more time you interact with it, the more value you will get out of it. I definitely recommend entering the example code in irb as you go through the book. It can take you from beginning level all the way to the advance level to go and comfortably read ruby library source codes like the minitest gem source code. I highly recommend reading this source code to test your ability to understand how ruby work.
I see comments about verboseness and repetitiveness. My only response to this is that I wish it was even more verbose. Maybe I'm a slow learner, but I find myself having to re-read each page several times. And even then, I still need to google for additional details. But what Dr. Black covered was adequate for me to investigate further.
There is great cost to the teacher and the student to master something like ruby. For me it was plain sweat and grinding until it sinks in. I'm glad there is someone like Dr. Black who is the master himself, and who is willing to help others getting to the same level.
I've coded on and off with Ruby for about 18 months, and decided that I really wanted to improve with the language, hence purchasing this book. About half of the programming books I buy go unread or I'll lose interest before getting too deep into them. The Well-Grounded Rubyist has completely changed the way I think of Ruby, in a "I was blind and now I see" way. I could code Ruby okay before this book, but I never really understood a lot of the finer points of the language (what self really meant, some of the complexities that come with "everything is an object", etc).
The book manages to explain concepts thoroughly without being verbose or boring. Easily among my personal list of top five programming language books.
I've finished the book, and felt that Part 2 was a lot slower and less useful for me, as I'm comfortable with regex and ruby data structures. For a beginner, Part 2 is worth reading. If you're not new to Ruby, Part 1 alone is worth the purchase - I'd recommend skimming Part 2 (giving particular attention to important stuff like the Enumerable module) and then checking out Part 3 topics.
Look for similar items by category
- Books > Computing & Internet > Digital Lifestyle > Online Shopping > Amazon
- Books > Computing & Internet > Networking & Security > Network Topics
- Books > Computing & Internet > Programming > Languages
- Books > Computing & Internet > Programming > Software Design, Testing & Engineering > Functional Programming
- Books > Computing & Internet > Programming > Software Design, Testing & Engineering > Software Architecture
- Books > Computing & Internet > Web Development