Since it makes sense to split the learning of the ruby language and the rails framework, this is what I am doing in the next sections. Some rails guides do also cover a section for ruby newbies, but I would recommend spending more time just with ruby, so thereafter you know when you are dealing with rails stuff or it is purely ruby. At the same time, if you land on ruby just because you’ve heard about RoR then go ahead and take a peek on some of the app tutorials, at least to check out the power of this framework. But then don’t forget to come back and do your homework on ruby. You will not regret.
In this category I consider courses that offer a ruby interpreter (irb) online. If you are like me, who can spend hours reading a coding book without opening the interpreter, then you should force yourself to take one of these two courses. It will challenge you more and it does fix the concepts faster than just reading.
On-line video tutorials
Ryan Bates has done this amazing work on going through a lot of useful tutorials with screencasts. I recommend you start here once you have built your first app following other tutorials mentioned in this page.
Why’s (poignant) guide to ruby – http://mislav.uniqpath.com/poignant-guide/
If you are ready to take the challenge for the most amazing mix of comic, literature and coding all dressed up in a surreal coat, this is your chance. I think this is a good one for advanced programmers. Written by misterious _why
The Bastards Book of Ruby – http://ruby.bastardsbook.com
Written by journalist Dan Nguyen, this is a highly practical approach for those who want to learn ruby to mine data and do useful stuff that helps on their research. It is not so academic as others and, although has not been finished, covers pretty well a lot of ruby topics.
Learn Ruby the hard way – http://ruby.learncodethehardway.org
This one seems to be based heavily on a python tutorial, so I don’t know how much it can be affected by that… I just started looking at it so I cannot give a full opinion.
Learn to program – http://pine.fm/LearnToProgram/
In case you have no prior experience
Curation of resources
15 Things for a Ruby Beginner – http://www.jasimabasheer.com/posts/meta_introduction_to_ruby.html
This list of resources written by Jasim A Basheer in his blog is a great starting point, and gives a lot of good hints both for new and experienced programmers.
How to learn ruby – http://brandon.dimcheff.com/2009/02/05/how-to-learn-ruby.html
Agile web development with Rails
Rails deep dive. This ebook is available for free in rubysource.com. The app in the tutorial is a bit different from the default one as it uses mongodb and haml instead of erb.
Learn to program – online version Above
The ruby language web – http://www.ruby-lang.org/
This is the complete documentation for ruby, an equivalent to what php.net means to the PHP community. If you come from other languages it is interesting to go through this section http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/
Meeting points and tools
Ruby Gems – http://rubygems.org
Gems are ready-to-go packages in ruby that help you to gain time and not reinvent the wheel.
Rails is a ruby gem itself. Actually a set of gems as explained in the book deep into ruby.
You can see recommended gems here : http://blog.teamtreehouse.com/10-must-have-ruby-gems
GitHub – http://www.github.com
In a similar way, you can learn a lot and take a shorcut by taking a look at GitHub, where already 14% of the hosted projects
are written on Ruby.
The Ruby Toolbox – https://www.ruby-toolbox.com/
Loads of gems and projects to use or get inspiration.
Learn Git – source control software
Developing with a version control system is essential. Git is the choice vs other alternatives such as Svn.
Try Git http://try.github.com/.
Offered by GitHub, this is an excellent interactive tutorial. What is GitHub then? GitHub is the cloud hosting for your code. It can be public or private.
Another good resource for learning git is this book freely available online: http://git-scm.com/book/en/
Ruby Weekly – http://rubyweekly.com
Ruby Source – http://www.rubysource.com
Rails is a successful MVC framework for ruby. Well, actually not a pure MVC framework but a model-2 one, as this article discusses well http://rubysource.com/getting-started-with-mvc/
The guys at CodeLearn have done a great job to put together a whole RoR environment. You can develop your first app directly from the browser without any local installation!
Example of applications
Getting Started with Rails:http://guides.rubyonrails.org/getting_started.html
This is probably the shortest app tutorial out there. It is hosted within the RailsGuides which represent the “official” documentation guide to Rails. In the same site you have the most valuable resources on models, views and controllers. I would highlight two that I consult very often: ActiveRecord (rails ORM), rails routes (part of the controller section).
Ruby on Rails Tutorial – by Michael Hartl http://ruby.railstutorial.org
A very insightful tutorial covering since the easiest application to a full-fledged twitter-like app. I found it excellent, but a bit difficult to follow at the end since f.e. testing is something I am not yet prepared to deal with.
The RailsApps Project: http://railsapps.github.com
Excellent drive-tru apps, and code available in github
Objects on rails –
This is an online book, or “notes” like the author says, where you can find the typical blog app explained with a focus on object oriented programming. Avdi Grimm is also in charge of the tutorials in RubyTapas http://devblog.avdi.org/rubytapas-episode-list/
A more generic curse, which deals with all the topics in web development, can be found here http://www.stanford.edu/~ouster/cgi-bin/cs142-fall10/lectures.php
Another excellent course offered by Stanford University and hosted in Edx is https://www.edx.org/courses/BerkeleyX/CS169.1x/. It is aimed at learning how to build Saas software, and RoR is the framework of choice.
A tutorial by Stephan Wintermeyer. It is a very complete guide from start to very advanced concepts. Also available in German: http://xyzpub.com/en/ruby-on-rails/3.2/
Hosting Ruby on Rails apps
Heroku – http://www.heroku.com
EngineYard – http://www.engineyard.com
If you are deploying with ftp, using DeployHQ can be a great option. This tutorial explains how to configure DeployHQ with your git repository: http://net.tutsplus.com/tutorials/tools-and-tips/how-to-use-git-with-ftp/
Cool now, what’s going on?
Now you would like to see what are toys are other people building with these tools.
Rails Rumble – http://www.railsrumble.com
This is a contest to build an app based on rails or similar ruby rack software in 48 hours.
Pair programming: tired of being a lonely developer? Go and find another programmer that can develop at the same time. Http://www.rubypair.com