Let's Learn Ruby
a resource list
Hi! This road map has helped me as a self-taught developer. I hope it helps you too.
Notice a broken link? Open an issue!
Table of contents
π Basics
π Front-end basics
-
Learn some HTML, CSS, and JS
The Odin Project - Foundations path or MDN - Learn web development or web.dev - Learn web development.
-
Build a blog from scratch
GitHub Pages is an accessible way to do this. (Choose the option βProject siteβ, then βStart from scratchβ.).
π Ruby basics
π Basics
-
The Odin Project - Ruby
-
GoRails - Ruby for Beginners
If you prefer videos.
-
Try Ruby
And BigBinary Academy, if you like an interactive approach.
π Guided practice
-
Exercism - Ruby
-
Advent of Code
With other peopleβs Ruby solutions to compare yours to. One way to do this is my Advent of Ruby gem.
π OOP (object-oriented programming)
-
π² Sandi Metz - Practical Object-Oriented Design
-
π² Sandi Metz & Katrina Owen - 99 Bottles of OOP
π Build stuff with Ruby
-
A CLI (command-line interface) app
-
A game
A text-based game is the most straightforward option, but there are Ruby game engines for graphical games.
-
A static site with [Bridgetown](https://github.com/bridgetownrb/bridgetown), which is simpler than building a web app with Rails
Maybe rebuild your blog? Be sure to join the Bridgetown Discord server.
π Rails basics
π Basics
-
Getting started with Rails
An interactive quick start.
-
typecraft - Rails New
And/or GoRails - Build a Blog with Rails 7 if you like videos.
-
The Odin Project - Rails
π Testing
-
thoughtbot - Testing Rails
Or the summary blog post. (In the book, ignore controller specs because they have been superseded by request specs.).
-
π² Effective Testing with RSpec 3
π Miscellaneous
-
Beginners Guide to Ruby on Rails Performance
-
Style guides
For Ruby, Rails, and RSpec.
π Getting hired
π Get real-world experience to put on your resume
-
Contribute to open-source projects
Iβve written a short guide on how to get started.
-
Ruby Central - Scholars and Guides Program
π Mentorship
-
First Ruby Friend
Where aspiring and first-year developers are connected with a mentor.
-
r/rails
π The job search
π Foundations
π SQL and databases
-
SQL Teaching
-
SQLBolt
-
Select Star SQL
-
SQL Practice
-
PostgreSQL Exercises
-
Next-Level Database Techniques for Developers
-
Use the Index, Luke!
π Git
-
Oh My Git!
-
Oh Shit, Git!?!
Or for more detail, Git Flight Rules.
-
Git Katas
-
The Git Parable
π Front end
π CSS
π JavaScript
π Basics
-
Exploring JavaScript
Or MDN - JavaScript.
-
Modern JavaScript Explained For Dinosaurs
Plus MDN - import maps.
-
What the heck is the event loop anyway?
-
The Modern JavaScript Tutorial - Browser: Document, Events, Interfaces
π TypeScript
π New web APIs
π Usability
π Web standards
-
Plain Vanilla
-
Under-Engineered Patterns
-
Stephanie Eckles - SmolCSS
-
Stephanie Eckles - Modern CSS Solutions
π Hotwire
π News
π Reference
-
Hotwire.io
(more extensive than the official docs).
-
turbo-rails "Usage" README section
-
thoughtbot - Hotwire examples
-
Betterstimulus
-
Stimulus-Use
-
Stimulus Components
π Advanced Ruby and Rails
π Advanced Rails
π Rails internals
π Architecture
π Background jobs
π Miscellaneous
π Community
-
Awesome Ruby Blogs
For blogs, newsletters, podcasts, screencasts, and livestreams.
-
Bluesky starter packs for Ruby developers
-
Discord: Ruby
-
Lobsters
Itβs not Ruby-specific, but itβs a way to widen your horizons and the discussions are of high quality. Itβs like Hacker News but smaller and more focused on programming.
-
Mastodon: Ruby.social
-
Reddit
-
Slack: Ruby on Rails Link
π Ruby that is not web development
-
π² DragonRuby Game Toolkit
For game development. See their Discord and community site. Other Ruby game libraries: GMR, Gosu, MiniGL, mruby-cute, Raylib Ruby, Reight, Ruby 2D, Taylor, TIC-80.
-
Gamefic
For building text-based games and interactive fiction. See Getting Started and examples.
-
SC2AI
For StarCraft II botting.
-
Sonic Pi
For live music coding.
-
Ronin
For security development.
-
Scripting and text processing
Ruby One-Liners Guide, Ruby Regexp, π²Text Processing with Ruby.
π Rails codebases to study
π Small codebases
-
github.com/nshki/naisho
<2k lines. Send personal data deletion request emails to hundreds of data brokers at once.
-
github.com/carsoncole/workypad
2k lines. App for managing job prospecting.
-
once.com/writebook
3k lines. App for publishing books to the web.
-
github.com/garyharan/fresh
Plus github.com/garyharan/FreshAppIOS and github.com/garyharan/FreshAppAndroid. 4k lines. Dating app using Hotwire Native.
-
github.com/ChaelCodes/MeetAnotherDay
4k lines. Helps you find and meet up with your friends at conferences.
-
github.com/SpinaCMS/Spina
6k lines. CMS (Content Management System).
-
github.com/eigenfocus/eigenfocus
5k lines. Self-hosted project/time management app.
-
github.com/basecamp/once-campfire
6k lines. Self-hosted chat application similar to Slack.
-
github.com/codetriage/codetriage
6k lines. Issue tracker for open-source projects.
-
github.com/demingfactor/calagator
9k lines. Community calendar platform.
-
github.com/rubyevents/rubyevents
11k lines. Index of Ruby events and videos.
-
github.com/lookbook-hq/lookbook
11k lines. UI development environment for Rails apps.
-
github.com/thoughtbot/upcase
14k lines. Learning platform for developers.
-
github.com/joemasilotti/railsdevs.com
14k lines. The reverse job board for Ruby on Rails developers.
-
github.com/galahq/gala
15k lines. Collaborative learning platform.
-
github.com/CircuitVerse/CircuitVerse
15k lines. Digital logic circuit simulator. Has a Vue.js front end.
-
github.com/docusealco/docuseal
15k lines. Open source DocuSign alternative.
-
github.com/rubyforgood/homeward-tails
15k lines. Connects adopters/fosters with pets.
-
github.com/TheOdinProject/theodinproject
16k lines. Main website for The Odin Project web development learning platform.
-
github.com/AllYourBot/hostedgpt
16k lines. Self-hosted ChatGPT alternative.
-
github.com/RailsEventStore/ecommerce
17k lines. Example app showing DDD (Domain-Driven Design), CQRS, and Event Sourcing.
-
github.com/lobsters/lobsters
18k lines. Hacker News clone.
-
github.com/maybe-finance/maybe
19k lines. Personal finance app.
-
github.com/rauversion/rauversion
20k lines. Music platform.
-
github.com/ifmeorg/ifme
21k lines. Mental health communication web app to share experiences with loved ones.
-
github.com/openSUSE/osem
24k lines. Event management tool tailored to Free and Open Source Software conferences.
-
github.com/chicago-tool-library/circulate
26k lines. A lending library management system.
-
github.com/feedbin/feedbin
31k lines. RSS reader.
-
github.com/AlchemyCMS/alchemy_cms
37k lines. CMS (Content Management System).
-
github.com/huginn/huginn
37k lines. Web task automation.
-
github.com/rubyforgood/casa
44k lines. Volunteer management system for the nonprofit CASA.
-
github.com/rubyforgood/human-essentials
47k lines. An inventory management system for essentials supply banks.
π Larger codebases
-
github.com/rubygems/rubygems.org
56k lines. Where Ruby gems are hosted.
-
github.com/WikiEducationFoundation/WikiEduDashboard
59k lines. Wikipedia course dashboard system. Has a React front end.
-
github.com/chatwoot/chatwoot
74k lines. Customer engagement suite. Has a Vue.js front end.
-
github.com/solidusio/solidus
98k lines. E-commerce platform.
-
github.com/alphagov/whitehall
110k lines. Publishes government content on gov.uk.
-
github.com/mastodon/mastodon
117k lines. Like Twitter but self-hosted and federated.
-
github.com/redmine/redmine
118k lines. Project management app.
-
github.com/forem/forem
126k lines. Powers the blogging site dev.to. Uses Preact on the front end.
-
github.com/openfoodfoundation/openfoodnetwork
129k lines. An online marketplace for local food.
-
github.com/decidim/decidim
294k lines. The participatory democracy framework.
-
github.com/zammad/zammad
299k lines. Helpdesk/customer support system.
-
github.com/antiwork/gumroad
323k lines. E-commerce platform.
-
github.com/opf/openproject
479k lines. Project management software.
-
github.com/discourse/discourse
514k lines. Discussion forum platform. Has an Ember.js front end.
-
github.com/instructure/canvas-lms
891k lines. A popular LMS (learning management system).
-
gitlab.com/gitlab-org/gitlab
3 million lines. Like GitHub but with CI/CD and DevOps features built in. Uses Vue.js on the front end. Has docs on architecture.