Врубиться в Ruby

научим кодить с нуля

Полный курс программирования для людей любого уровня подготовки. Любого. Главное, чтобы был ноутбук и базовое знание английского. Можно со словарём.

Оставить заявку

Подробнее о курсе

Мы часто встречаем людей, которые говорят...

— Я умею кодить, но хочу это делать на Ruby on Rails

— Я не умею кодить, но хочу это делать. Неважно на чём

— Я просто хочу получить высокооплачиваемую профессию для удалённой работы

#tceh решил им помочь. Для этого мы нашли человека с большим стажем в кодинге, длительным опытом работы с RoR и навыками хорошего преподавателя. Таким оказался Игорь Симдянов, который согласился разработать образовательный курс.

Формат курса

Игорь проведёт 24 занятия. Каждое длится 3 часа. Большая ставка сделана на выполнение домашних заданий.

Занятия можно посещать лично в #tceh или онлайн.

Даты и время занятий

С 6 февраля — 26 апреля

Вторник и четверг, с 19:00 до 22:00

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

Место проведения

г. Москва, ул. Мясницкая, д. 13, стр. 18, Малый конференц-зал

Посмотреть на карте

До 19 января экономия 20 000 руб.

99 000 руб. 79 000 руб.

Курс ведёт

Почему Ruby on Rails

Начнём с терминологии. Ruby — язык программирования, RoR — фреймворк на этом языке. Если, к примеру, мы хотим приготовить салат, то Ruby — это огород и кузница, а RoR — набор овощей и ножи.

С одной стороны, Ruby on Rails достаточно сложен для новичков.
С другой, это самый быстрый лифт, когда полученные навыки начинают приносить деньги. Последний довод, на наш взгляд, сильнее первого.

Ещё у Ruby очень большое сообщество. Это значит, что самостоятельно прокачиваться уже после курса будет просто.

Вот несколько цитат о Ruby и RoR из сообществ:

«Ruby – красивый язык. Кодить на Ruby приятно. Все мои знакомые, перешедшие на Ruby и Rails, говорят, что стали счастливее»

«На Ruby on Rails мощные веб–приложения, которые раньше разрабатывались за недели или месяцы, теперь могут быть сделаны за считанные дни»

«Ruby on Rails, не прибегая к насилию, принуждает программистов писать более структурированный код. Код на «рельсах» даже без документации можно прочитать и осознать»

Основные знания и навыки,
которые получат студенты курса

  • Основы языка программирования Ruby

  • Погружение в Объектно-ориентированное программирование

  • Инструменты и приемы отладки

  • Ruby on Rails 5.1

  • Проектирование баз данных и язык запросов SQL

  • Базовые механики html, css, Twitter Bootstrap

  • Использование JavaScript ES6 совместно с Ruby on Rails

  • Применение git и Github

  • Тестирование приложений

  • Доставка приложения на сервер

  • Эффективное использование экосистемы Ruby и готовых библиотек

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

Занятие 1. Введение в веб-разработку

  • История Ruby и Ruby on Rails, чем они отличаются

  • Обзор экосистемы (rubygems)

  • Почему важно сначала изучить Ruby и только потом браться за Rails

  • Достоинства и недостатки Ruby и RoR

  • Что еще нужно знать для создания вебприложений (html/css, БД, js)

  • Как работает интернет: DNS, клиентсерверная архитектура, основы HTTP-протокола

  • Front-end и Back-end, что такое веб-приложение и как оно устроено

  • Что такое фреймворк и зачем он нужен

  • Версии Ruby, менеджеры управления версиями

  • Настройка среды: установка rvm и ruby через него

  • Контроль версий: git, GitHub, создание репозитория

  • Знакомство с командной строкой и терминалом (cd, ls, cat, pwd, mkdir, touch, vim, nano)

