Potato Codex

May 12, 2025

Learn Ruby

I know C. I know Python. I know Rust, Dart, Java, a bit of C#. And now I'm adding Ruby to the list — from scratch.

No prior Ruby knowledge. No shortcuts. Just starting from zero and seeing where it goes.

Why Ruby
Honest answer: Ruby on Rails brought me here. I've been exploring Rails as a web framework, and you can't really appreciate Rails without understanding the language underneath it. Ruby isn't just a vehicle for Rails — it has its own philosophy, its own personality, and its own way of thinking about code.

That philosophy is worth understanding on its own terms.

First Impressions
Ruby reads almost like English. Not in a gimmicky way — in a way that feels intentional. The syntax gets out of your way and lets you express ideas clearly.

Coming from C and Rust where you're very aware of types, memory, and structure, Ruby feels almost dangerously flexible. Everything is an object. Methods can be called without parentheses. You can add methods to existing classes, including built-in ones. The language bends to you, not the other way around.

# This is valid Ruby
5.times { puts "Hello, Potato Codex!" }
​
# So is this
name = "Vicky"
puts "Hello, #{name}!"
​
# Everything is an object
puts -7.abs     # => 7
puts "hello".upcase  # => HELLO

What's Different From What I Know
  • vs. Python: Similar energy — readable, dynamic, flexible. But Ruby leans harder into expressiveness. Blocks and iterators feel more natural in Ruby than lambdas in Python.
  • vs. C/Rust: No manual memory management. No type annotations by default. It's a completely different mental mode — you stop thinking about how the machine handles it and focus entirely on what you want it to do.
  • vs. Dart: Both are object-oriented, but Ruby is far more dynamic. Dart has strong typing; Ruby embraces duck typing fully.

The Plan
Starting with the fundamentals — variables, data types, control flow, methods, classes, blocks, iterators. Then moving into more Ruby-specific concepts like modules, mixins, symbols, and the enumerable patterns.

No rushing. Get the language right before going back to Rails.

Tools
  • Ruby 3 via Mise (already installed from the Rails setup)
  • IRB for quick experiments in the terminal
  • Neovim as the editor
  • Official Ruby docs at ruby-lang.org

Early Verdict
Ruby is fun. That's not a word I use often about programming languages, but it applies here. There's a playfulness to the design that makes exploration enjoyable.

Day one of zero. More soon.

12 May 2025
Potato Codex

About Potato Codex

I'm Vicky, solutions manager. Robotics, AI & EV builder. Researcher entrepreneur 🇮🇩