About a year ago I decided it was time to start learning RoR (Ruby on Rails) with the ultimate goal being that it’d replace PHP in most of my projects. While I’m still not at that point, here’s a top 11 list of Ruby and Ruby on Rails tutorials, tools and resources that really helped me out!
One thing I didn’t expect when I started with Rails is its community: for such a relatively young framework, its community of devoted followers is a reflection of the technology itself. Having said that, this is by no means an exhaustive list of the resources that are out there. This is what worked for me and hopefully helps you too.
Some people rather read to learn while other prefer to watch/listen to learn. I fit right in the middle. I feel each medium can sometimes better convey an idea or concept. This is where Rails Tutorial really scores for me.
Firstly, Michael is an excellent teacher, albeit very geeky. His screencasts are very informative without being over the top, they’re divided in tidy chapters and best of all he’s just plain good at explaining things. He stops and takes the time to explain all the important and somewhat harder to grasp concepts while giving you a great idea of how a professional programmer works. Tie this in with the book format of his tutorial and you’ve got a solid toolset to help you create your first Rails app.
Not quite sure about Rails? Then try this out: it’s interactive, no installation required, works right out of your browser and it’s actually pretty fun. Did I mention it was free? It gives you a great but brief overview of what you can do with RoR and how you can do it.
Ryan releases a screencast every week or so focusing on RoR and RoR associated stuff such as Gems and release updates. They typically run between 8 to 15 minutes long and are really easy to follow and usually easy enough to understand by even the novice programmer.
Read, use, learn, remember. Putting in practice what you learned is a great way to not only remember but understand capabilities and limitations. Try Ruby is a great example of this. Nothing to install and free: Dead simple but beautifully so!
Because Rails is basically an MVC(Model,View,Controller) framework for web development using Ruby it makes sense to know at least a little Ruby. Well this book by Peter Cooper is an absolute gem for learning Ruby. It’s very beginner friendly but some base knowledge of OOP(Object Oriented Programming) doesn’t go amiss. Well written, thick and chock-full of examples; I use it almost daily and not just to as an over-sized coaster for my end of day beer.
This list wouldn’t be complete without mention of the Ruby on Rails Guides. Constantly being updated and to the point. They’re a great reference when you’re getting started and remain useful as new versions of RoR come out and your brain starts forgetting stuff.
PRY is basically a fancy Interactive Ruby Shell (IRB) or Rails console for you to play in. It allows you to do all sorts of useful stuff like navigate through your code using everyday commands like ls and cd, runtime invocation to debug your application, get documentation right in the console for that new class/method you know nothing about… The list goes on and the best way to get an idea of just how powerful this gem is: watch these two awesome screencasts: Joshua Cheek from CodeSchool and Ryan Bates from RailsCasts
Perhaps not always the best beginner tool, but it sure shines when you’re starting to “get the hang of it”. Ruby on Rails official API is obviously a great reference when you need to get down to the nitty gritty.
I wont explain here why or how it works but rather why it works so well for learning. First and foremost, there’s a pretty good chance you’ll use these tools as a professional programmer. Secondly it allows you to write out in plain english(or whatever language you prefer) how you want your app to behave. From there, the tests will fail(since you haven’t actually written code) and kind of guide your development process. It’s the guidance and natural flow BDD provides that helped me learn Rails.
Very similar to the above RSpec is a bit more finer grain testing then Cucumber but they work hand in hand. RSpec is a Test Driven Development tool that allows you to write tests describing how your app should react to specific conditions. Once again, it really helps drive your project and allows you to refactor later without worrying you’re breaking your application.
Sometimes you can “Google it” all you want and still come up empty handed. Sometimes you just need somebody to listen… an outsider with a fresh outlook and bigger brain. In these cases, the #RubyOnRails channel on the Freenode IRC network is a great place to start. Crowdsourcing at its best, there’s a good chance the combined wisdom of gem cutting conductors will have an answer for you!
That’s about it! I’m sure there are probably many more great resources out there and I’d love to know about them. If you liked(or not) this post, let me know what worked for you and share the love!