I am a newcomer to Ruby and Ruby on Rails, so when I wanted to get started with Rails I looked around quite a bit for a good starting point. I finally settled on Michael Hartl’s Ruby on Rails Tutorial. I am about halfway through with the tutorial, and I am really pleased so far. This is a great tutorial for a lot of reasons, but the aside from just teaching Rails, he is also teaching good development practices such as:
The focus on testing, refactoring, and general good developer practices is important to me. These are practices that I have been using for a long time, but it is great to see them so much a part of Ruby on Rails. Just seeing that standard project hierarchy includes a place for tests tells you it is ingrained in Rails. I really loved this quote from the tutorial
If you ask five Rails developers how to test any given piece of code, you’ll get about fifteen different answers—but they’ll all agree that you should definitely be writing tests
As far as the Rails side of the tutorial goes, I think after my initial environment snafu (that’s all on me), things have been going great. I am starting to see more of how Rails implements MVC. MVC is obviously not a new concept, it’s been around for a while, but each framework and environment uses it differently. I also really enjoy the ordered structure of a rails project and can see what an advantage it is to have this kind of common project structure. I know ASP.NET MVC also tries to use a standard project hierarchy, but rails felt a little cleaner and more intuitive.
After some simple applications to get your feet wet and make sure your environment is good to go, the tutorial uses a micro-blogging application to slowly walk through the different capabilities in rails. The tutorial also explains some of the “magic” that goes on under the covers that Rails provides for you. This has encouraged me to route around (pun intended, thanks) to understand more of the magic. Aside from routing, we have also hit a bit on database integration and migrations, some CSS, and partials.
One thing this tutorial will not teach you is a lot of Ruby, and the author is quite clear about that. He provides some good references for learning more Ruby, but the focus here is on Rails, and he keeps the amount of Ruby necessary to a minimum.
I am about halfway through and am hoping to finish up in the next 2 weeks. It is a little slow going because as I learn I often go off to investigate different aspects of what I am learning. Finishing the tutorial will not be the end of the journey, but it certainly has helped get it going in a good direction. I recommend it highly to anyone interested in getting started with Ruby on Rails.