/learn-ruby

Books and other resources for learning Ruby, Rails, and related skills.

Learning Ruby: a resource list

Hi! As a second-career developer who didn't go through a bootcamp, I've found it helpful to keep notes on learning resources—building my own curriculum, in a way. If you have a favorite resource that's missing below, let me know by opening an issue!

Overview

Preliminaries

  • If you've never written a line of code in your life, you may want to start with these tutorials, all free:
  • If you're wondering why I chose Ruby and not full-stack JS, I explain why on my blog. Or if you want a second opinion, read this or watch this.
  • I list a lot of books and courses below, and hardly any hands-on projects. To be clear, you should be spending more time coding than reading about coding. But starting a project and getting into a coding routine is easy (if you can't think of any project ideas, just "build your own X" or try Project Based Learning or Projectbook), whereas knowing what to read is not at all obvious at the beginning. Hence the focus on books and courses here.
  • If you are a working adult looking to transition into software development, make sure your day job is conducive to part-time studying. I used to be a teacher and spent hours grading in the evenings and on weekends, which would have made studying very difficult. So I switched to a remote customer support job to free up my schedule.
  • Find a system for keeping organized notes, code snippets, and articles/videos saved for later. I use a simple text file, which is more effortless than any knowledge base app that I've tried.
  • Last but not least, take care of yourself! Studying (especially while working) can easily be overdone. Exercise and get plenty of sleep. If you develop wrist pain from heavy computer use, act swiftly: get an ergonomic keyboard (the one I use is effective and affordable), do daily RSI stretches, and try using a break app such as Workrave.

So without further ado, here is my learning path.

Key:

  • 💲 = costs money. If you need more free resources, see the links to other lists at the bottom. You may be able to find the books for free (from your local library, interlibrary loan, or more dubious sources) but buy them if/when you can, to support the authors!
  • ⭐ = absolute favorite. If you mainly learn by doing and/or googling and you want only a handful of books/courses, these are the ones I'd most recommend.

Frontend basics

Ruby

Rails basics

Only courses are listed below, but be sure to build stuff as you learn. Here's how I started building my first Rails app right from the beginning. Another invaluable form of practice is to start contributing to open source.

Rails codebases to study

These are Rails projects that I've seen mentioned more than once as good examples to learn from. For lots more open-source Rails projects, see Real World Rails (and how to search through it) and Awesome Ruby and Rails Open Source Apps.

Ruby blogs, podcasts, screencasts

Checking one of these off means "I've read/watched/listened to all the posts/episodes that interest me from the past few years, and I'm keeping an eye out for new posts/episodes that would help me, or old posts/episodes when they become relevant to me."

Rails architecture

A.K.A. where the heck do I put my business logic / how can I keep my models from getting huge? Note that I've hardly dipped my toe into this area, so I can't yet say how useful any of these approaches are.

Miscellaneous essentials

Advanced Ruby and Rails

Performance optimization

Hotwire and StimulusReflex

If you ever get stuck, the StimulusReflex community on Discord is an amazing resource, even for Hotwire.

JavaScript

Because try as you might, you can't avoid it. Note: there are so many JS books and courses out there. These are not necessarily the best, and I don't plan on going through all of them. I just picked a bunch that I saw recommended; eventually I'm going to look through them more carefully and shorten the list.

Meanwhile, computer science

Other programming and CS resource lists