Учебник Ruby с нуля для начинающих
Полный премиум-курс по языку Ruby для начинающих и тех, кто хочет систематизировать знания. От установки и базовых типов до паттерн-матчинга Ruby 3, блоков и модуля Enumerable, объектно-ориентированного программирования с миксинами, обработки ошибок, экосистемы гемов и Bundler, тестирования и обзора Rails 8. Каждый урок — это глубокая проза, ASCII-диаграммы и запускаемые врезки на Python для проверки языко-независимых концепций.
Курс «Ruby с нуля» состоит из 6 разделов и 22 уроков: Основы, Управляющие конструкции, Коллекции, Методы и блоки, Объектно-ориентированное программирование и Практика и экосистема. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Основы
- Что такое Ruby и почему его любят
Знакомство с языком Ruby: история, философия, область применения и сильные стороны в 2025 году.
- Установка, irb и первая программа
Как поставить Ruby, запускать код в irb и из файла, и из чего состоит первая программа на Ruby.
- Переменные, числа и арифметика
Переменные в Ruby, целые и дробные числа, арифметические операции и типичные подводные камни.
- Строки и символы
Работа со строками в Ruby: методы, интерполяция, изменяемость, а также символы и зачем они нужны.
- Булевы значения, nil и сравнения
true, false, nil в Ruby, операторы сравнения, истинность значений и безопасная работа с nil.
- Что такое Ruby и почему его любят
2 Управляющие конструкции
- Условия: if, unless, тернарный оператор
Условные конструкции Ruby: if/elsif/else, unless, модификаторы условий, тернарный оператор и idiom-стиль.
- Циклы: while, until, loop, times
Циклы в Ruby: while, until, loop, метод times, управление циклом через break и next.
- case/when и паттерн-матчинг (case/in)
Конструкция case/when в Ruby и современный паттерн-матчинг case/in: деструктуризация массивов и хэшей.
- Условия: if, unless, тернарный оператор
3 Коллекции
- Массивы и их методы
Массивы в Ruby: создание, индексация, добавление и удаление элементов, ключевые методы массивов.
- Хэши (ассоциативные массивы)
Хэши в Ruby: пары ключ-значение, символы как ключи, перебор, значения по умолчанию и вложенность.
- Диапазоны, множества и итерация each
Диапазоны (Range), множества (Set), базовая итерация коллекций через each и each_with_index.
- Массивы и их методы
4 Методы и блоки
- Определение методов и аргументы
Методы в Ruby: определение через def, позиционные и ключевые аргументы, значения по умолчанию, неявный возврат.
- Блоки, yield и передача блока
Блоки в Ruby: анонимные куски кода, передача блока в метод, yield, block_given?, явный параметр &block.
- Procs и лямбды
Procs и лямбды в Ruby: объекты-функции, отличия от блоков и друг от друга, передача через &block.
- Enumerable: map, select, reduce и друзья
Модуль Enumerable: ключевые методы map, select, reject, reduce, each_with_object, group_by и цепочки вызовов.
- Определение методов и аргументы
5 Объектно-ориентированное программирование
- Классы, объекты и состояние
Классы и объекты в Ruby: определение класса, метод initialize, переменные экземпляра, attr_accessor.
- Наследование и super
Наследование классов в Ruby через <, переопределение методов, вызов родителя через super, цепочка предков.
- Модули и миксины
Модули в Ruby: пространства имён и миксины через include, prepend, extend; Comparable и Enumerable на практике.
- Инкапсуляция, self и Struct/Data
Инкапсуляция в Ruby: public/private/protected, ключевое слово self, объекты-значения Struct и Data.define.
- Классы, объекты и состояние
6 Практика и экосистема
- Исключения и обработка ошибок
Обработка ошибок в Ruby: begin/rescue/ensure, raise, иерархия исключений, retry и собственные классы ошибок.
- Гемы, Bundler и структура проекта
Экосистема Ruby: библиотеки-гемы, RubyGems, управление зависимостями через Bundler, Gemfile и Gemfile.lock.
- Тестирование, инструменты и куда расти (Rails)
Тестирование на Ruby (Minitest, RSpec), линтер RuboCop, типизация RBS/Sorbet и обзор Rails 8 как следующего шага.
- Исключения и обработка ошибок