Занятие 2. Основы Ruby

  • Обзор языка

  • Языки компилируемые и интерпритируемые, понятие интерпритатора

  • Создание rb файлов, запуск программ, irb

  • Hello world!

  • Методы puts, print, p

  • Комментарии

  • Переменные, присвоение

  • Простые типы: строки, целые и нецелые числа, символы

  • Интерполяция

  • Коллекционные типы: массивы, хеши, range, Date, Time

  • Базовые операции с коллекционными типами

  • Как пользоваться документацией

Занятие 3. Ветвление и циклы Ruby

  • Бинарная логика: истоки

  • Ветвление: if, unless, case

  • Логические операторы

  • Чем оператор == отличается от === ?

  • Циклы: while, for, until

  • nil, true, false

  • Преобразование типов

  • Введение в стандартные классы

  • Конструкция require

Занятие 4. Введение в ООП в Ruby

  • Что такое ООП, какие задачи решает этот подход

  • Ruby — полностью объектно-ориентированный язык

  • Объекты и классы

  • Ссылки, сравнение, клонирование

  • Методы

  • Параметры методов

  • Необязательные параметры

  • Оператор *

  • Возвращаемые значения

  • Рекурсивные методы

  • Логические методы

  • Bang-методы

  • Конструктор

  • Синглетон-методы

  • Виды переменных в Ruby: локальные, глобальные, инстанс-переменные и переменные класса

Занятия 5. Итераторы

  • Стандартные итераторы Ruby: loop, times, upto, downto, each

  • Метод yield

  • Блоки и их свойства

  • Создаем собственный итератор

  • Пять базовых итераторов коллекций: each, map, select, reject, reduce

  • Коллекции Array, Hash и Set

  • Proc-объекты и lambda-функции

  • Регулярные выражения

Занятие 6. «Продвинутый» ООП и работа с усложнением логики программы

  • ООП-дизайн и мышление

  • Принципы хорошего кода: стиль, DRY, KISS

  • Методы класса, переменные класса

  • Разбиение программы на файлы

  • Константы и что с ними не так

  • Модули: миксины и пространства имен

  • Методы include и extend

  • Стандартные модули: Enumerable, Comparable, Forwardable и Singleton

  • DuckType

  • Перегрузка операторов

Занятие 7. Наследование и область видимости

  • Абстракция, инкапсуляция, наследование, полиморфизм

  • Наследование и полиморфизм

  • Переопределение методов, метод super

  • self и область видимости

  • Открытые, закрытые и защищенные методы

  • Объект main

  • Поиск метода в цепочке наследования

  • ООП-модель Ruby

Занятия 8. Исключения и отладка приложения

  • Дебаг приложения на руби принципы и инструменты

  • Иерархия исключений

  • «Ловля» и обработка исключений

  • Чтение и запись в файлы

  • Работа с csv, yaml и json

  • Логирование

  • Гемы — библиотеки языка Ruby

  • Гем pry

  • Гем rubocop

  • Готовимся к Ruby on Rails

  • Гем bundler и как его использовать?

Занятия 9. Основы html

  • Что такое html

  • Структура html документа

  • Теги:

    • Текст

    • Списки

    • Ссылки

    • Таблицы

    • Формы

  • Div, классы и id

  • HTTP-протокол: заголовки, запросы и ответы

  • GET-запросы

  • POST-запросы

Занятие 10. Основы css и Twitter Bootstrap

  • Что такое css

  • Селекторы, id и классы

  • Стилизация html

  • Twitter Bootstrap

  • Сетка

  • Основные элементы

  • SASS

Занятие 11. Введение в Ruby on Rails

  • Обзор фреймворка: немного истории, кто сделал и зачем

  • Принципы (convention over configuration, agile, DRY, тестирование)

  • MVC: Model I и Model II

  • Виртуализация

    • Виртуальные машины

    • Docker

    • Linux подсистема в Windows

  • Создание rails-приложения

  • Обзор структуры приложения

  • Генераторы, scaffolding, rake-задачи

  • Простейшее приложение (блог за 15 мин)

  • Разрабатываем rake-задачу в рамках Ruby on Rails

  • Традиционное приложение и api-приложение, middleware

  • Окружения, bundler, Gemfile, Gemfile.lock, rake

  • Отладка Ruby on Rails приложений

