The vital thing that is bothering many people while they are just starting to code is the technology choice. Fortunately, you are right to pick Ruby on Rails, as this is exactly the thing you will love to work with. From Airbnb to GitHub, dozens of successful tech companies use the same web development frаmework, Ruby on Rails (RoR).

Bringing in 10 years of expertise, our dedicated Ruby developers came up with a quick guide to learning Ruby on Rails.

Ruby on Rails: The Beginner Level

Step 1: Learn HTML, CSS, JavaScript

Being a full-stack frаmework, Ruby on Rails covers backend (server-side) as well as a front end web developmеnt (client-side), so it’s principal to start with the front end essentials. At the initial stage of front end training, a newcomer gets to know such technologies as HTML, CSS, and JavaScript. Why so?

  • HTML has been the foundation of web development for years on end. Without it, everything else is almost meaningless, because it is the HTML markup that the browser transforms into the final picture that we see on the screen. 
  • CSS is a tool for setting the appearance and positioning of various elements of a web page, which allows you to flexibly check the appearance of a web app. 
  • JavaScript acts as an important, but not always mandatory addition. It can significantly increase the usability and interactivity of your site.

Here is a quick overview of the online tools that can help you to learn the core of RoR development:

  • Codecademy offers a free introductory web development course, “Make a Website”, which has already been taken by 1,230,463 people. After completing 9 hours, you will get to know the basics of CSS/HTML and even build your first website. Moreover, the course is free; yet, some additional features are included in a paid plan.
  • The “Intro To HTML & CSS” by Udacity differs quite a lot from similar topic courses. Besides training on Industry-relevant content and just gaining tech skills, you will build a real site. So, you are not a student who fulfills tasks according to the program. You have to think like a real programmer. Converting design mockups into web pages? Sure thing! After all, there is a huge library of other free courses to continue learning.

Step 2. Learn Ruby

Rails is so often related to Ruby itself that it is sometimes difficult to separate one from the other. The distinction is significant: Ruby is a programming language, while Rails is a frаmework made for Ruby.

There are different opinions on whether to learn Ruby or skip this step. At Cuspy, we believe that you should be confident when working with Ruby in order to delve into Rails. Say, it is better to learn to ride a bicycle before driving a car and only then think about riding a truck.

And one more thing. While working with Rails, you will spend a lot of time writing code in Ruby. Thus, you need to know this language very well, especially its basics: data types, methods, object orientation, debugging, and much more. And you don’t need to be a super-experienced Ruby programmer at the same time — you just have to feel confident, like a fish in the water.

Here are a couple of books and courses we gathered for you:

Code School is a distance learning service. Today, the platform offers programs in HTML/CSS, Ruby, Python, JavaScript, Git, and others. Online service Code School appeared in 2011, and since then has developed more than 60 different courses for teaching programming. Each course contains theoretical materials, video tutorials, and practical tasks that allow students to learn the chosen technology step by step. Cuspy team recommends you to pay attention to the Try Ruby course.

The author discovered the Ruby programming language in 2001 and immediately began using it to build tools and computer games. The target audience of his book is entry-level developers. Every detail is explained in terms of real-world Ruby code.

Step 3. Move on to Rails

Rails is the most popular Ruby framework. Feeling confident in Ruby, you can finally start learning Ruby on Rails.

Speed is the main advantage of Ruby and the RoR frаmework. Practice shows that the speed of development in RoR is higher by 30-40 percent in comparison with any other programming languages. Unlike other frаmeworks, RoR has excellent automated testing tools. Other programming languages and frameworks do not have standard testing tools.

To help you in learning, we have put together some books. By the way, if you know a book that did not appear in this material but is worth mentioning, feel free to share it in the comments.

The book has a fairly low entry threshold. You do not even need to know the basics of web developmеnt to understand it. In the book, the material on Ruby on Rails is provided from scratch. In addition to RoR, the author introduces the reader to the basics of the Ruby language itself. The book gives a lot of attention to the practical use of the framework capabilities.

This book is useful for beginners. Its complexity increases step by step, and in each subsequent section, the skills acquired in the previous ones are used. For students of Rails, it will be useful to familiarize yourself with a selection of free online courses, tutorials, and interactive classes in the Ruby on Rails frаmework. Plenty of them can be found on BitNаmiCodecаdemy, and Try Ruby.

