Введение
- Вместо предисловия
- Руби против ибур
- Для фана
- Что мы будем изучать
- Веб-программирование или что-то другое?
- Сколько зарабатывают программисты?
- Ваше преимущество
- Задание
Часть 1. Первые шаги
- Среда исполнения
- Настройка Windows для запуска первой программы
- Задание
- Задание
- Здравствуйте, я ваш REPL
- Задание
- Запуск програ ммы из файла
- Я ваш файловый менеджер
- Задание
- Основы работы с файловой системой
- Навигация
- Задание
- Создание файла
- Задание
- Консольный ниндзя
- Упражнение 1
- Имейте это в виду
- Упражнение 2
- Будьте осторожны
- Не делайте этого
- Текстовые редакторы
- Задание
- Первая программа
- Упражнение 1
- Упражнение 2
- Переменные в языке Руби
- Задание
- Сложение и умножение строк
Часть 2. Основы
- Типы данных
- Упражнение 1
- Упражнение 2
- Докажем, что все в Руби — объект
- Приведение типов (англ. converting types или type casting)
- Дробные числа
- Интерполяция строк
- Задание 1
- Задание 2
- Bang!
- Задание
- Блоки
- Блоки и параметры
- Задание 1
- Задание 2
- Задание 3
- Любопытные методы класса Integer
- Задание 1
- Задание 2
- Задание 3
- Сравнение переменных и ветвление
- Задание
- Комбинирование условий
- Задание 1
- Задание 2
- Задание 3
- Задание 4
- Некоторые полезные функции языка Руби
- Генерация случайных чисел
- Задание 1
- Задание 2
- Задание 3
- Задание 4
- Угадай число
- Задание
Часть 3. Время веселья
- Тернарный оператор
- Задание
- Индикатор загрузки
- Задание
- Методы
- Задание
- Эмулятор Судного дня
- Задание 1
- Задание 2
- Задание 3
- Задание 4
- Переменные экземпляра и локальные переменные
- Однорукий бандит (слот-машина)
- Задание 1
- Задание 2
- Задание 3
- Массивы
- Немного про each
- Инициализация массива
- Обращение к массиву
- Битва роботов
- Задание
- Задание 1
- Задание 2
- Массивы массивов (двумерные массивы)
- Задание 1
- Задание 2
- Задание 3
- Задание 4
- Установка gem’ов
- Задание:
- Обращение к массиву массивов
- Задание 1
- Задание 2
- Задание 3
- Многомерные массивы
- Задание 1
- Задание 2
- Наиболее часто встречающиеся методы класса Array
- Метод empty?
- Методы length, size, count
- Задание:
- Метод include?
- Добавление элементов
- Выбор элементов по критерию (select)
- Отсечение элементов по критерию (reject)
- Метод take
- Есть ли хотя бы одно совпадение (any?)
- Все элементы должны удовлетворять критерию (all?)
- Несколько слов о популярных методах класса Array
- Размышления о массивах в Ruby
- Задание 1
- Задание 2
- Символы
- Задание
- Структура данных «Хеш» (Hash)
- Задание
- Задание
- Другие объекты в качестве значений
- Задание 1
- Пример JSON-структуры, описывающей приложение
- Задание 1
- Задание 2
- Англо-русский словарь
- Задание 1
- Задание 2
- Наиболее часто используемые методы класса Hash
- Установка значения по умолчанию
- Задание
- Передача опций в методы
- Задание
- Набор ключей (HashSet)
- Задание 1
- Задание 2
- Итерация по хешу
- Задание
- Метод dig
- Примечание
- Проверка наличия ключа
- Задание
Часть 4. Введение в ООП
- Классы и объекты
- Состояние
- Задание 1
- Задание 2
- Состояние, пример программы
- Задание
- Полиморфизм и duck typing
- Задание 1
- Задание 2
- Задание 3
- Наследование
- Модули
- Subtyping (субтипирование) против наследования
- Задание
- Статические методы
- Вся правда про ООП
- Отладка программ
- Отладка с использованием вывода информации в консоль
- Отладка с использованием консольного отладчика
- Отладка с использованием графического отладчика
- Практическое занятие: подбор пароля и спасение мира
- Задание 1
- Задание 2
- Задание 3
- Задание 4
- Задание 5
- Задание 6
- Задание 7
- Немного про виртуализацию, Docker, основные команды Docker
- Ruby Version Manager (RVM)
- Тестирование
- RSpec
- Задание 1
- Задание 2
- Заключение
- Решения задач
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание
- Решение
- Задание