Pages

Wednesday, January 28, 2009

Best of Ruby Quiz


Product Description

Solve these twenty-five popular programming puzzles, and sharpen your programming skills as you craft solutions.

You'll find interesting and challenging programming puzzles including:

* 800 Numbers
* Crosswords
* Cryptograms
* Knight's Tour
* Paper, Rock, Scissors
* Tic-Tac-Toe
* Texas Hold-Em
* ...and more.


Learning to program can be quite a challenge. Classes and books can get you so far, but at some point you have to sit down and start playing with some code. Only by reading and writing real code, with real problems, can you learn.

The Ruby Quiz was built to fill exactly this need for Ruby programmers. Challenges, solutions, and discussions combine to make Ruby Quiz a powerful way to learn Ruby tricks. See how algorithms translate to Ruby code, get exposure to Ruby's libraries, and learn how other programmers use Ruby to solve problems quickly and efficiently.

Product Details

* Amazon Sales Rank: #671268 in Books
* Published on: 2006-03-13
* Format: Illustrated
* Original language: English
* Number of items: 1
* Binding: Paperback
* 312 pages

Editorial Reviews

About the Author
James Edward Gray II is a contract programmer based in Edmond, Oklahoma. He has done extensive work with web sites, Perl scripting and Java applets, for everyone from programming shops to food companies, but his true passion lies with Ruby. He's been an active part of the online Ruby community writing documentation, presenting the language to computer groups, and, of course, running the Ruby Quiz.
Customer Reviews

Essential reading for practical Rubying4
This book is a collection of 25 challenges from the ruby quiz website, with a substantial discussion of various solutions. Lots of word and number games abound. Some examples will give you an idea of what to expect: generating crosswords layouts, ranking poker hands, building (and solving) mazes, generating and cracking ciphers. You could check out a lot of this from the website, but the dead-tree format is more readable, and the discussion is much expanded.

Up to date books on Ruby (rather than Rails) are scarce, so we should cherish this publication. Good as the Pickaxe is, it lacks examples of fully-working programs. There are plenty here, packed full of Ruby idioms - I learnt an immense amount from the quizzes. You will want to either be taking copious notes while reading this, or be sat in front of the computer, so you can fire up irb and play with the language features you don't understand. Of course, as a collection of idioms, one could imagine the material being organised more efficiently, but it would also be a lot drier.

So much for the Ruby, what about the Quiz? I must say that I was less enamoured of the book as a collection of puzzles. I didn't find the problems themselves that exciting, although that's probably just me. You probably already know if you're likely to find this sort of thing fun. What was more disappointing was that the discussion of the solutions is tilted towards presenting a solution in chunks of code, and then explaining what each bit of syntax was doing. There is much less emphasis on analysing the problems, or weighing up the solutions. This is not to say that the book is bereft of such analysis, but it is sporadic and specific to the exact form of the problem. I understood all the solutions, but did not feel that I had gained any insight into the generalities of how to classify problems and identify solutions. This is not really what the book is about, but the blurb does highlight algorithm selection and problem analysis as one of its selling points, so one might be justified in being a little disappointed.

Nonetheless, I still give this book 4 stars, for the wealth of Ruby action contained within. Maybe future releases will supplant it, but for now, book-starved newcomers to Ruby, having finished the Pickaxe, should consider this book as a must-read source of idioms and example programs, with a fun practical bent as a bonus. Well worth your money.

For the programmer in need of a project5
I can't count the number of times I've been learning a language only to find that I don't have a project to work on. Best of Ruby Quiz is a wonderful solution to this problem. Filled with interesting problems and well documented solutions there is certain to be a quiz that fits your fancy and you _will_ learn something very cool.

Ruby Quiz is online, but the best of book has distilled the free-for-all online atmosphere into a polished collection with the answer (or answers) that the author were most useful and complete.

Great way to learn about the hacker culture too as the answers often include tidbits about why an answer was done the way it was (ie: I had never heard of programmer golf before reading this book)

Summary of the website3
James Gray is a seasoned Ruby veteran who has been adding value to the community for a long time. One of his major contributions is the Ruby Quiz - a competition modeled after the Perl Quiz - each week a new challenge is posted and people are encouraged to contribute solutions. In the end of the week, James analyzes the most interesting solutions and presents a summary on the website (and the mailing list).

This book is a digest of the 25 most interesting quizzes and their solutions carefully collected by James and released in one volume (using some very pretty typesetting, I must add). It's basically a printed version of the website, with only very little content added - like additional exercises after each quiz.

And this is where the problem of this book lays, in my opinion. To experienced programmers it won't be particularly interesting, since looking at the quiz website itself and participating in the lively discussion on the maling list is much more interesting.

This book could be excellent for newbies, but unfortunately it's not meant for those unfamiliar with the language. So even here, the website is just far more useful. The only real advantage of this book is its dead-tree format, which may be nice for people who have difficulty reading from the computer screen, or for people temporarily without internet access.