Understanding Ruby Blocks, Procs & Lambdas - The author begins his article with the statement that “Blocks, Procs and Lambdas are one of the most powerful aspects of Ruby, and also one of the most misunderstood.” I could not agree more. Knowing how to properly use blocks and other Ruby closures will help you write DRYer (less repetitious) code, and will set you apart from other novice Ruby developers. This short article can take a developer with no understanding of Ruby closures, and equip him or her with the knowledge of how each closure works, and the relative merits of each.
Programming Ruby - You can rely on any book from the Pragmatic Programmer series to be a well-written, in-depth review of the topic, and Programming Ruby is no exception. This book is great for developers who are new to Ruby but have worked in other languages. The author assumes a certain level of familiarity with computer science concepts, so while it might not be ideal for newbies, the in-depth review of Ruby’s unique features--from modules and mixins to error-handling and regular expressions--will set an experienced developer up for immediate success with Ruby. The 2000 edition is free online, but beware that some of the specifics will be out of date.
Ruby Enumberable Module - The Enumerable module is an incredibly powerful mixin that adds over 50 methods for working with Ruby collections. While it’s hard to imagine a Ruby developer living without this mixin, the official documentation is anything but user-friendly. Luckily, Ruby Cuts developed this excellent guide, which can be used in place of or in addition to the official docs.
Ruby Collections - For the newer Ruby developer, Sitepoint’s guide is the perfect introduction to Ruby collections. This four-part series introduces arrays, hashes, and the Enumerable mixin. It assumes no prior knowledge of these constructs, and sets the reader up to use them in a variety of ways.
Project Euler - Reading about code is great, but nothing improves a developer’s skills like writing code. Project Euler (pronounced oil-er) is a gigantic bank of coding puzzles that are frequently used in developer interviews. The puzzles are great skill-builders for developers at any experience level, but they are absolutely invaluable for anyone applying for a developer job. I recommend each developer solves 5 to 10 problems before interviewing as a Junior Developer. Problems 1-16 are a good example of the types of questions Junior Developer candidates are asked to solve in interviews, and many employers take their interview questions directly from this site.