I’ve been using Ruby on Rails for slightly over a year.
I’d first started to use Ruby to interact with the Amazon API; after coming from Perl, Ruby’s object oriented nature was a godsend.
Instead of having to laboriously step through arrays, for instance, I could now cycle through them in multiple convenient ways. It was a quick conversion; after using Ruby to obtain JSON results that had taken my twice as much code to obtain before, my moment in Damascus, I started to convert my code to Ruby immediately.
Learning the ins and outs of Amazon’s product advertising API was good but my position was always a little precarious, since amazon would change up their rules on a dime and prices fluctuated wildly. It was time, I thought, to apply the skills I’d learned to something new, and ramp up that way.
I took a railstutors course that used the Michael Hartl book to walk us through our paces.
We covered rake, routes, the MVC model, using instance variables with controllers and views, ActiveRecord, using git with Heroku, and testing with rspec in a six week period.
I applied to DevBootcamp and was waitlisted and then accepted for the second batch. After seeing the now higher price tag, I declined and decided to go straight to San Francisco to find work, a little prematurely considering my grasp of the language back then. I stayed with a friend in the area but, not wanting to exhaust my savings, returned to Houston after a couple months to regroup.
After that, I started to review the books I’d picked up so far. I returned to the Hartl book, which I have mixed feelings about. In my opinion it tries to introduce too many topics at once; to someone with experience it is clear that they’re each individually simple, but to the shaky beginner trying out their legs for the first time, it’s easy to feel overwhelmed, especially when those concepts are not elaborated on to any great degree.
In particular, I think the very early introduction to testing, when the student is likely thinking ‘but how can I get this simple rails app to work,’ encourages readers to skip that section. In my class we skipped that section and returned to it later.
Next up, the Agile book.
I thought this was an improvement, and found more individual concepts I could pick up and apply. I still felt like a lot of the concepts could use more elaboration; there’s a tendency in instructional books to overexplain the easy stuff (loops, etc.), but then skimp on the intermediate to advanced material.
In particular, instead of long winded explanations about material that doesn’t need it, most books would benefit from more examples. Concrete, idea-in-action examples that show you the implementation from several different points of view, using slightly different conditions, since that’s a real-life issue that comes up all the time – a prospective use isn’t quite exactly documented in the textbooks (or on Google), and so finding multiple examples that ‘triangulate’ on the answer is often the best choice.
By combining all these books together, I felt I got the education I’d wanted all along, but I would’ve preferred to have one book handle it all – if only they could get these examples right.