|Power House below the San Francisco Cable Car Museum - courtesy Christian Mehlführer|
After 3 months of part-time slogging I've made it to the end of Michael Hartl's excellent (and free!) Ruby on Rails Tutorial. I really appreciated Hartl's inclusion of the whole Rails workflow, from installation and config, through TDD (test-driven design) and BDD (behaviour-driven design) with RSpec, Capybara and Cucumber, source control with git on Github, and a taste of CSS and Ajax, to actual deployment on Heroku. In fact, you can see the results of all this work at https://furious-cloud-4562.herokuapp.com/.
Along the way I learned a lot, with some side trips into setting up a development environment and finally coming to grips with Vim. It was a bit like I imagine driving a San Francisco cable car - I got where I was going, over lots of hills and curves, in relative ease and comfort, by pulling a few levers (typing in code) at the right time and watching the results roll by.
But I could tell there was something "under the street" pulling me along, like the power house under the San Francisco Cable Car Museum - lots of big machinery, moving fast, with cables and gears disappearing into dark, unexplained tunnels. I think the next step, now that I've had a ride around on the Rails car, is to step down into the motor room, with conductor David A. Black's book in hand, to get a better understanding of the Ruby engine that drives everything.
I found the end-of-chapter exercises a bit daunting, especially without an answer key to check against once I'd make my best attempt at it. I found some answers, often for older versions of the tutorial, on StackOverflow and the now-unsupported Get Satisfaction support site for the Rails tutorial.
I really like the BDD testing approach, and I'd like to delve into that next, but I haven't found much online beyond the RSpec documentation (which appears to be generated by rspec tests), a new "gamified" RSpec tutorial at Code School that I haven't tried yet (opinions, anyone?), and a now outdated book from the usually excellent Pragmatic Programmers. Again, I am loathe to spend time and money on a book that was published more than 2 years ago, given the rapid velocity of code changes to the Rails ecosystem.