13 Comments

10 Reasons Beginners Should Learn Ruby on Rails

Woman at Computer

I often get asked the question: “What programming language should I learn?”

If you’re totally new to programming I highly recommend Ruby on Rails. In this post I’m going to give 10 reasons why I think new programmers should start with Ruby on Rails.

1. Ruby on Rails is a web application framework.

It is NOT the same thing as Ruby. Ruby on Rails is basically a collection of shortcuts written in Ruby that lets you build web applications – basically websites – really quickly. The benefit to learning a web application framework (like Ruby on Rails) before learning a programming language itself (like Ruby) is that you’ll make quicker progress in the beginning, you’ll have a real site that you can share with friends, and you’ll see how the things you’re learning actually apply to the things you want to be able to do.

2. Some of the biggest websites in the world are built with Ruby on Rails.

Basecamp, Airbnb, Bleacher Report, Fab.com, Scribd, Groupon, Gumroad, Hulu, Kickstarter, Pitchfork, Sendgrid, Soundcloud, Square, Yammer, Crunchbase, Slideshare, Funny or Die, Zendesk, Github, Shopify. Enough said.

3. Lots of startups are hiring for Ruby on Rails.

It’s not the most in-demand thing to learn for jobs in general – there are way more job openings out there for things like Java, PHP, even Python – but in terms of working at a startup, great Ruby on Rails developers are some of hardest people to find. This is mostly because…

4. Ruby on Rails is full-stack.

Unlike most languages – like (HTML/CSS, Javascript, Python, and SQL) – Ruby on Rails covers both the front-end and the back-end. That means one Ruby on Rails developer can build an entire web application, without having to rely on someone else to build the back-end or front-end for them. A nice side-effect of this is that if you learn Ruby on Rails, you’ll end up learning a bit of HTML/CSS, Javascript, and Ruby along the way. That’s not the case at all if you just start with any of those languages.

5. Ruby on Rails has a thriving community.

The Ruby on Rails community is one of the most active out there. There are tons of conferences you could go to, meetups going on in every major city on almost every day of the week, online forums like Stack Overflow, and you’re almost guaranteed to find Ruby on Rails developers at any hackathon you go to. That means it’s easy to reach out to someone if you ever need help.

6. The Ruby on Rails community is very beginner-friendly.

On top of being a thriving community, for some reason Ruby on Rails and Ruby developers are among the friendliest out there (this is purely anecdotal, I have no evidence for this). I suspect this has to do with how new the framework is, and so almost everyone remembers what it was like to be a beginner.

7. There are a lot of great online resources for learning Ruby on Rails and Ruby.

Literally dozens. Check out: the Ruby on Rails Tutorial, Rails for Zombies, One Month Rails (that’s me!), Treehouse, Lynda.com, Codecademy, Learn Ruby the Hard Way, Why’s (Poignant) Guide to Ruby, and many, many more.

8. Ruby itself is a forgiving language for beginners.

At the end of the day Ruby on Rails applications are mostly written in Ruby, so it helps that it has a few features that make it especially good for beginners to learn. Unlike Javascript and many other languages, you don’t need to remember to end your lines with a semicolon (;). Unlike Python and some other languages, whitespaces and tabbing doesn’t matter. A lot of the times, you can leave out things like parenthesis () and curly brackets {} and it doesn’t even matter! Ruby knows what you meant. On top of that, Ruby is very readable. Check this out:

5.times { print "Odelay!" }

This little example (courtesy of Why) does exactly what it says. Try reading it out loud. Five times print “Odelay!” Compare that to the same thing in Java:

for(int a = 1; a < 6; a++){
 System.out.print("Odelay!");
}

The second is much harder to read and understand as a beginner.

9. Ruby on Rails hides a lot of the stuff you don’t need to know.

You won’t need to know any SQL to use a database in your Ruby on Rails application. That is awesome. In most cases, Ruby on Rails will just make an assumption about how you want to do something unless you tell it otherwise. That makes it particularly easy for beginners who aren’t going to know or care about customizing every little thing about their application when they start. Another example is the beautiful way that Ruby on Rails treats pulling in third-party code and keeping it up to date for you. Also it does a bunch of security stuff for you for free, like preventing SQL-injection in most cases, cross-site scripting, session hijacking, and much more. Other languages assume you know how to do that stuff on your own. It also comes with it’s own server for running locally.

