The letter A styled as Alchemists logo. lchemists
Published May 1, 2022 Updated June 22, 2023
Cover
Ruby Resources

I’m often asked what educational materials I find — or have found — helpful when learning to master the Ruby language. This question has become common enough that I thought I’d write down various resources for sharing and future reference. Enjoy!

Books

  • Programming Ruby by Noel Rappin and Dave Thomas: Provides a complete compendium of the Ruby language (also known as the as the Pickaxe book).

  • Practical Object Oriented Design using Ruby (POODR) by Sandi Metz: Highly recommend starting here since it is a fundamental book in understanding Object Oriented Design.

  • 99 Bottles of OOP by Sandi Metz: Once you’ve read POODR, this is a perfect companion — and workbook to some extent — in sharping what you’ve learned in POODR.

  • Polished Ruby by Jeremy Evans: Jeremy is a Ruby Core maintainer as well as the author of Roda. This is a great book on learning advanced Ruby.

  • Confident Ruby by Avdi Grimm: This is a short book that teaches you how to write confident Ruby code (i.e. no messy conditional logic).

  • Exceptional Ruby by Avdi Grimm: This is a short book that teaches how not to use exceptions for control flow amongst other things.

  • Eloquent Ruby by Russ Olsen: I started here long ago. It’s a little dated these days — syntax wise — but has a ton of great knowledge.

Syndication

  • Short Ruby: Collects knowledge shared on social media in a newsletter that coalesces this information in one place for consumption. Each article is definitely not a short read but some of the discussion can be valuable or worth further investigation. Sadly, this newsletter tends to be Rails heavy and not so much on the more unique and forward thinking work in the community.

  • Ruby Weekly: This feed has been around for a while and is a bit hit or miss in terms of content. Generally, the focus tends to be on major announcements within the community at the cost of the more interesting an unique work being missed.

Screencasts

  • Graceful Dev by Avid Grimm: I recommend buying a subscription. The money is well spent because Avdi’s Ruby Tapestry is a great collection of ~5 minute video tutorials that focus on the fundamentals of Ruby and much more.

  • Hanamy Mastery by Seb Wilgosz: These screencast tutorials cover aspects of the Dry RB, ROM, Hanami ecosystems. The patterns, concepts, and melding of Object Oriented with Functional Programming is an excellent way to level up your Ruby skills.

Talks

  • Sandi Metz: Much of these videos expand and elaborate upon what is written in POODR. Start at the top and work your way down. You’ll learn a lot and — most importantly — be inspired by the joy of the craft.

  • Ruby Video: Provides a central and searchable repository of past talks within the global community.

Community

  • Mastodon: You can find some — but not all — of the Ruby community here. If you need a place to hang out, this might be of interest. As always, be aware of the signal to noise and adjust accordingly.

Tools

  • API: You’ll want to keep this bookmarked or wired up via Alfred for quick access to learn about the Ruby core libraries and primitives.

  • Ruby Standard Libraries: Should you need an excellent reference for knowing which libraries are default in Ruby, packaged, and/or available as gems then this is your source of truth.

  • Ruby Versions: Every year Victor Shepelev puts a lot of work into detailing the changes in each new Ruby version and I truly appreciate it. This is not only a fantastic reference but also serves as a nice checklist for changes/features you want to incorporate into your own work.

  • Pennyworth: This is a Ruby gem I maintain which augments Alfred in order to provide quick access to a lot of Ruby information with only a few keystrokes. All, of which, is enhanced and powered by Ruby. Some of the links provided in this article are available as installable Alfred workflows within the Pennyworth documentation too.

Core

  • Meetings: This is where you can catch up on language discussions by the core maintainers. This is a great way to peek into how the language is evolving as well as learning new and interesting techniques.

  • Issues: It might seem strange to recommend watching issues logged against Ruby core but I guarantee you’ll learn a lot. Even better, Ruby Issues supports a syndicated feed which makes staying on top of changes trivial even though the Redmine system is quite dated.