Ruby Course Content
Goal: Master the "everything is an object" philosophy.
- The Ruby Philosophy: Understanding MINASWAN (Matz Is Nice And So We Are Nice)
- Core Syntax: Variables, Symbols (:id), and Strings (interpolation vs. single quotes)
- Control Structures: if, unless, while, and the unique until
- The "Magic" of Blocks: Mastering do...end, yield, and passing arguments to blocks
- Collections: Deep dive into Arrays and Hashes (using the modern JSON-style syntax)
- Iterators: Using .each, .map, .select, and .reduce (the bread and butter of Ruby)
Goal: Building clean, modular code through classes.
- Classes & Objects: Instance variables (@name), class variables (@count), and constants
- The initialize Method: Setting up state upon object creation
- Method Visibility: public, private, and protected scopes
- Inheritance & Mixins: Using Modules to share behavior between classes (avoiding multiple inheritance "hell")
- Self: Understanding the context of the self keyword in different scopes
Goal: Writing code that writes codeβthe "secret sauce" behind Rails.
- Metaprogramming:
- define_method and method_missing for dynamic behavior
- The Singleton Class (Eigenclass) and class << self
- Procs and Lambdas: Understanding the subtle differences in scope and return behavior
- Error Handling: begin, rescue, ensure, and custom exception classes
- Ruby 4.0 Features:
- ZJIT (Zero-latency JIT): How to optimize performance for CPU-bound tasks
- Ractors: True parallel execution without the Global Interpreter Lock (GIL)
- Standard Library: Working with JSON, YAML, and File I/O
Goal: Building full-stack applications at the speed of thought.
- The Rails Doctrine: Convention over Configuration (CoC) and Don't Repeat Yourself (DRY)
- MVC Architecture:
- Models: Active Record patterns, migrations, and validations
- Views: ERB templates and the Hotwire (Turbo/Stimulus) ecosystem for "No-JS" interactivity
- Controllers: Routing, strong parameters, and session management
- Active Job & Sidekiq: Handling background processing and email queues
- Testing with RSpec: Writing "human-readable" tests that describe behavior
Goal: Launching and maintaining production applications.
- Package Management: Mastering Gemfile, Gemfile.lock, and Bundler
- Modern Tooling: Using Vite Ruby for asset management and Docker for containerization
- Authentication: Implementing Devise or the new Rails-native Authentication system
- Deployment: Deploying to platforms like Heroku, Render, or self-hosting with Kamal