The 800-Pound Gorilla of Learn Enough

Sep 18, 2020 • posted by Michael Hartl

Learning to code? Learn Enough is based on the idea that you don’t have to learn everything about tech to get started—you just have to learn enough to be dangerous. This is the eighth in a series of posts introducing the main Learn Enough tutorials. You can also read the previous one or the next one. You might also enjoy the Ruby on Rails Tutorial free sample chapters and free sample videos.

The 800-pound gorilla

Michael Hartl here from the Rails Tutorial and Learn Enough.

The Ruby on Rails Tutorial is the 800-pound gorilla of Learn Enough. (Indeed, it weighs in at well over 800 pages.) As such, the Ruby on Rails Tutorial isn’t really a Learn Enough tutorial per se. Instead, it’s the culmination of the core Learn Enough sequence: lessons from every prior Learn Enough tutorial are applied somewhere in the Ruby on Rails Tutorial.

The result is a comprehensive introduction to web application development, and the resulting skillset will put you in a great position to get a job as a web developer, start a career as a freelancer, or found a company of your own. If you already know how to develop web applications, the Rails Tutorial will quickly get you up to speed with Ruby on Rails.

images/figures/home_page_with_feed

The Rails Tutorial approach

Since the launch of the first edition in 2010, the Ruby on Rails Tutorial has been the leading introduction to web development with Rails (Figure 1). And while it does use Rails specifically, the focus throughout the tutorial is on general skills that are useful no matter which specific technology you end up using. Once you understand how web apps work, learning another framework can be done with much less effort. That being said, the framework of choice—namely, Ruby on Rails—has never been a better choice for learning web development (Box 1).

images/figures/jimmy_wales
Figure 1: A Rails Tutorial endorsement from Wikipedia founder Jimmy Wales.
Box 1. The many advantages of Rails

Ruby on Rails (or just “Rails” for short) is a free and open-source web development framework written in the Ruby programming language. Upon its debut, Ruby on Rails rapidly became one of the most popular tools for building dynamic web applications. Rails is used by companies as varied as Airbnb, SoundCloud, Disney, Hulu, GitHub, and Shopify, as well as by innumerable freelancers, independent development shops, and startups.

Although there are many choices in web development, Rails stands apart for its elegance, power, and integrated approach to web applications. Using Rails, even novice developers can build a full-stack web application without ever leaving the framework—a huge boon for people learning web development for the first time. Rails also gives you flexibility going forward—for example, serving as a great back end if you want to build a single-page application or mobile app sometime down the line.

One big advantage is that Rails is not prone to the “new hotness” problem that plagues some development communities (notably JavaScript/Node.js), in which a dizzyingly complex set of technologies seems to change every six months. As Rails creator David Heinemeier Hansson once noted:

Back then the complexity merchant of choice was J2EE, but the complaints are uncannily similar to those leveled against JavaScript today… The core premise of Rails remains in many ways as controversial today as it was when it premiered. That by formalizing conventions, eliminating valueless choices, and offering a full-stack framework that provides great defaults for anyone who wants to create a complete application, we can make dramatic strides of productivity.

Due in part to this philosophy, Rails has remained so stable at its core much of the Rails Tutorial has been the same since the third edition, launched in 2014. The things you learn in the Rails Tutorial won’t go out of date soon.

And yet, Rails continues to innovate. For example, the Rails 6 release includes major new features for email routing, text formatting, parallel testing, and multiple-database support. A big part of Rails 6 is being “scalable by default”, which means that Rails scales no matter how big your app gets. All this while maintaining rock-solid dependability—indeed, the wildly popular developer platform GitHub, the hugely successful online store-builder Shopify, and the collaboration tool (and very first Rails app) Basecamp all run their sites on the pre-release versions of Rails. This means that new versions of Rails are immediately tested by some of the largest, most successful web apps in existence.

Not bad for a little side project cooked up by a freelance Danish web developer way back in 2004. What was an edgy choice then is an easy choice now: with its proven track-record, productive feature-set, and helpful community, Rails is a fantastic framework for building modern web applications.

images/figures/hello_world_hello_app
Figure 2: The beginning hello app.

There are no formal prerequisites for the Ruby on Rails Tutorial, which contains integrated tutorials for the Ruby programming language, the Unix command line, HTML, CSS, a small amount of JavaScript, and even a little SQL. That’s a lot of material to absorb, though, and (as hinted above) the best strategy is probably starting with the tutorials at Learn Enough, especially Learn Enough Command Line to Be Dangerous and Learn Enough Ruby to Be Dangerous.1

images/figures/micropost_length_error
Figure 3: An intermediate toy app.

The principal teaching method of the Ruby on Rails Tutorial is building real working software through a series of example applications of increasing sophistication, starting with a minimal hello app (Figure 2, Section 1.2), a slightly more capable toy app (Figure 3, Chapter 2), and a real sample app (Figure 4,2 Chapter 3 through Chapter 14). As implied by their generic names, these applications focus on general principles, which are applicable to practically any kind of web application. In particular, the full sample application includes all the major features needed by professional-grade web apps, including user signup, login, and account management. The final version of the sample app, developed in Chapter 14, also bears more than a passing resemblance to Twitter—a website that, coincidentally, was also originally written in Rails.

images/figures/home_page_with_feed
Figure 4: The final sample app.

How to get it

There are multiple ways to get the Ruby on Rails Tutorial. All the different formats cover the same basic material in slightly different ways.

1. Adding the rest of the Learn Enough sequence would certainly provide excellent preparation for the Rails Tutorial, but if you’re in a hurry you can probably get by with just Command Line and Ruby. Learn Enough Ruby to Be Dangerous in particular has a chapter on building a simple web application using Sinatra, a Ruby-based micro-framework that serves as excellent preparation for Rails. If you get stuck in the Rails Tutorial, I suggest giving Learn Enough Ruby to Be Dangerous and its prerequisites a try, then loop back to see how it goes the second time.
2. Baby photo retrieved from https://www.flickr.com/photos/glasgows/338937124/ on 2014-08-25. Copyright © 2008 by M&R Glasgow and used unaltered under the terms of the license.
MORE ARTICLES LIKE THIS:
learnenough-news , tutorials , ruby-on-rails