This year, my technology goal is to learn Ruby on Rails.
I often try to learn new programming languages, averaging around one a year. Sometimes it is a matter of coming back to a language I haven’t used in a while, other times it is learning a new framework.
After using Ruby for some scripting last year, I decided that Rails was a good choice to learn as a framework this year. Two things convinced me.
Firstly, lots of web innovation appears to arise from the Ruby community. Cucumber is one that has particularly caught my interest.
Secondly is Heroku. This is simply an awesome way to bootstrap a project. No mess, no fuss, code - deploy - repeat. It means I can launch an early version of the app with minimal investment of time or funding.
To dive in deep on a platform like Rails, I’ve taken a few steps:
- Books – Admittedly still on order, I’m investing in some Rails books, as I find books provide broader coverage of topics than blogs alone.
- Blogs – My RSS reader is being filled out with Ruby and Rails blogs. I subscribed to 20 odd to start with and will curate them over time.
- Podcasts – The Rails community is served by a number of great podcasts and screencasts. Railscasts is a great entry point and I added others for broader coverage.
- Twitter – Where I find bloggers or people that are influential in the Rails community, I add them to my Twitter list.
- Friends – To start the process, I also asked a few friends who were Rails experts for suggestions of where to start. Pete put together quite a good list.
- Tools – Installing Rails was a good start. I also added TextMate to my tool collection. There are some nice features that may cause me to make changes to my .vimrc one day.
All of that is the easy part. The next step is to actually write a bunch of Rails code. So far I’m tinkering with example code. However, I do have a larger project in mind which should provide the incentive to carry through. Details on that are for a later date.
If there are sources of good Rails info that you can recommend, please let me know either in comments, Twitter or email.