File Size: 13488 KB
Print Length: 448 pages
Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
Publisher: Addison-Wesley Professional; 1 edition (February 7, 2011)
Publication Date: February 7, 2011
Sold by: Digital Services LLC
X-Ray: Not Enabled
Word Wise: Not Enabled
Lending: Not Enabled
Enhanced Typesetting: Enabled
Best Sellers Rank: #197,187 Paid in Kindle Store (See Top 100 Paid in Kindle Store) #13 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > Ruby #41 in Books > Computers & Technology > Programming > Languages & Tools > Ruby #637 in Books > Computers & Technology > Programming > Web Programming
This book is so easy to read yet so useful and informative that I read it in its entirety within 24 hours (across 2 distinct days admittedly ;-)).Eloquent Ruby is a book published by Addison Wesley and written by Russ Olsen (who also wrote Design Patterns in Ruby a few years ago). It clocks in at around 400 pages and has 31 chapters clocking in at around a punchy 10 pages each. Each chapter is titled as a guideline you should follow to write "eloquent" Ruby - things like Create Classes That Understand Equality and Write Code That Looks Like Ruby - and typically the claim is explained, some code examples shown and discussed, some real world examples pointed to, and that's it. As with Design Patterns in Ruby, Russ adopts a chatty, familiar tone. Reading this book is like reading a book specifically written for you by a friend. He doesn't shoot off on many unnecessary tangents and he keeps the stories short and sweet but this book certainly couldn't be called dry.The book is also notably short of egregious errors or omissions. Even when I don't read something with a fine-toothed comb on standby, I can usually pick out a laundry list of factual and grammatical errors or omissions (as both Obie Fernandez and my wife will attest) but Eloquent Ruby gave me little to chew on. I can only bring to mind a few spacing and formatting issues and only one true "error": a > instead of a < in a class definition on a single example.Russ tries to remain neutral with his choice of Ruby implementations but the book seems to focus primarily on Ruby 1.9 (Ruby 1.9.1 specifically but that's just due to when he wrote it) while providing useful footnotes in the cases where there are differences to Ruby 1.8.
For better or worse the vast majority of my work life journey has been travelled with Java as my vehicle of expression. However, by nature I have a burning desire to learn new languages and at one point or another I discovered Russ Olsen's (also the author of Eloquent Ruby) "Design Patterns in Ruby". Having at one time counted myself as a true-believer in everything pattern-esque, I was excited for the opportunity to learn Ruby under the aegis of The Gang of Four. However, what I found was something else entirely. I absolutely loved "Design Patterns in Ruby" for reasons that I was not expecting. That is, what I found was an extremely interesting book that was playful and as a nice side-effect *actually taught me how Ruby's powerful features make many design patterns unnecessary*.Olsen, with his latest effort has mastered the art of writing a book that is extremely interesting, fun, and informative. As an author myself, I greatly admire the ability in other authors to take what many would consider dry and bland, a programming language book, and create something that is truly special. Let me not give the impression that "Eloquent Ruby" is filled with fluff however; on the contrary, of any Ruby book that I've read I have learn the most from Mr. Olsen's masterpiece."Eloquent Ruby" is written for the programmer like me: someone with previous programming experience, but with only a passing understanding of Ruby itself. The structure of the book will help guide the Ruby neophyte toward a stronger understanding of not only the language constructs and idioms, but also the Ruby culture.
I can't even begin to imagine how difficult it would be to write a book covering such an in-depth topic as the Ruby Programming language. Add to that a target audience with a widely diverse range of skills and the tasks seems to be out right impossible. Fortunately for us mere mortals Russ Olsen has taken on this challenge and surpassed my high expectations in his second book, Eloquent Ruby.The first part of the book is for the Ruby newbies, but takes an interesting deviation from most programming books. Instead of focusing simply on the syntax and language libraries, Eloquent Ruby focuses on the community aspect of the Ruby programming language. Each programming community has its own style and norms and without a lot of direction and practice, these style and norms can be difficult to learn. The Ruby community is heavily opinionated and Russ's book does a great job of explaining these opinions and their manifestation in many Ruby codebases.In Part Two of Eloquent Ruby, Olsen dives into the core concepts and building blocks of the Ruby programming language. This section of the book covers the everyday usage patterns and common best practices when working with Ruby's classes, iterators, blocks, and modules.The power and flexibility of Ruby is put on full display in Part Three of Russ's book. Newcomers to Ruby are often mystified by Ruby code that appears to be doing magical things like dynamically adding methods to a class. In this section, Russ pulls back the curtain and explains the magic that is metaprogramming. Those unfamiliar with the concept may find the topic confusing at first, but Olsen breaks it down in a way that is easy to understand.
Eloquent Ruby (Addison-Wesley Professional Ruby Series) Ruby on Rails Tutorial: Learn Web Development with Rails (Addison-Wesley Professional Ruby Series) TCP/IP Illustrated, Vol. 1: The Protocols (Addison-Wesley Professional Computing Series) TCP/IP Illustrated, Volume 1: The Protocols (Addison-Wesley Professional Computing Series) TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition) (Addison-Wesley Professional Computing Series) TCP/IP Illustrated, Vol. 2: The Implementation (Addison-Wesley Professional Computing Series) Advanced Programming in the UNIX Environment (Addison-Wesley Professional Computing Series) The Go Programming Language (Addison-Wesley Professional Computing Series) Advanced Programming in the UNIX(R) Environment (Addison-Wesley Professional Computing Series) R for Everyone: Advanced Analytics and Graphics (Addison-Wesley Data & Analytics Series) Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)) First Principles of Discrete Systems and Digital Signal Processing (Addison-Wesley Series in Electrical Engineering) Hadoop 2 Quick-Start Guide: Learn the Essentials of Big Data Computing in the Apache Hadoop 2 Ecosystem (Addison-Wesley Data & Analytics Series) Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2 (Addison-Wesley Data & Analytics Series) The Design and Implementation of the 4.4 BSD Operating System (Addison-Wesley UNIX and Open Systems Series) Win32 Programming (Addison-Wesley Advanced Windows Series)(2 Vol set) Ada for Experienced Programmers (Addison-Wesley series in computer science) Principles of Compiler Design (Addison-Wesley series in computer science and information processing) Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Adobe Reader) (Addison-Wesley Signature Series (Fowler)) More Agile Testing: Learning Journeys for the Whole Team (Addison-Wesley Signature Series (Cohn))