Since coming across CodeSchool's free [Rails for Zombies] course online a few months back, I've been working though a few other paid courses they offer, and I recently finished both Rails for Zombies 2, and Rails Best Practices.
I thought it might be useful to share my experiences with Codeschool learning tools.
While I've been dabbling in Rails on and off over the years, since joining AMEE a few months ago, at times I've felt a little behind all the cool kids who've been coding nothing but Ruby all the time I was swearing at Drupal at Headshift, especially after all the changes brought about in Rails 3 and 3.1, with the asset pipeline, new AREL based query syntax, and shiny new default exotica like Coffeescript and SCSS.
Sure, one of the key points of Rails 3 is that it's much more modular, so you're not explicitly forced to use all this new hotness, but if you know enough about all these newer parts of the framework, at least you can make more informed decisions about which parts you'll update, and which parts you'll keep when updating a series of apps from Rails 2.3 to 3.
I've found Codeschool's trio of Rails focussed courses to be immensely useful in this respect. I really like the way they deliver the courses, and if I could, I'd want to learn to use any moderately complex like this in future, instead of reading about it in books.
The problems I have with learning from computer books
I'm pretty sure I'm not alone in having a habit of buying interesting looking O'Reilly or Pragmatic Programmer books, and never actually getting round to working through them in a useful fashion for one of the following reasons:
- I read them away from the computer and everything feels too abstract to be useful, or I forget it what I've really learnt by the time I get a chance to use it
- I sit down at a computer, with a book and an editor, and I end up wrestling with the setup, and spending time fighting with rubygems, or some some compiler issue brought about by one C-extension needed by a gem, or I simply lose hours due to stray typos I make when typing out code from the page, or when copying from a pdf.
This doesn't mean books are useless to me, I've got an immense amount from the Rspec book lately, as well as Gregory Browns Ruby Best Practices. But I frequently struggle with the two points enough to make me think twice about buying books at all.
Why I prefer CodeSchool's approach
I really like the information in Codeschools is structured - it feels like a much better fit for how I tend to learn things.
Each course is split into a logical series of chapters, focusing on a specific element of the Rails framework, before you get to use what you've learnt.
For example, you'll watch a 15-20 minute long video introducing how Activerecord works together with the new AREL based query builder, and have the option to get some downloadable slides and cheatsheets.
You'll then then work through a series of increasingly difficult exercises where you have to apply what you've learned, completing code examples, which are executed on the Codeschool servers to let you see if you've got things right or wrong. You'll inevitably have forgotten some of the content in the video by the time you're completing all these code samples, which is why the cheatsheets and slides are so useful - using them and referring back to them helps reinforce the lessons you've just learnt.
If you're really stuck, there are increasingly explicit hints available on some difficult sections, but having each hint costs points from your score as you progress through the course.
This was enough to make me refer back to the course content when I could have just taken the easy option, whilst still leaving me with options if I couldn't get past a section of the course on my own.
When I first started with CodeSchool, the model of paying more than $50 for what looked like screencasts with a few bells on top did seem a bit steep, especially when the fantastic Peepcode screencasts are a fraction of the price. But when you consider that a comparable computer book will often cost north of £30 anyway, and be obselete much faster, it starts to feel much more reasonable. Right now, I struggle to find a better tool to help you get a good mental model of how the parts of a framework like Ruby on Rails work.
Becoming a subscriber
Partly out of curiousity, and partly because I'm already impressed what CodeSchool offer, I tried out enrolling to CodeSchool recently - you get access to all the courses for $25 per month, in addition to steady stream of incredibly well made CodeSchool screencasts at are only available to members.
In terms of honing my skills as a developer, it feels like the best $25 I could spend each month - meetups are great for find people to ask specific questions, and reference sites are great once you have a decent idea of what you're supposed to be looking for, but the high level knowledge codeschool gives me, combined with the practice of working though problems that don't feel ridiculously contrived, is something I only think I could better by having someone dedicated to tutoring me in person and pairing with me daily.
I'm pretty sure that would cost more than $25 bones per month, so for now, I can safely say I'm a happy Codeschool user, and I'd happily recommend them to anyone interested in learning Rails, or any Rails developers who want to get a good grasp of the current best practices when writing Rails 3 apps.