Проходил 30 ноября 2017 года в 20:00

День открытых дверей
Разработчик С++

День открытых дверей онлайн

Хотите узнать, почему OTUS – больше, чем просто образовательный портал?
Как OTUS дает возможность стать частью сообщества профессионалов и сделать новый шаг по карьерной лестнице?
Почему учиться – не обязанность, а удовольствие и почему тесное сплетение теории и практики в обучении дает эффект синергии?
Приходите к нам на День Открытых Дверей. Формат проведения – онлайн – подключиться можно из любой точки мира!

Запись

О курсе

Разработчик C++
50 000 ₽
5 месяцев
Начало 25 сентября
  • Умение писать на С++ правильно.
  • Понимание современных проблем языка и специфики его применения.
  • Освоение паттернов проектирования, принципов написания многопоточного кода.
  • Знание, как взаимодействовать с сетью, хранить и обрабатывать большие объемы данных.
  • Владение нюансами разработки на С++, которые отличают программиста уровня Middle от Junior.
Обучено студентов 100+
32 практических занятия
Программа курса
Модуль 1
Введение
Модуль 2
Архитектура
Модуль 3
Параллельные вычисления
Модуль 4
Сеть
Модуль 5
Хранилища
Модуль 6
ML
Модуль 7
Проектная работа
Введение
Система сборки: build, test and deploy.
Поиск распространяемых пакетов. Кастомный модуль для наших пакетов.
25 сентября, 19:30 — 21:30
Лектор: Дмитрий Шебордаев
Домашние задания: 1
ДЗ
Сборка и публикация пакета. Написать программу выводящую на консоль единственную строку

Hello, World!

Сформировать готовый для установки deb-пакет со скомпилированной программой и выложить его в репозиторий.
Прислать ссылку на репозиторий в github и ссылку на репозиторий с
пакетом.
Будет здорово, но не обязательно
Добавить версионность в пакет и сообщение.
Запустить на этапе сборки тесты.
Может пригодиться
Выложить исходные тексты в репозиторий на github.
Залогиниться на https://travis-ci.org/ и включить для своего репозитория
автоматическую сборку.
Залогиниться на https://bintray.com/ (For an Open Source Account и аккаунт
github). Создать новый репозиторий - имя произвольное, тип Debian, Default
Licenses любая. После создания отредактировать включив GPG sign.
Создать в созданном репозитории новый пакет - имя произвольное,
ссылка на контроль версии может быть указана как - (просто чтобы было
заполнено).
По ссылке https://bintray.com/profile/edit в пункте API Key скопировать
ключ. В настройках репозитория в https://travis-ci.org создать переменную,
например BINTRAY_API_KEY, и в качестве значения API Key. Это
позволит не указывать явно ключ в исходниках.


Пример на github:
https://github.com/vvz-otus/hw02.cpp01_2
Только ваш проект называться будет helloworld (а не cpp01_2:)
Широкоиспользуемые фичи C++11 стандарта. auto. Замыкание - Лямбда-функции. Кортежи.
Некоторые небольшие, на первый взгляд, нововведения настолько меняют язык, что диву даешься :)
28 сентября, 20:00 — 21:30
Широкоиспользуемые фичи C++11 стандарта. rvalue и lvalue ссылки. Move semantic. Variadic Templates. POD.
2 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-02. C++14. 1.
Выполнить задание описанное в ip_filter.pdf

2.
Зарегистрироваться в http://acm.timus.ru
Решить первые пять простых задач:
1001 1000 1785 1293 2012