Занятие 12. Роутинг, контроллеры и представления

  • Связь роутинга, контроллеров и представления

  • Контроллеры и экшены

  • Соглашения и автозагрузка

  • Рендеринг ответа: текст, html

  • Шаблоны Haml, Slim

  • Утилиты erb2slim и erb2haml

  • Настройка генераторов

  • Расположение представлений

  • Layout

  • Partials

  • Assets pipeline

  • Х-Ray

  • Настройка роутинга

  • Рендеринг и редирект

  • Сессии, cookies

  • Rails Concerns

Занятие 13. Основы баз данных

  • Базы данных: история и современное состояние дел

  • Основы баз данных: таблицы, столбцы, строки

  • Связи между таблицами (1to1, 1toN, NtoN)

  • Язык запросов SQL

  • Проектирование баз данных, нормализация

  • Клиенты доступа к базам данных

  • Индексы

  • Транзакции

  • Введение в NoSQL

  • Подключение баз данных к Ruby on Rails

Занятие 14. Введение в ActiveRecord

  • Как работают с базами данных в RoR

  • ORM ActiveRecord

  • Модели

  • Миграции

  • Схема

  • seed-файл

  • ffaker

  • CRUD-операции

  • Консоль Ruby on Rails

  • Ресурсы

  • CRUD

  • REST и RESTful routing

  • RESTful controllers

  • Организация моделей по мере роста приложения

  • annotate

Занятие 15. Передача данных из представления в модель

  • MVC: связь представлений, контроллеров и моделей

  • Модели в представлениях

  • Стандартные хелперы для представлений

  • Создаем свои собственные хэлперы

  • Хелперы Slim

  • Базовые формы

  • Передача данных в контроллер

  • strong_params

  • Основные типы валидации

  • Обработка ошибок валидации в контроллере и представлениях

  • Вложенные формы

  • Полиморфные ассоциации

  • Загрузка файлов

  • Динамическое добавление вложенных форм

Занятие 16.

  • Ассоциации один-ко-многим и один-к-одному: has_one, has_many, belongs_to

  • Ассоциации многие-ко-многим: habtm, has_many :through

  • Миграции для ассоциаций

  • Опции ассоциаций

  • Формы с ассоциациями

  • Запросы в AR

  • Скоупы

  • Цикл жизни объекта

  • Коллбеки и их использование

  • Транзакции

  • Организация деревьев: 4 основных паттерна

  • awesome_nested_set

Занятие 17. Аутентификация в приложении

  • Как работает аутентификация

  • Аутентификация встроенными средствами Rails

  • Devise

  • Коллбеки в контроллерах

  • Протокол OAuth 2.0 и схемы авторизации

  • Authorization Code Flow

  • Аутентификация через Facebook

  • Тестирование аутентификации через соц. сети

Занятие 18. ActionMailer и локализация

  • Отправка писем из rails-приложения

  • Отправка письма-подтверждения о регистрации (Devise)

  • ActionMailer

  • Конфигурация ActionMailer (хост и порт)

  • open_letter

  • Настройки rails-приложения

  • Локализация

  • I18n

Занятие 19. Инструменты для работы с моделями

  • Поиск в базе данных

  • ransack

  • Постраничная навигация

  • will_paginate

  • Обзор движков полнотекстового поиска

  • Shpinx и ElasticSearch

  • thinking-sphinx

  • searchkick

  • Полнотекстовый поиск в rails-приложении

  • Отслеживание изменений в моделях

  • PaperTrail и Diffy

  • StateMachine

Занятие 20. JavaScript в Ruby on Rails

  • История языка

  • CoffeeScript

  • ES6

  • yarn и Ruby on Rails

  • DOM

  • Основы jQuery: поиск элементов в дереве, изменения свойств элементов

  • js в приложении (куда складывать, как инлайнить)

  • Событийная модель браузера

  • Отлов событий, привязка экшнов к событиям

  • Скрыть/показать элементы, скопировать, вставить (append, prepend)

  • API jQuery

  • Визуальные эффекты

  • Сортировка элементов перетаскиванием

  • Как работает ajax

  • Ajax средствами Rails (js-ответы)

