The Rails Learning curve.
I’ve been working with rails for about 2 years now, and by that I mean I made my first attempt at a rails application about 2 years ago. Since that time I’ve learned a lot, a lot about rails and even more important a lot about ruby. I know there are people out there that see rails and all the cool stuff that is being done with it and think “hey that looks cool I should give it a try”. So they pick up a copy of the rails book, or find a tutorial online and give it a try and “wow!, this is so easy” and they see the original rails video and they see David write a blog in a matter of a few minutes “damn, this stuff is like magic, so quick and simple!!!!”. So they dive in.
A little while later they have a simple app that does some simple things, and they suddenly come to a realization. They don’t really know how any of the stuff that they have been doing really works.
They have hit the first hump in the rails learning curve.
See the thing about rails, is that to really know what you are doing…you kinda need to learn ruby.
Lately I’ve been helping out some younger developers at my current company who are switching from Cold Fusion to work with our Rails projects. Every time I watch someone starting to learn rails I see the same thing (this includes my own experience).
The learning curve:

You start off great, you’re learning rails things are amazing you can write facebook in a half hour…then you hit what I like to term “the ruby wall”. You decide you need to do something…it’s not in the book…you start trying to figure it out and wham! All this ruby code and you don’t quite know what to do.
Now you are on the second part of the graph…the long slow climb. You see, to become really proficient with rails, to handle things like plugins, rake tasks, deployment, and more advanced rails stuff…you need to know ruby. So now you start learning ruby.
This takes a while – you are learning ruby, and other things about rails and gradually you become more comfortable with things.
Eventually you hit the third part of the learning curve – Proficiency. You’ve been working with rails and ruby for a while, hopefully you’ve done some non-rails work and really focussed on learning ruby seriously and you are moving along fine. From this point on you can pretty much figure out how to solve most problems, and you can choose to settle or to pursue mastery.
The last segment of the curve is what I call the “Road to Mastery” – if you want to be one of those gurus one day, then you can start along this road – it’ll be long and hard…but it is rewarding.
Well there you have it, the journey. Knowing where you are on the curve can help you figure out how to learn faster and better.
So if you are looking at getting started on rails just remember one thing…rails is ruby and ruby is power.
My next entry will point you at some good resources for building up that ruby knowledge.
Good luck grasshopper,
Paul