3. Опционально!
Реализовать constexpr-функцию нахождения ближайшей большей степени двойки
https://goo.gl/CBfjE9
Рассмотрим полезные нововведения 14 стандарта.
5 октября, 20:00 — 21:30
Вглубь реализации умных указателей.
Подводные камни и оптимизации.
9 октября, 20:00 — 21:30
Идея аллокаторов.
Стандартный аллокатор и его недостатки. Различные методы управлением памятью: достоинства и недостатки.
12 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-03. allocator. 1. Выполнить задание описанное в 03.homework.pdf
2. На acm.timus.ru выполнить 1409, 1877, 2001, 1264, 1787
Что это и зачем? Как выглядит в C++: макросы и шаблонная магия. Примеры. Type traits в STL. SFINAE
16 октября, 20:00 — 21:30
Архитектура
Принципы проектирования ПО
UML. Принципы: SoC, DRY, YAGNI, KISS, TDA, LoD, SOLID
19 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-04.doxygen. 1. Выполнить задание описанное в 04.homework.pdf
2. Решить первые 15 задач на acm.timus.ru (от простых к сложным)
3. Предоставить РЕВЬЮ ДЗ-02 от двух коллег (которые его выполнили)
4. Опционально: предоставить примеры, из своей практики, использования Принципов Проектирования
GRASP. Часть 1
Рассмотрим: Indirection, Low Coupling, Polymorphism, Protected Variations.
23 октября, 20:00 — 21:30
GRASP. Часть 2
Рассмотрим: Creator, Controller, Pure Fabrication, Information Expert, High Cohesion
26 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-05. 1. Выполнить задание описанное в 05.homework.pdf
2. Должно быть решено 20-ть простых задач на acm.timus.ru
3. Предоставить РЕВЬЮ ДЗ-03 от двух ревьюеров.
4.Опционально: Предоставить ревью на РЕВЬЮ ДЗ-02.
Шаблоны GoF. Часть 1.
Порождающие шаблоны проектирования.
30 октября, 20:00 — 21:30
Шаблоны GoF. Часть 2.
Структурные шаблоны проектирования.
2 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-06.matrix. 1. Выполнить задание описанное в 06.homework.pdf
2. Решить 25-ть простых задачь на acm.timus.ru
3. Предоставить ревью ДЗ-04
4. Предоставить оценку своего ревью от двух других коллег (не ревьюверов)
Шаблоны GoF. Часть 3.
Поведенческие шаблоны проектирования. 1 часть
6 ноября, 20:00 — 21:30
Шаблоны GoF. Часть 4.
Поведенческие шаблоны проектирования. 2 часть
9 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-07.cmd. 1. Выполнить задание описанное в 07.homework.pdf
2. Решить 30-ть простых задачь на acm.timus.ru
3. Предоставить ревью ДЗ-05
4. Предоставить оценку своего ревью ДЗ-03 от двух других коллег (не ревьюеров)
Антипаттерны
Разберем антипаттерны программирования (кодирования), ООП, проектирования и антипаттерны в других областях
13 ноября, 20:00 — 21:30
STL. Часть 1.
Структуры данных STL
16 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализуем алгоритм используя разные структуры. Оцениваем читаемость и эффективность..
STL. Часть 2
Алгоритмы
20 ноября, 20:00 — 21:30
Boost. Часть 1
Контейнеры
23 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Создаем набор повседневных утилит..
Boost. Часть 2
Алгоритмы
27 ноября, 20:00 — 21:30
Параллельные вычисления
Многопоточность
Потоки. Критические секции и методы синхронизации: мьютексы, семафор, условные переменные, барьеры. Пулы потоков.
30 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Многопоточная обработка команд.
Шаблоны 5
Concurrency pattern. Active Object, Balking, Barrier, Double-checked locking, Guarded suspension, Leaders/followers, Monitor Object, Reactor, Read write lock, Scheduler, Thread pool, Thread-local storage.
4 декабря, 20:00 — 21:30
Асинхронное программирование
Архитектура асинхронных сервисов. Низкоуровневая поддержка асинхронного выполнения кода.
7 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Асинхронная обработка команд.
Lockfree DS
Неблокирующие структуры данных и алгоритмы. BOOST Lockfree
11 декабря, 20:00 — 21:30
Сеть
Сетевое взаимодействие
Сокеты. Протоколы: TCP и UDP. Сериализация. HTTP. Json. Zmq. Protobuf.
14 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Асинхронная сетевая обработка команд.
Асинхронный ввод/вывод
Библиотеки и практики работы с неблокирующей передачей данных
18 декабря, 20:00 — 21:30
Хранилища
РСУБД
Использование РСУБД. Подключение и работа с БД
21 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
outer join.
Key Value
Идея NoSQL. Aerospike, redis, leveldb
25 декабря, 20:00 — 21:30
Много данных
Map reduce
28 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
mapreduce.
ORM
ООП при работе с базами данных. Паттерны DAO и Repository
1 января, 20:00 — 21:30
ML
Dlib. Часть 1.
Кластеризация, тематическое моделирование.
4 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
Кластеризация.
Dlib. Часть 2.
Регрессия
8 января, 20:00 — 21:30
Dlib. Часть 3.
Классификация
11 января, 20:00 — 21:30
Домашние задания: 2
ДЗ
Классификация.
ДЗ
Проектная работа.
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Проект должен стать примером кода, который можно показывать потенциальным работодателям.

Примеры тем проекта:
- in-memory sql-сервер
- хранилище типа key-value
- очередь с моделью подписчиков

F.A.Q.: Наиболее часто задаваемые вопросы:

Могу ли я принять участие в розыгрыше, если я уже оплатил обучение?
В розыгрыше принимают участие все пользователи, успешно прошедшие вступительное тестирование. Если вы уже оплатили обучение и выиграли в розыгрыше, то мы компенсируем вам затраты.
Нужно ли оплачивать обучение до Дня открытых дверей, если я хочу гарантированно попасть в группу?
Да, мы рекомендуем заранее оплатить обучение, чтобы гарантированно попасть в группу. В период проведения Дня открытых дверей резко возрастает количество желающих обучаться, поэтому может случиться так, что к окончанию Дня открытых дверей мест в группе не останется
Кто будет проводить День открытых дверей?
Проводить День открытых дверей будет преподаватель курса.
Как принять участие в Дне открытых дверей?
Для того, чтобы принять участие в Дне открытых дверей, оставьте свой e-mail в поле регистрации на мероприятие. Перед началом Дня открытых дверей мы пришлем вам ссылку, пройдя по которой, вы сможете присоединиться к вебинару. Если вы хотите принять участие в розыгрыше – не позже чем за час до начала мероприятия необходимо зарегистрироваться на сайте и успешно пройти вступительное тестирование
Какие вопросы будем обсуждать на Дне открытых дверей?
На дне открытых дверей мы поговорим о проекте OTUS (о программе курса, почему мы не принимаем в группы новичков, почему учиться у нас интересно, но сложно), карьерных перспективах выпускников (почему вероятность карьерного роста у лучших студентов стремится к 100%), учебном процессе (оплатах, оценке знаний, сертификатах и прочих аспектах). Также ведущий мероприятия с радостью ответит на все ваши вопросы