Ruby is one of the most popular programming languages in the world—in part because it’s consistently rated as one of the easiest languages to learn for new programmers. A large part of Ruby’s appeal is that it is built to make programming enjoyable for the programmer: It’s elegant, economical, and incredibly well-supported.

But it’s also extremely powerful and versatile, which has helped it to stand out in the realm of web development. Ruby is the language of choice for many businesses on the web, from small startups to giants like Hulu and Airbnb.

In terms of career prospects, Ruby is a good bet. Developers are earning, on average, over 70K per year in the US, and well over six figures in the coveted senior dev roles at the top end of the pay scale.

But what, exactly, does a Ruby developer do? And what do you have to know to become one—or to go beyond entry level roles and make it all the way to senior developer? That’s what we’ll tell you in this article.

First things

Let’s start with the obvious. If you’re going to be a Ruby developer, you’re going to have to learn Ruby—and learn it well.

If you’re looking to learn Ruby programming and you have zero prior programming experience, one of the   best resources around is Zed Sh aw’s Learn Ruby the Hard Way. It’s available online for free, and is supported by a lively web forum of people currently taking the course.

One word of warning: the name of the book is no joke. Shaw’s teaching method is to give exercises and assignments that force you to figure out exactly why and how Ruby does what it does—and also why it’s not working when something goes wrong.

Yes, this can be frustrating, and is probably not the best method for everyone (especially if you don’t like self-study). But if you stick with it, you’ll be rewarded with a deep understanding of Ruby and of programming in general. You’ll also learn the most valuable of all programming skills: figuring out the answer on your own.

Another course that offers an entire Ruby learning track—with a bit more help and support than Shaw’s, is found at the online coding school Team Treehouse. Treehouse’s subscriptions start at a fairly reasonable $25 a month.

This track covers all the basics of the Ruby language and also contains a number of projects where you’ll build actual apps using Ruby—which can be great portfolio builders if you’re looking to break into programming or change careers.

Junior Developers

If you want to start working with Ruby, there are a few core skills beyond the language itself that you should learn. If you’re just starting out, the following four learning goals should be near the top of your list.

Learn OOP. If you want to be a Ruby programmer, you’ll have to learn more than just the grammar and syntax of the language. You’ll also have to learn how it’s actually used to program. Ruby is what’s called an object-oriented programming (OOP) language—which is more a style of programming than anything else.

You should start by learning the best practices for object-oriented programming and understanding its core concepts. It can be a bit tricky at first, but once you get the hang of it, it will start to seem like second nature to code this way. There are a number of good books available online that focus on object-oriented programming concepts using Ruby as a basis.

Learn a Framework. Ruby is inherently flexible and powerful, but it dominates in the area of web development in large part due to the excellent frameworks available for the language. A framework is basically just a collection of ready-to-use code that does all sorts of useful things—a way to help developers create new apps quickly and easily, without having to re-invent the wheel to get the job done.

From lightweight frameworks like Sinatra to the ever-popular Ruby on Rails, you have a range of options to choose from, with many online courses and books to get you started. If you look at some frameworks and decide that Rails is the one for you, you may want to check out our complete guide to learning Ruby on Rails.

Learn HTML, CSS and some JavaScript. Because Ruby and Ruby frameworks are so often used by programmers in web development, a good Ruby dev should probably learn the other major tools of front-end web development: HTML, CSS, and JavaScript.

HTML and CSS are how developers create great-looking web apps that work well in all sorts of different browsers and on different devices. There are loads of useful tutorials and YouTube series devoted to the subject to get you started.

If you’re really into expanding your knowledge of computer programming, you could just dive into learning JavaScript as a language in its own right. But if you’re just trying to learn enough to be functional as a Ruby developer, you probably want to check out jQuery, which is a JavaScript code library designed to make coding in JavaScript fast, effective—and painless.

Learn Git. Once you move beyond coding practice and book exercises and start writing actual, functional programs, you’ll need a way to store these programs, show them to prospective employers and clients, collaborate on them with other people, or create various versions of your software.

The way you do this is by using a version control tool. There are several popular ones out there, but Git is one of the most widely used and is a great place to start learning how software development works in the real world, with a range of tutorials available online.

Senior Developers

The skills required of a senior Ruby developer are determined by the nature of the job itself. So what does that mean, exactly?

Well, as you move into more senior programming roles, you will find yourself responsible for larger projects, you’ll probably work on bigger teams of programmers, and you might even be in charge of those teams!

And, just like any senior job that brings increased rewards, your responsibility for the final product will increase as well. In order to be able to really take ownership of the software you and your team create, you’ll need some higher level skills.

As with junior dev roles, there are many things that a senior developer should be able to do. But pay special attention to mastering the following three skills in order to prepare yourself for one of those juicy, top-end jobs.

Get Good at Testing. The first major skill that you’ll need to master in order to take on a senior role is testing. While testing is certainly a part of writing good software at any level, and while many people swear by test-driven software development as a basic philosophy, a deep understanding of testing becomes all the more important when you take on a senior role, since the reliability of the code is ultimately your responsibility.

This means you should become familiar with best practices for testing Ruby code and with the thinking behind test-driven development in order to make sure that everything you and your team produce is safe, robust and dependable. A nice introduction to the issue of test-driven development can be read here, and a fuller guide to testing in Rails is available here.

Know How to Handle Scaling. Another issue for senior developers to tackle is scaling. As a junior developer you may only be working on a smaller piece of code, just trying to get it to work without really having to worry about the big picture.

You might never have to deal with the hard realities of deploying large apps that can face massive spikes in traffic and exponential surges in the number of users. But when you take on a senior role, guess whose job it is to worry about all of these “big picture” problems?

For Ruby developers, the issue of scaling is especially important, because critics of the language have cited scalability as its one major weakness. Ruby loyalists have fought back against this charge, saying that it is a vast oversimplification, but admit that some of the criticism can be warranted if Ruby developers don’t understand how to deal with the challenges of scaling up a web app. A great introduction to the issue can be found in this conference talk.

Master the Data. A final key to senior dev jobs is knowing more than a thing or two about database management. Senior devs, way more than their junior counterparts, are responsible for understanding what’s going on in the various layers of the software stock.

If you’re going to take on one of these roles, understanding the storage and manipulation of data is crucial. Doing a course in SQL, the language of database management, and a tutorial in a database engine like PostgreSQL or MySQL, is a good way to start to understand what’s involved.

Getting Started

As you can see, there’s a lot to learn if you want to work as a Ruby developer, with even more ground to cover if you hope to land a senior dev job. But if you’re new to programming, take heart!

Ruby is arguably the easiest major programming language for a beginner to learn—and powerful frameworks like Rails and Sinatra mean that, with a little hard work, you could be weeks away from creating your very first web app.

In fact, since the language was created with the programmer’s happiness in mind, the biggest risk—as thousands of Rubyists will tell you—is that once you start programming in Ruby, you may just fall hopelessly in love with it.