Занятие 21. Деплой

  • Ветвление в git

  • Merge и rebase

  • Git Flow

  • Ruby-сервера и их особенности: Thin, Unicorn, Puma

  • Heroku

  • Деплой на heroku

  • Переменные окружения

  • dotenv

  • Настройка серверного окружения

  • Установка необходимых пакетов

  • Особенности настройки сервера для rails-приложений

  • Capistrano

  • Capflow

  • Создание скрипта деплоя

  • Деплой приложения

  • Модификация Capflow

  • Мониторинг: Sentry, NewRelic, god, eye

Занятие 22. Фоновые задачи, очереди и кэширование

  • Зачем нужны фоновые задачи

  • DelayedJob

  • Sidekiq

  • Sidetiq

  • ActiveJob

  • Запуск задач по расписанию

  • whenever

  • Оптимизация приложения

  • Инструменты для оптимизации

  • Что нужно оптимизировать, а что нет

  • Виды кеширования в rails

  • Фрагментарное кеширование

  • Russian-Doll кеширование

Занятие 23. Тестирование

  • Виды тестов

  • Настройка проекта

  • Знакомство с RSpec и shoulda_matchers

  • Тесты моделей

  • FactoryGirl

  • Основные конструкции RSpec

  • Мэтчеры RSpec для контроллеров

  • Тесты для стандартного контроллера

  • Что такое приемочное тестирование

  • Capybara

  • Database Cleaner

  • Создание приёмочных тестов с использованием Cucumber

  • simplecov

Занятие 24. Сложные вопросы

  • WebSockets. ActionCable

  • Сериалайзеры. JBuilder и Active Model Serializers

  • Декораторы. Draper

  • Middleware

  • Faraday

  • Virtus-модели

  • Работа с изображениями. PaperClip и CarrierWave

  • Работа с хранилищами. SFTP, S3, Swift, Chep

  • fog

Что программист на Ruby может сделать

Язык Ruby очень гибкий. Программисты на Ruby решают самые популярные задачи бизнеса. Они как Цезарь – приходят, видят, побеждают.

Мобильное приложение

Проект RubyMotion делает разработку приложений для iPhone и iPad удобной и понятной. А с проектом Foundry открываются чертоги Android и других платформ.

Десктопное приложение

MacRuby — проект, с которым влёт пишут приложения для Mac OS X. Удобно, быстро, качественно.

Сложный веб-сайт

Ruby-on-Rails — фреймворк, заточенный для веб-сайтов. И речь не об одностраничных лендингах, а о проектах со сложной структурой.

Что уже написали на Ruby

Вот краткий перечень компаний, которые используют язык Ruby в своих продуктах:

Отзывы выпускников курса

Обучение проходит по эффективным методикам #tceh

Почему выбирают обучение в #tceh?

Потому что это не обучение — это полноценное освоение новой профессии. В #tceh покупают реализацию мечты об интересной и хорошо оплачиваемой работе.

Качество

Образовательная программа многократно тестируется и проверяется. Преподаватели проходят подготовку. Материалы одобрены экспертами из индустрии.

Мотивация

Заниматься в группе проще, чем в одиночку. Люди вокруг помогут найти ответ на вопрос и найти силы, если будет сложно.

Стоимость

До 19 января экономия 20 000 руб.

99 000 руб. 79 000 руб.

Если вы хотите оплатить в рассрочку, напишите письмо на edu@tceh.com или позвоните Елизавете +7 499 647-47-80

Оставить заявку

Что входит в стоимость

  • Сертификат

  • Нетворкинг

  • Учебные материалы

  • Видеозаписи всех уроков

  • Разбор кейсов и общение в закрытой группе

Способы оплаты Оплатить можно картой, банковским переводом или интернет‑кошельком.
18+

Расскажите о курсе друзьям

+7 499 647-47-80

г. Москва, ул. Мясницкая, д. 13, стр. 18, Малый конференц-зал