Step 4. Find a personal RoR Guru

Mentors help beginners to grow, control progress and help with theoretical and practical tasks. It’s very important, isn’t it?

  • You sit over a task for more than a day and do not see any solution.
  • You are studying new technology and do not understand how this or that mechanism works, or do not understand the whole concept.
  • You need advice on the best technical implementation. You can understand how to solve the problem, but perhaps there are better architectural solutions. Due to inexperience, you cannot predict how your decision will affect the fate of the project.

If you recognize yourself in these descriptions, then a mentor’s help is exactly what you need.

Ruby on Rails: The Intermediate Level

As soon as you got an idea of the Ruby/Rails fundamentals, it is time to tackle more difficult projects with features like the import/export of data or the implementation of admin panels. Below you can find a list with some helpful assets to master your skills:

Step 1. Join RoR communities

Contrary to all the rumors, there is a large and dynamically growing trend throughout the world. Ruby is a language of cooperation, not competition. Everyone in the team is primarily your friend and only then a colleague or mentor.

Whether there are enough offers on the IT market for Ruby on Rails Developer, how to conquer obstacles during the project, and whether the work of a Rubyist is well appreciated, you can find the answers from the skilled developers on:

  • StackOverflow. It is a system of questions and answers about programming founded in 2008. The platform provides an opportunity to evaluate questions and answers, which raises or lowers the reputation of registered users. Answers can be easily sorted using tags.
  • Quora. Quora’s main mission is to share and develop knowledge worldwide. The portal uses a Q&A mechanism to increase knowledge. There you can find answers to both complex technical questions and tips on which programming language you should pay attention to now.
  • Ruby on Rails Link: Rails Slack community. If I say Slack, you’ll think about a corporate messenger. Ruby Slack community unites developers from all over the world. It is a huge scope of useful tips and fresh ideas!
  • GitHub. It is a web service that hosts billions of lines of code, and every day, millions of programmers from around the world come together to jointly develop open-source IT projects. Don’t miss the benefits of GitHub!

Step 2. Grow into a thriving RoR developer

Yes, even at this level of studying Ruby on Rails, do not forget about books.

  • The Ruby Programming Language by David Flanagan and Yukihiro Matsumoto. This book is the official guide to the dynamic Ruby programming language. Mr. Flanagan is a well-known specialist in the field of programming; Yukihiro “Matz” Matsumoto is the creator and lead developer of Ruby.
  • The Well-Grounded Rubyist (Second Edition) by David A. Black. The author shows Ruby’s features in a readable and laid-back style. At the beginning of the book, you will learn the basic principles of the language when you write your first small programs. Then you will gradually move on to topics such as reflection, multithreading, and recursion, strengthening your knowledge with exercises to constantly practice your skills.

Step 3. Focus on Practice

If you want to become a professional, then be prepared for a lot of theory and case analysis. Further, there is less and less theory and more and more practice. If closer to numbers, then the ratio will be something like 80/20 at first, and then 20/80, where theory is the former, and practice is the latter.

For every Rubyist, we recommend The Rails 4 Way by Obie Fernandez.

Obi Fernandez and a whole group of experts describe in detail the main features and subsystems of Rails: controllers, routing, support for REST-style, object-relational mapping using the ActiveRecord library, AJAX technology in Rails apps, and much more. Building on his unique experiences and citing detailed code examples, Obi demonstrates how to maximize productivity and enjoy creating perfect applications using tools and recommended Rails techniques.

Ruby on Rails: The Advanced Level

If you already have an idea of the world of Ruby on Rails, you still have a long way to go.

Applying your new skills and knowledge is of vital importance. Only by finding proper solutions to complicated tasks, collecting experience, and building new apps, you can master Ruby indeed. Go ahead and keep in mind the main principles of the Rails:

  • DRY (Don’t Repeat Yourself)
  • KISS (Keep It Simple, Stupid)
  • YAGNI (You Aren’t Gonna Need It)

Final Point

Ruby on Rails gives you powerful tools, like dynamic typing or debugging with buybug, which speed up the programming process pretty well. If you want to learn Ruby on Rails, be sure to try writing a small Rails application to understand how it works. It’s never too late to learn something new — even if you prefer traditional tools.