The letter A styled as Alchemists logo. lchemists

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 November 21, 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

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

  • Ruby Weekly - This feed has been around for a while and is a bit hit or miss in terms of content. What seems like noise will be posted instead of more sophisticated projects or deeper articles. This feed also has a lot of major companies pumping information into the feed which drowns out the more interesting work by individual contributors. That said, it’s good for a pulse check.

  • Ruby Radar - This used to be a syndicated feed of articles but has become more video and presentation focused. It is also hit or miss in terms of content. 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. These ecosystems are the most interesting part of Ruby these days because Dry RB has a strong focus on blending Object Oriented and Functional design.

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

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