«Врубиться в Ruby»

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

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

Записаться на курс

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

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

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

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

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

Формат курса

Виталий проведёт 40 занятий. Каждое длится 3 часа. Большая ставка сделана на выполнение домашних заданий. Виталий обещает придумывать изощрённые наказания для тех, кто домашнее задание не сделает.

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

Курс продлится 19 недель.

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

С 14 сентября 2015г. по 7 февраля 2016г.
с 19:00 по 22:00.
Каждый понедельник и четверг (2 раза в неделю).

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

Москва, Серебряническая набережная, 29, 7 этаж, платформа для запуска стартапов #tceh.

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

Если вы не из Москвы, вы сможете учиться онлайн

70 000 рублей

Записаться на курс

Курс ведёт

Виталий Куреннов,
работал над Ruby проектами для Nokia и Avaya

Виталий 6 лет пишет на Ruby и больше года обучает всех желающих этому навыку. Эффективность его собственной методологии обучения  доказана на практике.

Почему 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, такие как ООП, MVC, REST
  • Проектирование баз данных, а также языка запросов SQL
  • Базовые механики html, css, Twitter Bootstrap
  • Язык Javascript на базовом уровне (основные конструкции языка, манипуляции с DOM)
  • Применение git и Github
  • Управление разработкой (работа с трекером, системой контроля версий)
  • Создание приложения на Ruby on Rails по методологии Test Driven Development/BehaviourDriven Development (TDD/BDD)
  • Создание приложения на других языках по методологии TDD/BDD

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

Первый блок. Занятия 1-10.

Занятие 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, pwd, mkdir, touch,nano)
  • Установка и настройка текстового редактора SublimeText

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

  • Обзор языка (самые общие понятия: программисты пишут для людей, а не для машин, руби - это язык созданный для того, чтобы его конструкции легко читались)
  • Языки компилируемые и интерпритируемые, понятие интерпритатора
  • Создание rb файлов, запуск программ, irb. Hello world!
  • Конструкции языка: ветвление, циклы
  • Переменные, присвоение
  • Простые типы: строки, целые и нецелые числа, символы
  • Составные типы: массивы, хеши, range, Date, Time
  • Итераторы
  • Nil

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

  • Что такое ООП, какие задачи решает этот подход
  • Абстракция, инкапсуляция, наследование, полиморфизм
  • Что такое классы и объекты, чем они отличаются.
  • Методы объекта
  • Instance variables, getters/setters
  • Конструктор

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

  • ООП-дизайн и мышление
  • Принципы хорошего кода: стиль, DRY, KISS
  • Наследование и полиморфизм
  • Переопределение методов, метод super
  • Методы класса, переменные класса
  • Сложные методы (yield)
  • Разбиение программы на файлы (require)
  • Модули: миксины и пространства имен

Занятие 5. Работа с файлами, исключения и отладка приложения

  • Чтение и запись в файлы
  • Работа с csv, yaml и json
  • Дебаг приложения на руби принципы и инструменты
  • Иерархия исключений
  • «Ловля» и обработка исключений

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

  • Что такое html
  • Струкутра html документа
  • Теги:
    • Текст
    • Списки
    • Ссылки
    • Таблицы
    • Формы
  • Div, классы и id

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

  • Что такое css
  • Селекторы, id и классы
  • Стилизация html
  • Twitter Bootstrap
  • Сетка
  • Основные элементы

Занятие 8. Ruby в веб

  • HTTP-протокол: заголовки, запросы и ответы
  • Как отправить запрос из Ruby и как обработать ответ
  • Парсинг страниц (Mechanize, Nokogiri)
  • Sinatra и создание простейшего вебприложения
  • GET-запросы
  • POST-запросы

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

  • Обзор фреймворка: немного истории, кто сделал и зачем
  • Принципы (convention over configuration, agile, DRY, тестирование)
  • Архитектура
  • Введение в MVC
  • Создание rails-приложения
  • Обзор структуры приложения
  • Генараторы, scaffolding
  • Простейшее приложение (блог за 15 мин)

