How long does it take to learn Ruby on Rails?

I have no prior programming experience. This week I have started to learn Ruby. Right now I am using codecademy, which doesn’t seem like it’s teaching me anything useful so I am hoping this small lines of coding will be important down the line. I will work on this M-F, for about 3-4 hours each morning.

I am curious as to what’s the average amount of time it takes for a individual learn to learn Ruby and is able to build things on their own?

My intention for learning is that I am tired of hiring developers and waiting for them to finish the product. I like to have social networks created, so the essential features of those websites are stuff I am looking to build (profile, inbox, activity feed, photo albums, newsletter, photo rating, etc).

I know I will definitely be posting a lot on Ruby forums seeking for help. Hopefully I can come across a mentor to help speed up the process :slight_smile: So yes, back to the question. What is the avg time it takes a person to learn to code Ruby?

Hi there,

I don’t think there’s any hard or fast rule to this.
I’d been learning ruby for about two years when I got into Rails.
I then read a couple of books, hung out on Rails forums, listened to Ryan Bate’s Railscasts a lot, then got the chance to built my first web app.
It wasn’t very exciting, it consisted of a web form, lots of validation, a bit of JavaScript and the dynamic generation of a PDF for each applicant.
Since then I’ve gone on to write some more complicated apps, but this original app has become a pet project and I rewrite it every year or so.
I am always surprised at how bad my code from twelve months ago actually is.

So,to answer the original question: it depends. Personally I needed about two and a half years experience from the point I first opened a Ruby book until I could produce anything decent in Rails.

What about everyone else?
It would be nice to hear other peoples’ views.

I can’t say how long it would take you. I had experience with other languages (and working from the command line) and I’m sure that helped me pick up Ruby more easily.

The basics may seem rather pointless I guess, but they are important to learn. Writing your first “Hello World” doesn’t satisfy the need to have a feeling of accomplishment for very long.

But once you have a fairly good grasp of the basics - variables, data types, conditionals, loops, etc. - there are good follow-along tutorials that should help with the need to “see something”.

The Rails framework is a beast unto itself. I don’t particularly care for it, but very many do. Probably more important for RAD and I’m more a hobbyist.

Even if you don’t become a programmer, learning it will only help, if only in providing better communication with those you hire.

I don’t think there’s any hard or fast rule to this.
I’d been learning ruby for about two years when I got into Rails.
I then read a couple of books, hung out on Rails forums, listened to Ryan Bate’s Railscasts a lot, then got the chance to built my first web app.
It wasn’t very exciting, it consisted of a web form, lots of validation, a bit of JavaScript and the dynamic generation of a PDF for each applicant.
Since then I’ve gone on to write some more complicated apps, but this original app has become a pet project and I rewrite it every year or so.
I am always surprised at how bad my code from twelve months ago actually is.

So,to answer the original question: it depends. Personally I needed about two and a half years experience from the point I first opened a Ruby book until I could produce anything decent in Rails.

What about everyone else?
It would be nice to hear other peoples’ views.

Two years, really…

Did you have any prior programming experience?

I have spent about a month learning ruby and rails. Maybe I’m being a little optimistic but now I feel like I’m at a point where I could build an application with it. However, before starting to pick-up this Ruby stuff I had several years of experience with PHP and MVC. Not to mention have programmed in Java, Python and C. Having a lot of experience with MVC the stuff just really seems to click. Without a doubt I feel like I’m at a place where the best way to learn more is start to build something myself keeping the documentation close. Most of the time I’m reading the documentation and think to myself so that is where Symfony 2 gets that from. I’ve been an MVC fanatic for about 2 years now so that probably helps. I don’t think the most difficult part is learning this stuff for me. What will be far more difficult is getting others I work with to buy into it considered we already have over a decade of software using other tools.

Well ruby and rails is programming. Considering a traditional college degree in programming itself is 4 years it is hard to say. I mean some people do just get programming but still without any programming knowledge it is going to be a tough road. Things get a little simpler once you already know one C style language or programming fundamentals in general. However, lacking those the first language is going to take a lot of time to pick-up. That is just talking about programming aspect and we haven’t even talked about rails yet which is really a whole other topic. It is going to be a long road… that is really all I can say.

Hey there oddz,

Nope! None to speak of. I did a degree in modern languages.
Before picking up Ruby I had touched very briefly on PHP and a tiny bit of in-line JavaScript.
The whole OO concept was foreign for me and design patterns … well, that’s what you’ve got on your wallpaper, right?

And having never learnt programming fundamentals in a structured way is still a source of frustration to me today.
But in those days I used to look for the first solution that worked and use that. It was only gradually that I came to understand that this was a bad idea.

You’re not being optimistic. Once you know how to program, the syntax of Ruby is not hard to pick up, on the contrary, it is very elegant and easy to learn.
And if you understand MVC, then surely Rails is a breeze, too (at least to get started).

I think to refine my original answer to the OP’s question, I would still say “it depends”. Learning to program well is hard and requires a lot of dedication, but getting to a point where you can type rails g scaffold my_app and generating a complete CRUD application, is not too difficult.

This, I think, is an excellent point.

If you’re familiar with web programming you should be able to be productive with Rails in the time it takes you to read http://guides.rubyonrails.org/

My previous workplace was a .net shop and they decided to build a new Rails application from scratch with a team of four, I was the only one who had experience with it and that was only a couple of toy applications and a few months playing. The three others picked it up almost instantly, knew which questions to ask and found answers in a timely manner. The Rails community seems to agree a lot about the right way to do most things so you’re pretty safe running with the popular solutions.
If you know how you want to solve something programatically then it’s really easy to find a solution in Rails with Google or those guides.

I reckon 1-2 months is about right to learn the Rails way of doing things and be productive.

I’d allow a dedicated 6months to learn the rest (HTML, CSS, Javascript, SQL, OO).

You won’t be amazing, even with 6-8 months of programming experience but you will be able to get things done.
It takes many years to become a good programmer and spot things that cause problems. Rails helps you in this regard by making a lot of good decisions on your behalf upfront.

My intention for learning is that I am tired of hiring developers and waiting for them to finish the product. I like to have social networks created, so the essential features of those websites are stuff I am looking to build (profile, inbox, activity feed, photo albums, newsletter, photo rating, etc).

You might be making a really wrong assumption here that programming is easy.
I don’t know your developers - but I will say the obvious, that developing a product takes time.
Not trying to be a wet blanket, but if you don’t have a passion for it you will probably give up.

I know I will definitely be posting a lot on Ruby forums seeking for help. Hopefully I can come across a mentor to help speed up the process.

Post away, we’re here to help :slight_smile: