How to Learn Ruby on Rails in 2018, the Ultimate Guide

How to Learn Ruby on Rails in 2018, the Ultimate Guide

In a previous post, I’ve covered what Ruby is used for, so I won’t repeat that here. This post is about the Ruby on Rails framework, not the Ruby language.

But, if you want to learn Ruby, you can checkout out my other post on How To Learn Ruby.

What is Ruby on Rails

Ruby on Rails is a web framework, developed on top of the Ruby language that focuses on building web applications quickly, and with small teams. It does that by focusing on conventions over configuration (or great defaults).

That means you can skip on the repetitive parts of your application, and focus your attention on the parts that make a difference.

For example, most web applications have users and need things like registration, login, logout, remember me, and password reset functionality. You can have all that in Rails by writing a single line of code.

Imagine having that kind of pre-built functionality for all the different areas of your application. How much time woult something like that save you?

And it’s not like you get something pre-built that you can’t customize to your liking. You can customize everything as long as you’re willing to trade your time for it.

Why learn web development with Rails in 2018

While Ruby on Rails was first released in 2004, and a lot has happened since then, it’s still relevant in 2018.

Ruby on Rails was built with a specific goal in mind. To make websites. That is at its core. So, everything it does is to optimize that process.

However, there are a few specific reasons why you might want to choose Rails over other frameworks.

Rapid prototyping

If there is one area where Rails raises above its competition, it has to be this one.

You can move extremely fast with Rails. You can get from idea to implementation in a matter of days, or weeks (of course it depends on the complexity of your idea).

Building Minimum Viable Products (MVPs)

If you’re in the early stages of trying to find product/market fit, or you want to ship something to your customers, you can do that very fast.

Check out these other articles if building an MVP is something you’re looking for.

How Much Does It Cost to Build a Minimum Viable Product (MVP)? 5 Things You Need To Know Before Building Your First MVP

Finding a well-paying job

If all you want is to get hired and earn a good salary, Rails is a good way to make a living.

The TIOBE index places Ruby in the top 15 technologies.

Salaries are high, and there is still demand for Rails developers (check out Demand for Ruby on Rails is Still Huge for an interesting analysis).

Ecosystem

There’s a vast (and growing) community of developers contributing to the Rails ecosystem that you can leverage for building your applications.

Taking a quick look at StackOverflow, there are 294652 total questions (and 378 this week) for Rails. Plus another 196711 for Ruby. This is important, it means you can get help really quickly when you get stuck on a problem.

Another useful thing is the number of libraries you can use in your code, and Ruby has about 9495 of them.

If all else fails

If none of those reasons make Rails a compelling technology for you, it will at the least teach you a few useful concepts. Here are a few of them.

What is Ruby on Rails bad at

As previously mentioned, one of the framework’s strengths is rapid development.

However, from my experience, working with large Rails projects, I can tell you that there’s one thing that all large projects have in common. And that is deceleration. As projects get larger, development gets slower and slower.

If that is something that happens to you or your team, you might want to read Is Your Rails Team Slowing Down? Here’s Why, And What You Can Do About It.

This comes very often a surprise for managers because they chose Rails as a high-speed development framework.

Of course, this is not a problem with the language. It’s more of a problem with how it’s perceived.

While Rails allows you to move fast, it doesn’t mean you’ll get scaling as a bonus. You need to build that yourself.

What is Ruby on Rails used for

One of the hardest problems startups have is finding product/market fit. In other words, if people don’t want your product, you don’t have a product (you don’t even have a business).

So what Rails has managed to achieve is to help startups find product/market fit relatively quickly and with a relatively small team (very often just one developer).

Examples of Ruby on Rails websites

There are a few companies and projects that you might recognize, and not realize they were built with Rails. Here are some of the most popular ones.

Basecamp

Basecamp is a popular project management SaaS application.

DHH (author of Rails) has extracted the Ruby on Rails framework from Basecamp, and made it publicly available, as an open-source project.

GitHub

The most popular web-based version control hosting services founded in 2008.

It has over 28 million registered users, and over 85 million repositories.

Shopify

It’s an all-inclusive, cheap, and easy to use cloud-based commerce platform used by over 600,000 businesses in approximately 175 countries.

Shopify started with just 5 people working from coffee shops. It found a market, and it grew to more than 3000 employees.

Airbnb

Airbnb is a marketplace where people can lease or rent short-term lodging.

Its journey to product/market fit is famous among startup founders, and you can read more about it here.

Twitch

Twitch is a live streaming video platform. It focuses mostly on video game streaming but you can find a lot of cool streams on it.

From coding streams to electronics, hacking, you name it.

SoundCloud

It’s a cloud-based publishing too for music distribution with 175 million users.

You can share your music (or sounds, podcasts, etc.) on SoundCloud, and embed them into your site.

Hulu

Hulu is a video streaming service, similar to Netflix, which offers premium video content from television shows to movies.

It has over 20 million subscribers in the U.S.

Zendesk

A customer service and engagement platform, Zendesk servers over 125.000 paid accounts in 160 countries, and 40+ languages.

Square

Square helps companies accept payments through mobile devices.

Highrise

If you’re looking for a simple CRM, Highrise looks pretty cool. I like how the design is distinct from all the other apps out there.

Intercom

A chat system and more.

Cookpad

Cookpad is a recipe sharing platform.

New Relic

New Relic gives you insights into the performance of your Rails application.

Discourse

The most popular forum platform these days.

500px

A community site for photographers.

A List Apart

A List Apart is a collection of articles for people who make websites.

Dribbble

Dribbble is a community of designers who learn from each other by sharing their work.

Fiverr

It’s a very popular freelancing platform.

You can find a lot of freelancers here that can help you with your project.

Goodreads

Goodreads is a community of book readers to discover and review books.

Kickstarter

The most popular crowd-funding application.

If you have an idea for a product, you can try to get it funded through Kickstarter.

MyFitnessPal

The leading application for tracking your calories.

Scribd

If you like to read, Scribd offers books, magazines, and audiobooks by subscription.

SlideShare

An easy way to upload, share and discover slides, presentations, infographics, etc.

How do I learn web development with Ruby on Rails?

I remember when I first started, there weren’t too many tutorials out there. I relied mostly on Railscasts, but that website hasn’t been updated in a while.

So here is my take on how you should start learning Ruby on Rails. This also applies to most things you learn, not just Rails.

1. Choose a project with deadlines

This could be either a new job as a junior Rails developer, or building a web application for a client if you’re freelancing, or even a personal customer-facing project.

It doesn’t matter what you’re building as long as it has a powerful motivational element to it. The most powerful motivator I know is a deadline.

A deadline will eradicate procrastination from your learning process, and it will skyrocket your learning speed.

2. Do what works

You don’t have to write perfect code from day one. You can’t, even if you try.

All you need to do is write code that works, and make sure someone reviews it.

This is very powerful because the best way to learn a new concept is to associate that new concept with something you already know. So when someone reviews what you already know, you get to link it to what they tell you about your code, with the new concept.

3. Improve your code

Over time, all these little course corrections add up, and that’s how you become a good Rails developer. You learn everything in small increments and in such a way that makes sense for you at the level you’re currently at.

This process has worked wonders for me, and I hope it will transform the way you learn.

What is the best Ruby on Rails tutorial for beginners?

The real answer to this question is: it depends on the how you learn best. If you prefer books, or video courses, or just building stuff and copy-pasting solutions.

There are tons of resources out there for learning Rails, but I’m going to list two of my favorites as top picks.

Build a complete Rails web app from scratch, step by step!

The Agile Web Development with Rails book is also highly recommended.

Note that these two are not free. However, there are a few free ones you should check out.

Where to learn Ruby on Rails free

The official Blog in 15 minutes, presented by the author of Rails himself is an excellent place to start.

The official Ruby on Rails guides are also pretty good if you find the format easy to read.

What is the best Ruby on Rails book for beginners

There’s the Ruby on Rails Tutorial book by Michael Hartl that you can read for free online.

It teaches you the basics from install to deploy.

What are the best Ruby on Rails free courses

The Odin Project

This is another fun way to learn Rails. You get to learn Rails by building projects.

Ruby on Rails Web Development Specialization (video).

Coursera has a few courses for learning Rails.

Ruby Warrior

Learn Ruby by playing a game. It’s an interesting way to learn.

The Complete Ruby on Rails Developer Course

This one has got to be the most popular course I’ve seen on Udemy (47,361 students), and it’s got a 4.4 out of 5-star rating.

Dissecting Ruby on Rails 5 - Become a Professional Developer

With 8,192 students enrolled and a rating of 4.6 out of 5, this course seems to be a great value for $9.99.

Learn Ruby on Rails

A few parts of the course are free, but most of it is paid.

Capstone

Books and videos tutorials for learning Rails

Upcase

Upcase focuses on more advanced topics, so if you’re really new to Rails, you might want to put this one aside for now.

Detroy All Software

Gary Bernhardt’s take on Ruby and in general is one of the best in the industry. And the screencasts he’s made are really eye-opening.

Books

Agile Web Development with Rails

As mentioned previously, the book by Sam Ruby and David Bryant Copeland is focused on getting you started with Rails. It has everything you need to get going.

The Ruby on Rails Tutorial

This book by Michael Hartl is free to read online.

Newsletters, blogs, and communities

Youtube channels

Editors

Here are some of the more popular editors (and IDE) for Ruby on Rails.

Vim (free) - Vim is my editor of choice. In the right hands, VIM is an incredible tool. If you want to learn how to use it, I recommend Drew Neil’s site VimCasts.

Emacs (free) - Emacs is just as good as Vim, but sadly it’s got the same learning curve as Vim does.

Atom (free) - Atom is a great looking editor, but for my taste it’s way too slow.

Visual Studio Code (free) - A nice code editor from Microsoft.

SublimeText 3 (paid) - I like SublimeText for its speed. It feels responsive like an editor should.

The RubyMine IDE (paid) - If you like IDEs, RubyMine from JetBrains might be the best one you can find for working with Rails.

If you liked this article, please take a moment and say thanks by sharing it on your favorite social media channel.