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. As you can see, we were not kidding when we said biggest websites in the world.

3. 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. This is especially great for beginners.

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 and that is okay. 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.