Языки программирования

Учебник Ruby с нуля для начинающих

22 урока · 6 разделов · бесплатно, без регистрации

Полный премиум-курс по языку Ruby для начинающих и тех, кто хочет систематизировать знания. От установки и базовых типов до паттерн-матчинга Ruby 3, блоков и модуля Enumerable, объектно-ориентированного программирования с миксинами, обработки ошибок, экосистемы гемов и Bundler, тестирования и обзора Rails 8. Каждый урок — это глубокая проза, ASCII-диаграммы и запускаемые врезки на Python для проверки языко-независимых концепций.

Курс «Ruby с нуля» состоит из 6 разделов и 22 уроков: Основы, Управляющие конструкции, Коллекции, Методы и блоки, Объектно-ориентированное программирование и Практика и экосистема. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Основы

    1. Что такое Ruby и почему его любят

      Знакомство с языком Ruby: история, философия, область применения и сильные стороны в 2025 году.

    2. Установка, irb и первая программа

      Как поставить Ruby, запускать код в irb и из файла, и из чего состоит первая программа на Ruby.

    3. Переменные, числа и арифметика

      Переменные в Ruby, целые и дробные числа, арифметические операции и типичные подводные камни.

    4. Строки и символы

      Работа со строками в Ruby: методы, интерполяция, изменяемость, а также символы и зачем они нужны.

    5. Булевы значения, nil и сравнения

      true, false, nil в Ruby, операторы сравнения, истинность значений и безопасная работа с nil.

  2. 2 Управляющие конструкции

    1. Условия: if, unless, тернарный оператор

      Условные конструкции Ruby: if/elsif/else, unless, модификаторы условий, тернарный оператор и idiom-стиль.

    2. Циклы: while, until, loop, times

      Циклы в Ruby: while, until, loop, метод times, управление циклом через break и next.

    3. case/when и паттерн-матчинг (case/in)

      Конструкция case/when в Ruby и современный паттерн-матчинг case/in: деструктуризация массивов и хэшей.

  3. 3 Коллекции

    1. Массивы и их методы

      Массивы в Ruby: создание, индексация, добавление и удаление элементов, ключевые методы массивов.

    2. Хэши (ассоциативные массивы)

      Хэши в Ruby: пары ключ-значение, символы как ключи, перебор, значения по умолчанию и вложенность.

    3. Диапазоны, множества и итерация each

      Диапазоны (Range), множества (Set), базовая итерация коллекций через each и each_with_index.

  4. 4 Методы и блоки

    1. Определение методов и аргументы

      Методы в Ruby: определение через def, позиционные и ключевые аргументы, значения по умолчанию, неявный возврат.

    2. Блоки, yield и передача блока

      Блоки в Ruby: анонимные куски кода, передача блока в метод, yield, block_given?, явный параметр &block.

    3. Procs и лямбды

      Procs и лямбды в Ruby: объекты-функции, отличия от блоков и друг от друга, передача через &block.

    4. Enumerable: map, select, reduce и друзья

      Модуль Enumerable: ключевые методы map, select, reject, reduce, each_with_object, group_by и цепочки вызовов.

  5. 5 Объектно-ориентированное программирование

    1. Классы, объекты и состояние

      Классы и объекты в Ruby: определение класса, метод initialize, переменные экземпляра, attr_accessor.

    2. Наследование и super

      Наследование классов в Ruby через <, переопределение методов, вызов родителя через super, цепочка предков.

    3. Модули и миксины

      Модули в Ruby: пространства имён и миксины через include, prepend, extend; Comparable и Enumerable на практике.

    4. Инкапсуляция, self и Struct/Data

      Инкапсуляция в Ruby: public/private/protected, ключевое слово self, объекты-значения Struct и Data.define.

  6. 6 Практика и экосистема

    1. Исключения и обработка ошибок

      Обработка ошибок в Ruby: begin/rescue/ensure, raise, иерархия исключений, retry и собственные классы ошибок.

    2. Гемы, Bundler и структура проекта

      Экосистема Ruby: библиотеки-гемы, RubyGems, управление зависимостями через Bundler, Gemfile и Gemfile.lock.

    3. Тестирование, инструменты и куда расти (Rails)

      Тестирование на Ruby (Minitest, RSpec), линтер RuboCop, типизация RBS/Sorbet и обзор Rails 8 как следующего шага.