10. Ruby on Rails teaches you development best practices.

Because Ruby on Rails makes a lot of assumptions about how you should do stuff, it forces you to do stuff the commonly accepted way, at least at first. This includes RESTful resources, MVC framework, testing (it includes a testing framework by default), and much more.

These are only a few of the reasons I could think of for why a beginner should learn Ruby on Rails. Honestly, if you don’t already know about programming, most of this stuff will go over your head. But the point of this article is to convince more experienced developers to stop telling beginners to start with stupid languages like PHP, and also to show beginners that there are significant, and well though-out reasons for a beginner to start with Ruby on Rails, even if you don’t understand what they are.

If you have any concerns or questions that I haven’t covered, please post them below and I’ll try to respond as quickly as possible!

  • Matthew Boysel

    Any intermediate courses in the near future? Also, do you have more information on the HTML & CSS course (like a syllabus, projects, etc.)? Thanks!

    • Henry

      I took the One Month HTML course. I loved it. I had written a little bit of HTML/CSS before but this course expanded my understanding of it tremendously. It obviously won’t teach you every single tag, element etc. but it sparked my interest for front end code. By no means am I an expert, but thanks to this course I’m learning a lot more. I would highly recommend it to anyone.

    • http://www.ccastig.com/ Chris Castiglione

      Hey Matthew! The intermediate Stripe Payments is live… check it out if you’re interested in continuing to learn Ruby on Rails. course https://onemonth.com/courses/stripe-payments

  • http://netguru.co/ netguru

    “Ruby on Rails has a thriving community.” that’s sooo true! And here’s s tiny bit – a short tutorial for Ruby newbies https://netguru.co/blog/posts/all-you-need-to-know-to-start-with-ruby

  • uma

    I love the way you explained ruby and so am also going to join this community from today…

    • mattangriffel

      thanks uma!

  • beastwork

    # 4 – Don’t you think this is a little misleading. You are comparing apples to oranges…I know you’re trying to sell a service but sheesh

    • mattangriffel

      “#4. Ruby on Rails is full-stack.”

      I don’t understand what you mean by a little misleading. It is true that Ruby on Rails is “full-stack” in the sense that it covers the front-end and the back-end.

  • brainlara

    This is very nice post to learn Ruby on rails for beginner.

    Ruby on Rails Developer in india

  • Eric Meyer

    #9 seems a bit dangerous for new devs. Rails does so much with black magic that students may only learn how to stitch together other code, not write anything for themselves.

    • mattangriffel

      They’ll learn eventually. Everyone who is starting out starts by learning how to stitch together other code. You can’t teach someone something without hiding the complexity initially – just as we teach the Bohr atomic model to kids in school first even though we know it’s not correct because it hides the complexity of quantum physics that isn’t taught until later.

      • Eric Meyer

        It may be personal preference, but after ditching Rails for reasons outlined above I glad I took time to master raw programming in another language before adopting frameworks. Beginning on Rails may get people pushing snazzy things together faster, but fosters ignorance of the underlying logic. Many students don’t realize how much they don’t understand until leaving the comfort of the Rails way.

  • Harun

    hello;

    sir, I am from Pakistan. I am unemployed for a very long time. The rate of exchange b/w US$ & PKR is 100 plus ($1 =110 PKR) I want to learn Ruby on Rail. Could you please share your Curriculum / Syllabus in PDF with recorded lectures & recommended You Tube videos ?

    after a long research on Internet, I found that Ruby on Rail is what I should make my Career. I can attached my CV, Profile & picture if you want.

    If you could gift/donate Eversion of your book, it would be great help to me. You can use water mark like Not for Sale or Eversion only……..I don’t distribute it further without your permission.

    many sites like udemy or codeacademy are Free just for beginning then they charge really high price for training.

    please help me !

    regards