My relationship with Ruby is oddly erratic. The first time I tried to learn it, it just looked like Perl but a little more pleasant on the eyes. It just didn’t click for me.
This time around was totally different. I’m trying to get an interesting Rails app, AppDrop, working on our servers at school. But as I don’t really know Rails, I checked out Agile Web Development with Rails, 2nd Edition. And boy did I pick just the right book for learning Rails.
For starters, this book comes under the “Pragmatic Programmer” label, which is instantly a good sign if you’ve read the amazing book of the same name (and if you haven’t, go read it first). Listening to thepodcast they put out tells you that they try to go for the same general theme: throw you in the middle of a project, and once you’ve developed some intuition with these tools, they tell you the specifics of everything you had questions about.
This book follows that formula to the letter: they lead you through the development of a Rails shopping cart app (dubbed ‘Depot’) and once you’ve got that under your belt, they go over the main libraries you used. But this book truly lives up to every word in its title, notably being “Agile”. Each chapter of designing the Depot app is spelled out in phases of talking with the customer, making some changes, and showing it back to the customer.
The book is easy reading and you end up with a nifty little app at the end of it. You get to learn about several types of automated testing and about lots of the features and perks Rails offers.
The biggest perk for me out of this book is that if you own the book, you can get the PDF of it at a heavily discounted price. The PDF was what really made this book shine for me (sometimes they offer just the PDF, but I still like having the paperback). The PDF is full-color and has your name at the bottom of each page, which are two nice little touches that really make it feel personalized. More useful is the ability to copy the code out of the PDF and paste it instead of typing it (a general perk of digital editions).
The book is great. That’s all I can say. It’s got me excited about Rails and shifted me to using Ruby for those little scripting apps that need to be done (this book has a Ruby intro in the appendix that rocks as well). But since I’m also reading the Pickaxe book (the seminal Ruby book), we’ll go into Ruby more later.