Занятие 10. Виды

  • Связь роутинга, контроллеров и видов
  • Рендеринг ответа: текст, html
  • Расположение видов
  • Layout
  • Partials
  • Assets pipeline

Второй блок. Занятия 11-20.

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

  • Основы БД: таблицы,
  • Cвязи между таблицами (1to1, 1toN, NtoN)
  • Язык запросов SQL
  • Проектирование баз данных, нормализация
  • Индексы
  • Транзакции

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

  • Как работают с БД в RoR
  • ORM ActiveRecord
  • Модели
  • Миграции
  • CRUD-операции
  • Rails console

Занятие 13. MVC и REST

  • Ресурсы
  • CRUD
  • REST и RESTful routing
  • RESTful controllers
  • non-restful routing
  • Рендеринг и редирект
  • MVC: cвязь видов, контроллеров и моделей
  • Модели в видах
  • Стандартные хелперы для видов

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

  • Базовые формы
  • Передача данных в контроллер
  • strong_params
  • Основные типы валидации
  • Обработка ошибок валидации в контроллере и видах

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

  • gems, Gemfile, Gemfile.lock
  • Сессии, cookies
  • Как работает аутентификация
  • Аутентификация встроенными средствами Rails
  • Devise
  • Коллбеки в контроллерах

Занятие 16. Ассоциации в ActiveRecord

  • Ассоциации один-ко-многим и один-к-одному: has_one, has_many, belongs_to
  • Ассоциации многие-ко-многим: habtm, has_many :through
  • Миграции для ассоциаций
  • Опции ассоциаций
  • Формы с ассоциациями

Занятие 17. Запросы и callbacks в ActiveRecord

  • Запросы в AR
  • Скоупы
  • Цикл жизни объекта
  • Коллбеки и их использование
  • Транзакции

Занятие 18. ActionMailer

  • Отправка писем из rails-приложения
  • Отправка письма-подтверждения о регистрации (Devise)
  • ActionMailer
  • Конфигурация ActionMailer (хост и порт)

Занятие 19. Локализация и конфигурация приложения, деплой

  • Настройки railsприложения
  • Локализация
  • Heroku
  • Деплой на heroku

Занятие 20. Введение в JavaScript

  • История языка
  • Структуры языка: ветвление, циклы
  • DOM
  • Основы jQuery: поиск элементов в дереве, изменения свойств элементов
  • js в приложении (куда складывать, как инлайнить)

Третий блок Занятия 21-30.

Занятие 21. События в браузере и их обработка

  • Событийная модель браузера
  • Отлов событий, привязка экшнов к событиям
  • Скрыть/показать элементы, скопировать, вставить (append, prepend)
  • API jQuery
  • Визуальные эффекты
  • Сортировка элементов перетаскиванием

Урок 22. Процесс разработки

  • Как ведется процесс разработки в реальных командах
  • Трекер и как им пользоваться
  • Agile-методология
  • Истории пользователя
  • Декомпозиция задания на пользовательские истории
  • Ветвление в git
  • Merge и rebase
  • Git Flow
  • Общий процесс разработки от постановки задачи до ее сдачи

Урок 23. Введение в TDD/BDD

  • Что такое TDD и BDD
  • В чем отличие BDD от TDD
  • Почему тесты надо писать до кода
  • Виды тестов
  • Настройка проекта
  • Знакомство с RSpec и shoulda_matchers
  • Тесты моделей

Урок 24. Тестирование контроллеров

  • Основные конструкции RSpec
  • Мэтчеры RSpec для контроллеров
  • Тесты для стандартного контроллера
  • Настройка rails-генераторов
  • Вложенные ресурсы и их тестирование

Урок 25. Приемочное тестирование

  • Что такое приемочное тестирование
  • Полный цикл TDD/BDD
  • Настройка railsгенераторов
  • Создание приемочных тестов с RSpec и Capybara

Урок 26. Ajax в Rails

  • Как работает ajax
  • Ajax средствами Rails (jsответы)
  • Приемочные тесты для ajaxфункционала
  • Драйверы Capybara
  • Тестовая база при тестировании ajaxфункционала
  • Database Cleaner

