Late last year, I pushed my 30ᵗʰ web application to the web. Its official (I thought), I have finally learnt Ruby on Rails… I am now a real web developer.
But getting there wasn't easy. In fact I could say that learning rails has been the hardest, most-frustrating thing I've ever done in my life.
Not because rails itself is hard, but because before I learnt rails, I didn't really know how to code. I didn't even really know what rails was.
All I could gather from the articles I read online was that Ruby on Rails was the easiest thing I could learn if I wanted to build web applications, so I bought a few books and decided to dive in.
I had no clue what I was getting into, in fact if I realised what was ahead, I probably wont have pressed forward (at least not without more help).
I didn’t know what to learn or how to learn it and I pretty-much just bullshitted my way through the entire learning process. With trial and error being the only teacher I could turn to at the time (before I found a mentor), I spent most of my time heading towards dead-ends. Learning things that would never turn out to be useful for me.
My goal with this article is to help you avoid much of this frustration and time-wasting. I have gone through almost every tutorial out there, and I know what works and what doesn't… Or at least what worked for me.
Hopefully, my experience can help make your learning a little easier. Good Luck ☺.
First of all, (lets start with) the things that won’t work.
- CodeSchool — Codeschool has many great courses for beginners and intermediate devs, but their rails course isvery weak. It is absolutely terrible if you start learning rails here and if you already know rails, you wont find it very useful.
- OneMonthRails — This guide could have been really good. But because they don’t really explain what’s going on (they just build without really explaining what they are doing and expect you to code-along), you wont be able to understand what is happening.
- Michael Hartl’s Tutorial — This is by far the best rails tutorial on the web. But as a beginner with no previous web development experience, YOU WILL DROWN. Stay away until you get more experience, then you will LOVE this guide.
Before you move forward, I would like to kindly advise you to GET A MENTOR. Teaching yourself rails is not an easy task. It will push you to the brink of tears over and over again. And without someone there to help you when things get tough, there is a very good chance that you will give up.
Anyway, here is the easiest and fastest way to learn ruby on rails by yourself… Step by step:
Step 1 — The basics of Ruby on Rails (for beginners)
HTML and CSS
This article assumes that you already know basic Html and Css. If you don’t, just head over to lynda and take these two courses
You will never be able to build anything meaningful with the Ruby on Rails framework if you dont know ruby. So it is important to learn the basics of ruby before you start learning rails
- Learn to Program with Ruby — is the very best introduction to programming and the Ruby language that I have ever been able to find. Start here.
- The Pragmatic Studio Ruby course — is another excellent introduction to programming with the ruby language. Its quite pricey, but worth it.
Ruby on Rails
The Ruby on Rails framework allows you to build web applications very easily. Learn it properly, and you will be able to build anything you can imagine.
- The Pragmatic Studio Rails Course — is currently the best introduction to rails I have ever been able to find. Its really awesome and definitely worth the price
- The Lynda Rails Course — is another complete and effective introduction to Ruby on Rails. You might get confused with the database configuration though, as they use MYSQL which can be a little confusing. If you do, just send me an email (andre[at]codequad.com) and I’ll be glad to help you out.
- Try Rails — Its a free online Ruby on Rails workshop for beginners. It’s new and well worth trying
Step 2 — Intermediate Ruby on Rails
Take your ruby knowledge to the next level, and learn how to build more complex (non-trivial) web applications.
- Beginning Ruby — get a deeper understanding of ruby, so you can start building useful (non-trivial) applications.
Ruby on Rails
Dive deeper into ruby on rails and learn how to add advanced features to your web applications(file uploads, user managements, friending and following, login and logout, E.T.C.)
Step 3 — Advanced Ruby on Rails (Entering godMode)
Enter godMode. Get a deep understanding of both Ruby and Ruby on Rails, and acquire the skills of a cutting-edge web developer.
- Practical Object-Oriented Design in Ruby — Learn the basics of Object-Oriented Programming with Ruby and begin to understand how to solve complex problems, build large applications and write smart maintainable code.
- Eloquent Ruby — If all the previous books taught you the Ruby language, this one will make you a native speaker. You will learn “The Ruby way” of thinking and problem solving and develop a more complete understanding of ruby.
- Metaprogramming Ruby — The work programmers do can sometimes seem like magic when you look from the outside (How did DHH create rails?… Magic). This book will give you the power to create such magic.
- Crafting Rails 4 Applications — this will help you understand the inner workings of the Ruby on Rails framework and give you the skills and understanding you need to tackle complex projects and build large-scalable web applications.
As you try and teach yourself ruby on rails, you will get in trouble many times. Your code will break, simple concepts will confuse you and you will be tempted to give up many times. Don’t. NEVER GIVE UP; because that is the only way to learn rails on your own.
If you get confused, put the book down, take a break and pick it up again. We all went through this hellish phase and came out stronger at the other end.
Get a Mentor
Having a mentor will go along way to alleviate most of this pain. Why spend 4 hours trying to understand what your ruby book means by “Single Table Inheritance” when your mentor can explain it in 5 minutes.
Did you run into an error that you don’t understand? Why spend 2 hours looking for a solution online when your mentor can show you how to fix it?
These little time-savers are exactly why students with mentors stay motivated and are able to learn much faster than those who teach themselves.
One More Thing
If you are trying to learn ruby on rails right now and nothing has worked for you so-far, we’re running a free online Ruby on Rails workshop that just might help you. Checkout www.tryrails.com