ruby.onl / culture

From Novice to Sorcerer: The Ruby Skill Ladder

2026-03-11

Every Ruby concept has layers. You can use regex at the "I know how to grep" level, or at the "I'm building named captures into local variables at runtime" level. Here's a framework for knowing where you are and where you're going.

Part 1: The Five Levels

Novice. Basic related concept. Direct Perl translation. Simple one-liner usage. "Here's how to do the thing you already know in Perl."

Apprentice. Slightly more complex usage. Combining two concepts together. Understanding Ruby-specific behavior differences. "Now add a twist you couldn't easily do in Perl."

Journeyman. Practical intermediate skill. Real-world sysadmin application. Multi-step text processing. "Build something useful for your daily work."

Expert. Advanced but still practical. Combining multiple Ruby features. Performance considerations. "Handle edge cases and scale up."

Sorcerer. Complex but ops-relevant mastery. Ruby's hidden powers and esoteric features. Things that make colleagues say "wait, Ruby can do THAT?" "The weird stuff that makes Ruby magical."

Part 2: Example Progression, Text Matching

Here's what each level looks like for a single concept:

Novice: basic grep.

puts line if line =~ /error/i
Apprentice: extract all IPs from a line.
line.scan(%r~\d+\.\d+\.\d+\.\d+~)
Journeyman: named captures with (?<ip>...) becoming local variables.
if line =~ %r~(?<ip>\d+\.\d+\.\d+\.\d+).*(?<status>\d{3})~ puts "#{ip} returned #{status}" end
Expert: Regexp.union to combine multiple patterns dynamically.
keywords = %w~error warning critical~ pattern = Regexp.union(keywords) lines.select { |l| l =~ pattern }
Sorcerer: flip-flop operator to extract sections between markers.
ARGF.each_line do |line| puts line if line =~ %r~START~ .. line =~ %r~END~ end

Part 3: How to Use This Framework

Don't try to jump to Sorcerer on day one. Each level builds on the last. The Novice level exists to prove that Ruby can do what you already do in Perl. The Apprentice level shows you where Ruby starts to diverge. By Journeyman, you're writing real tools. Expert and Sorcerer are where Ruby starts paying rent.

The goal isn't to memorize every level. The goal is to always have a next step when you're ready for it.


Created By: Wildcard Wizard. Copyright 2026