Урок 27. Полиморфные ассоциации и nested forms

  • Вложенные формы
  • Полиморфные ассоциации
  • Загрузка файлов
  • Динамическое добавление вложенных форм

Урок 28. Различные формы AJA* в Rails

  • Различные формы асинхронных запросов в Rails
  • JSONответ сервера
  • Обработка JSON-ответа
  • Rails Concerns

Урок 29. «Тонкие» контроллеры и responders

  • «Тонкие» контроллеры, «толстые» модели
  • Идеология MVC
  • gem responders
  • Делаем контроллеры «тонкими»

Урок 30. OAuth и аутентификация через соц. сети

  • Протокол OAuth 2.0 и схемы авторизации
  • Authorization Code Flow
  • Аутентификация через Facebook
  • Тестирование аутентификации через соц. сети

Четвёртый блок. Занятия 31-40.

Урок 31. Авторизация в Rails

  • Что такое авторизация, в чем отличие от аутентификации
  • Авторизация с помощью CanCan
  • Авторизация с помощью Pundit
  • Тестирование авторизации

Урок 32. REST API

  • REST-архитектура
  • Проектирование REST API
  • Создание OAuth-провайдера
  • Реализация REST API
  • Тестирование REST API

Урок 33. «Продвинутый» RSpec

  • Shared examples
  • Mock, stubs
  • Message expectations

Урок 34. Фоновые задачи

  • Зачем нужны фоновые задачи
  • DelayedJob
  • Sidekiq
  • ActiveJob
  • Запуск задач по расписанию

Урок 35. Полнотекстовый поиск

  • Обзор движков полнотекстового поиска
  • Shpinx
  • Thinkning Sphinx
  • Полнотекстовый поиск в rails-приложении

Урок 36. Транзакции и блокировки

  • Транзакции в БД и приложении
  • Оптимистичная блокировка
  • Пессимистичная блокировка

Урок 37. Кеширование

  • Оптимизация приложения
  • Инструменты для оптимизации
  • Что нужно оптимизировать, а что нет
  • Виды кеширования в rails
  • Фрагментарное кеширование
  • Russian-Doll кеширование

Урок 38. Базовая настройка сервера и деплой приложения

  • Настройка серверного окружения
  • Утсановка необходимых пакетов
  • Особенности настройки сервера для rails-приложений
  • Capistrano
  • Создание скрипта деплоя
  • Деплой приложения

Урок 39. Продвинутая настройка сервера

  • Инструменты автоматического мониторинга
  • Monit и его настройка
  • Автоматическое резервное копирование БД.

Урок 40. Защита учебного проекта

  • Индивидуальная защита выполненного учебного проекта
  • Оценка кода и решения
  • Рекомендации по улучшению проекта

Занятия проводятся в #tceh

#tceh – это платформа для запуска стартапов. Находится на Серебрянической набережной в доме 29. Это бизнес-центр класса А с панорамными окнами на Москву-реку.
Учиться здесь – удовольствие.


Время — с 19:00 до 22:00
Даты — с 14 сентября 2015 каждый понедельник и четверг.

Серебряническая набережная, 29

Стоимость курса зависит от даты покупки

Оплатить можно картой, банковским переводом или интернет-кошельком.

Цена сейчас

70 000 руб.

Цена действительна
до 31 августа.
Купи сейчас и сэкономь 10 000 рублей.

Цена потом

75 000 руб.

Цена действительна
с 31 августа по 7 сентября.
Экономия 5 000 рублей.

Цена в последний момент

80 000 руб.

Цена действительна
с 7 сентября – последние места в группе.


Если вы хотите оплатить в рассрочку, напишите письмо на edu@tceh.com
или позвоните Денису +74996474780.


Гарантия: мы вернём вам полную стоимость обучения, если после первых трёх занятий вы поймёте, что этот курс вам не подходит.


Регистрация на курс

Перейти к заказу билетов