Most helpful critical review
45 of 54 people found the following review helpful
An otherwise good book is seriously damaged
on November 3, 2011
What happened? The authors are leaders in the field and the publisher is well-known and respected. This is already the 4th edition of the book (that shows its staying power). The book now covers the latest Rails version 3.1. There is a complete application and lots of useful material. So what is so wrong about this book? Is it because the book is actually meant for intermediate learners and not beginners? Well, I am afraid this is not the reason why. I wouldn't recommend this book to any intermediate learners either.
The book suffers from a lack of proper reviews that have pointed out the many pedagogical errors in style, sequence and content that the book has. One must work hard to grasp what is being taught. It requires a lot of motivation, reviewing and double checking. Too much is given at once, in the wrong order and with little explanation (if any). Too much is left open. Proper subject matter review for a consistent explanation isn't available.There is a summary at the end of each chapter, but it is as a statement of goals "achieved" and not an explanation. I could list many examples. One can easily get lost following (or trying to follow...) the book. It can be a real pain.
I have also checked the former, 3rd edition. It is better than this one. For example, the development of the sample application is better explained. In the current edition, a lot of text has been removed, including lots of critical parts needed to understand how the sample application is being built. The reader is left confused, trying to make sense of what is left. Truly bad editing, I must admit. The program code itself has changed dramatically. The new and the old text (program code and explanations) don't work together well at all. With each new edition of the book, the editing seems to get worse.
While beginners (the ones that always get hit the hardest) will suffer through this book, others in the same situation will have fun, joy and understanding with a book like "Head First Rails" that shows how Rails can and should be taught (independent from the style of the book). This great Head First Rails book has not been updated to Rails version 3, although it is still useful and the one I would recommend for a beginner.
So, unfortunately this is a flawed book at its core essence: to teach Rails. The material is all there, its authors are all expected to be experts in the area. But the guided hand of a good teacher isn't there. I wish a new edition would make up for the flaws and turn this book into the outstanding classic that it could and can be.
As there are very few books that cover the latest releases of Rails, this book may also contribute to lessen the usage of Rails itself, as many will turn away from it for a lack of proper learning resources, including from some of the leading experts in the field -- who were supposed to help to lead the way! Really disappointing...
Take, for example, page 161 of this fourth edition. Figure 22 is a detailed diagram showing how an instance variable is created in the controller, visible to the view in a form and related to a model object. The diagram shows the editing of an order object in a form, but the text nearby is instead discussing the creation of a new order object. This text takes four lines to explain once more that the action in the controller (in this case, the "new" action) matches a view with the same name ("new") under the directory views/orders. A detailed explanation once more. Fine. But the next line has already the code for a form and a partial, with no further explanation (so what is a partial, which convention is used by Rails for partials, why would we want to use one here?). Now the book assumes that the reader remembers it all, although this portion of the text is intended to deal with forms. Therefore, some parts of the book have been heavily edited out, some other parts have not been edited at all or have a mix of a diagram that shows example A with a text that shows example B. Some few have very detailed explanations and most have either short or just no explanations. All in the same confusing context where in the same page you are often confronted with many different technologies at once.
One of the creators of Rails is a co-author of this book. I wonder how he could let this all go ahead. Worse: some portions of the book are sections that seem to have been directly written by himself, called "David says". They are truly superficial and disappointing. It is as if Einstein would add sections to a book on relativity explaining how to name variables in equations or why to use X and not Y in tests instead of giving any conceptual or useful insight in his theory of relativity.
A reviewer here called this book the "de-facto edition to your Rails library". Well, if your boss wants to use Rails in your project and you are against it, just ask your boss to give this "classic" to the developers and wait for their reaction. However, make sure that none of them comes even close to "Head First Rails" to realize that Rails is fun and not this confusing, arbirtrary and complex framework that this book shows. This book is now, in its 4th edition, a bad thing for Rails.
I have reviewed and read many books in many different areas and, as it stands, this one manages to be one of the worse of them all. This book has the power to bring down any motivation to learn anything about Rails. What is more incredible is that its authors seem to have all the skills and experience to have produced a completely different and stellar book. I wonder where what got lost. And I hope they will repair it rather sooner than late.