After a few false starts trying to get started with Ruby, I made a commitment this year to dive in with both feet and really learn it. I decided on the notion of a “season” to dedicate to getting started with Ruby, and I think my initial dive has come to an end. When are you ever done learning about a language or a technology, probably never? And I am no more done learning about Ruby than I am done learning about C#, Java, Python, Perl, Javascript, or any other language. Well, maybe Perl (ha, ha, ha).
So my introduction to Ruby and Ruby on Rails has not disappointed. As expected, the community is vibrant and on the whole focused on real quality and craftsmanship. There is no shortage of great resources out there to help a developer come up to speed on Ruby and Ruby on Rails. And in that spirit, I wanted to take a snapshot on what I have learned, what resources I have found helpful, and where I might focus in the future.
Learn Ruby First
It is surprising easy to get up and running in Rails without really knowing much Ruby, just follow the wealth of examples and tutorials that are already out there. I would argue strongly against that approach though. Ruby has some really great features, especially if you are new to dynamic languages. There is a an expressive syntax, great features like blocks and iterators, and incredibly rich set of standard libraries and 3rd party gems that allow you to build on.
Here are some of the resources I used to get up to speed with Ruby
Ruby Koans - Well structured introduction to the various features of Ruby. A great intro to the language that you can bang through pretty quickly and refer back to when questions arise. I have a lot of experience with Test Driven Development, but if you are new to TDD this will also get you thinking about TDD and how to write tests for your code.
The Pickaxe Book - Great resource on features of the Ruby language
The Ruby Way - Extensive resource for ways to solve several common programming tasks using Ruby. This is also a great early introduction to writing in a Ruby-esque style, which was really helpful for me coming from C#.
Ruby-Doc.org is another good reference for features about Ruby, especially the core API and standard library.
Moving on To Ruby On Rails
There is just an incredible wealth of resources to getting started with Ruby on Rails.
I spent a lot of time on Michael Hartl’s Ruby on Rails Tutorial. I loved the focus on TDD and good developer practices. Other added benefits to this tutorial is it is a gently introduction to git and even shows you how to push your code up to heroku. I know this is a resource I will continue to come back to again and again.
As much as I loved the Hartl tutorial, I wish I had actually started with Rails for Zombies. Rails for Zombies is put on by Code School, which has a lot of content available for purchase, but the Rails for Zombies course will give you a good introduction to Rails and it’s free. You can blast through it pretty quickly, gives you a good sense of the basics, and it really sets the table for a deeper dive into Rails. I actually did this after spending a lot of time with the Hartl tutorial, but doing Rails for Zombies provided a lot of “a ha” moments as I went through it.
RailsCasts has a ton of great content, both free and by subscription and is just a fantastic resource. The screencasts are typically anywhere between 5 and 15 minutes and cover a huge range of topics.
I can’t get enough of the Ruby Rogues podcast. These guys do a fantastic job and have great chemistry. I am shocked that they can do all of this every week, and it has made my commute a lot more educational and enjoyable. They have some great guests and even for a newb I find the content informative. Some stuff goes past me, but I usually go to the website afterwards and follow up on the links for the list of topics discussed on each episode.
Ruby 5 is another great podcast. It serves a different purpose than Ruby Rogues. Ruby 5 is more of a news oriented feed of what’s happening in the Ruby community, what gems have been released, what books have come out, etc.
Other great resources for learning about Rails are the Rails Guides and Rails ApiDock.
Get Involved in the Local Community
I am fortunate that in Boston there are a lot of resources for meeting and learning from other people in the community.
Boston Ruby puts on some great talks each month and also does hackfests a couple times a month. I have been to a few talks, but really need to get to the hackfests. They also have a very active mailing list that is a great resource for technical issues.
The Boston Ruby on Rails group meets more sporadically, but seems like a great group. I went there for a series of lightning talks just before starting the Season of Ruby and there was a spirited Q&A after each of the talks. I am sure that helped motivate me.
I also went to a few workshops put on by thoughtbot that I got a lot out of: the Web Design and Development Process, and Intermediate Ruby on Rails.
Where to Next
The simple answer is just write more code because that is the best way I know to improve. There is still sooooooo much to learn.