The letter A styled as Alchemists logo. lchemists Syndication Icon

Putin's War on Ukraine - Watch President Zelenskyy's speech and help Ukraine fight against the senseless cruelty of a dictator!

Published May 1, 2022 Updated May 1, 2022
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

  • Practical Object Oriented Design using Ruby (POODR) by Sandi Metz - Highly recommend starting here since it is a fundamental book in understanding good 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.

  • 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.

  • 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.

Syndication

  • Ruby Weekly - A decent source of Ruby news that has been around for a while.

  • Ruby Radar - This used to be a feed of articles but has become more video and presentation focused. Still, might be of interest.

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 many aspects of the Dry RB and Hanami ecosystems. This is my favorite part of Ruby these days because Dry RB has a strong focus on blending Object Oriented and Functional design which I quite enjoy.

  • Destroy All Software by Gary Bernhardt. This is a mixed bag of pure Ruby, command line usage, VI, patterns, building web and spec frameworks from scratch, and much more. Buying and working through the back catalog of offerings will help sharpen your skills even if the content is several years old now.

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 Central YouTube - Provides recent videos to the most recent conferences (or what isn’t covered by Confreaks).

  • Confreaks - There’s a decade’s worth of conference videos that you can catch up on and learn from.

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.

Other

  • 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.