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.
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).
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.
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
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.
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.
- Learn Enough All Access Subscription: Get full access to the online courses for Learn Enough Command Line, Text Editor, Git, HTML, CSS & Layout, JavaScript, Ruby, and all the Learn Enough courses for one monthly price. Includes the full 6th edition of the Ruby on Rails Tutorial course.
- The Ruby on Rails Tutorial online course subscription or ebook (including three free sample chapters).
- Print edition: The print edition is nearly the same content as the ebook available from railstutorial.org but with the advantage of a physical format. (I say “nearly” because I’m constantly tweaking little things based on reader feedback, so the version I maintain is always a little more up-to-date.) By the way, if you’ve already read the book, please consider leaving an Amazon review, which would be much appreciated!