Review of "Learning Ruby"

Oakland.pm

Reviews

Review of "Learning Ruby"

author: Michael Fitzgerald

reviewer: George Woolley

Title: Learning Ruby
Author: Michael Fitzgerald
Publisher: O'Reilly Media
First Edition: May 2007
ISBN 10: 0-596-52986-4
ISBN 13: 9780596529864
Pages: 255
Cost: $34.99 USD; £24.99 GBP

Short Review

Smiley Rating: Very good. :) :) :) :) of 5

This is a well-presented introduction to Ruby suitable for experienced programmers and many novices.

It's short and it doesn't cover everything. It's not a reference manual. One of the things I especially like is the author's choices of what to include and what not to include.

I'm an experienced programmer and after reading this book I was able to write a non-trivial useful program in Ruby.

If you want more detail, you could read my somewhat longer review.

George Woolley
of Camelot.pm and Oakland.pm

Miscellaneous

Chapter Titles

  • 1. Ruby Basics
  • 2. A Quick Tour of Ruby
  • 3. Conditional Love
  • 4. Strings
  • 5. Math
  • 6. Arrays
  • 7. Hashes
  • 8. Working with Files
  • 9. Classes
  • 10. More Fun with Ruby
  • 11. A Short Guide to Ruby on Rails

Note

Online Watch

Except for Safari, all the resources mentioned below are free.

Safari

When I looked (2007-07-05), I didn't see this book on Safari :(.

Ruby

There's a great deal of info about Ruby on the Net.

Some sites you might want to check out are:

One of the things you'll find at RubyCentral is the first edition of "Programming Ruby".

I found the following page useful:

You might also do some searches such as:

ruby "at sign" 

Another way to learn about Ruby (and have fun too), is to read "Why's (Poignant) Guide to Ruby".

The Book

There is a lot of information on this book on the O'Reilly catalog entry including

  • table of contents
  • sample chapter
  • ...

For more reviews of the book, you might try a search such as:

"learning ruby" o'reilly review
The Author

The O'Reilly Network has some useful info about the author.

The wy'east communications site also has useful info about the author.

Comics Aside

If you are into comics and wish to understand them better, I highly recommend "Understanding Comics" by Scott McCloud.

I particularly like the online comic strip "User Friendly". Two days I especially enjoy are:

Somewhat Longer Review

Contents

The Title

Ruby

Ruby

  • is a programming language
  • is interpretive
  • is object oriented
  • has familiar syntax for many programmers
  • was created by Yukihiro Matsumoto
Learning

The word "Learning" in the title suggests to me that

  • This book is suitable for learning Ruby.
  • This book is not necessarily a complete, in-depth presentation of Ruby.
Does the Title fit the Book?

Yep! I'd say the title fits the book. One can learn to program in Ruby from this book.

About the Reviewer

Databases

I have a thing against databases. So I'll not discuss the Ruby on Rails chapter in my review. In most cases, using Ruby on Rails involves using a data base.

Languages

I've learned and made significant use of over 20 different programming languages. My favorite programming language has been Perl for many years, though I'm getting tired of waiting for Perl 6. I also like PHP, and I'm beginning to like Ruby.

Regular Expressions

I'm big into string manipulation and regular expressions.

Ruby

I know a little Ruby. Earlier this year, I read and wrote a review of "Everyday Scripting with Ruby".

Publisher

I own many O'Reilly books. I've reviewed many O'Reilly books.

By the Numbers

By the numbers, you get:

  • 1 preface
  • 11 chapters
  • 255 pages
  • 1 Ruby language reference
  • 1 glossary
  • 1 index
Chapters

The average length of the chapters is around 18 pages. There's just one chapter less than 10 pages, and there's just one chapter more than 30 pages.

Likes

Choice of Materials

I applaud the author's choice of materials. By careful selection, the author is able to keep the book short and still include what is essential.

Examples

I appreciate the large number of clear examples.

Short

I like that the book is short, and I like that it is divided into short chapters (with one exception).

Learning

Hey, I've now written a useful program in Ruby. The book served me well as a reference while I was working on the program. Everything I needed was in the book.

Reflection

Ruby can tell you about itself and its objects in various ways. This feature is called reflection.

I thought the section on Reflection was especially clear.

Cover

The cover is cool! I particularly like that the larger giraffe has it's neck poking through the b in Ruby, and the baby giraffe is way cute.

Gripes

Not Always Clear

I didn't always follow the author's explanations of various features of Ruby. In some of those cases, even the examples didn't help.

Missing Regex Perspective

The author mentions that regular expressions are derived from Kleene's work on regular expressions in mathematics. I would have preferred he mention that they've diverged significantly from Kleene's thoughts.

Reference to Character Return

The book refers to "character return" in one place where I think what is intended is "carriage return". I don't really care but find the transmogrification amusing.

Who's the Book for?

For

I, for sure, recommend this book to you if

  • you are an experienced programmer
  • and you want to learn enough Ruby to be productive using it.

Hey, it worked for me!

Not For

This book would likely not be good for any of the following:

  • people who are not interested in Ruby
  • people who don't want to spend any money (however, see Online Watch for some resources that are free)
  • people who need to learn all the Ruby bells and whistles
Maybe

What if

  • you are just learning to program
  • and you want to learn Ruby

I'm not certain. I think it depends on you. E.g. How much hand holding do you require? I certainly think this book is worth your consideration.

Final Thoughts

This is a well-thought-out well-presented introduction to Ruby. If that's what you want, I'd go for it.

Draft on Web: 2007-07-06b

Minor Changes: 2007-07-07c

Removed Draft Status + One Change: 2007-07-08c