День открытых дверей по курсу «Разработчик C++» 18.06.2018 в 20:00 | OTUS

Курсы

Специализации Курсы в разработке Подготовительные курсы
+7 499 110-61-65
Проходил 18 июня 2018 года в 20:00

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

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

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

Запись

О курсе

Разработчик C++
60 000 ₽
5 месяцев
Начало 27 марта
  • Умение писать на С++ правильно.
  • Понимание современных проблем языка и специфики его применения.
  • Освоение паттернов проектирования, принципов написания многопоточного кода.
  • Знание, как взаимодействовать с сетью, хранить и обрабатывать большие объемы данных.
  • Владение нюансами программирования на С++, которые отличают разработчика уровня Middle от Junior.
Обучено студентов 200+
32 практических …
Программа курса
Модуль 1
Современный C++
Модуль 2
Архитектура
Модуль 3
Параллельные вычисления
Модуль 4
Сеть
Модуль 5
Хранилища
Модуль 6
ML
Модуль 7
Проектная работа
Современный C++
CI/CD. C++11. C++14. C++17. Управление памятью. Шаблонная магия
Система сборки: build, test and deploy.
познакомиться,
понять, как будем работать,
узнать, с кем и как общаться,
понять, зачем нужна автоматизация сборки,
расшифровывать аббревиатуру CI/CD,
подготовить стенд для выполнения самостоятельных работ,
27 марта, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-1. Сборка и публикация пакета. Что требуется сделать:
1. Выполнить задание, описанное в 01.homework.pdf
2. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com с реализованным проектом;
- ссылку на проект на travis-ci.org с историей (и хотя бы одной успешной) сборок;
- ссылку на репозиторий bintray.com, откуда можно скачать получившийся deb-пакет.
Особенности C++11. auto, lambda, tuple
освежить основы по C++11 (пригодится дальше по курсу),
узнать новые фичи C++11 (тоже пригодится),
обсудить особенности, которые важно учитывать
1 апреля, 20:00 — 21:30
Особенности C++11. Move, variadic templates.
освежить основы по C++11 (пригодится дальше по курсу),
узнать новые детали,
обсудить особенности, которые стоит учитывать
3 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-02. Фильтрация IP-адресов. Что требуется сделать:
1. Выполнить задание описанное в 02.homework.pdf

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

3. Опционально!
Реализовать constexpr-функцию нахождения ближайшей большей степени двойки
https://goo.gl/CBfjE9

4. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com с реализованным проектом;
- ссылку на проект на travis-ci.org с историей (и хотя бы одной успешной) сборок;
- ссылку на репозиторий bintray.com, откуда можно скачать получившийся deb-пакет;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач.
Сравнение C++11/C++14 с С++ 03
освежить знания по C++14,
узнать новые детали,
обсудить особенности С++ 14, на которые стоит обратить внимание
8 апреля, 20:00 — 21:30
Обзор C++17. Constexpr lambda. Fold expression. Attributes. Type deduction.
разобраться с основными нововведениями С++ 17,
понять, в каких случаях они используются,
обойти несколько спорных моментов
10 апреля, 20:00 — 21:30
Обзор C++17. If constexpr. Structured bindings. Statements with initializer. std::filesystem.
разобраться с основными нововведениями С++17
понять кейсы использования
обcудить несколько тонких моментов
научиться пользоваться новым стандартом языка
15 апреля, 20:00 — 21:30
Реализация умных указателей
запомнить правило: "взял память - верни, когда больше не нужна",
понять, как следовать этому правилу,
разобраться с разными типами умных указателей
17 апреля, 20:00 — 21:30
Идея аллокаторов
осознать важность стратегий аллокации памяти,
понять, что можно использовать разные аллокаторы,
разобраться, как реализовать свой аллокатор,
понять, как расширяется std::vector, и почему именно так
22 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-03. allocator. Что требуется сделать:
1. Выполнить задание описанное в 03.homework.pdf

2. На acm.timus.ru выполнить задачи:
1409, 1877, 2001, 1264, 1787

3. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на проект на travis-ci.org;
- ссылку на репозиторий bintray.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач.
Шаблонная магия
перестать бояться шаблонов,
пообещать себе перестать пользоваться макросами,
читать STL,
искать документацию
24 апреля, 20:00 — 21:30
Архитектура
Принципы проектирования ПО, GRASP, шаблоны GoF, STL, Boost
Принципы проектирования ПО
разобраться, зачем нужны принципы;
научиться пользоваться принципами,
научиться читать UML диаграммы.
29 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-04. Doxygen. Что требуется сделать:
1. Выполнить задание описанное в 04.homework.pdf

2. Решить первые 15 задач на acm.timus.ru (от простых к сложным). Отсортированный по сложности список:
http://acm.timus.ru/problemset.aspx?space=1&page=all&skipac=False&sort=difficulty

3. Сделать ревью решений ДЗ-02 двух коллег (которые его выполнили)

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

5. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на проект на travis-ci.org;
- ссылку на репозиторий bintray.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач;
- ссылки на выполненные ревью.
GRASP
научимся обращать внимание на архитектурные детали кода,
улучшать метрики кода,
находить ошибки в коде коллег
1 мая, 20:00 — 21:30
Шаблоны GoF. Порождающие.
научиться читать паттерны проектирования,
научиться использовать паттерны,
понять ценность экспериментов.
6 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-05. Editor.. Что требуется сделать:
1. Выполнить задание, описанное в 05.homework.pdf

2. На acm.timus.ru решить любые 3 задачи с уровнем сложности от 100 до 150.
Отсортированный по сложности список:
http://acm.timus.ru/problemset.aspx?space=1&page=all&skipac=False&sort=difficulty
Если выбрать сложно, есть ещё списки задач по темам (ближе к концу страницы):
http://acm.timus.ru/problemset.aspx

3. Сделать ревью решений ДЗ-03 двух коллег (которые его выполнили).

4. Опционально: сделать ревью на ревью ДЗ-02.

5. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на проект на travis-ci.org;
- ссылку на репозиторий bintray.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач;
- ссылки на выполненные ревью;
- опционально: ссылку на ревью на ревью.
Шаблоны GoF. Структурные.
научиться читать паттерны проектирования,
научиться использовать паттерны,
понять ценность экспериментов.
8 мая, 20:00 — 21:30
Шаблоны GoF. Поведенческие. Command, Interpreter, Iterator, Mediator, Memento, Chain of responsibilily
научиться читать паттерны проектирования,
научиться использовать паттерны,
понять ценность экспериментов.
13 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-06. Matrix.. Что требуется сделать:
1. Выполнить задание, описанное в 06.homework.pdf

2. На acm.timus.ru решить любые 3 задачи с уровнем сложности от 151 до 200.
Отсортированный по сложности список:
http://acm.timus.ru/problemset.aspx?space=1&page=all&skipac=False&sort=difficulty
Если выбрать сложно, есть ещё списки задач по темам (ближе к концу страницы):
http://acm.timus.ru/problemset.aspx

3. Сделать ревью решений ДЗ-04 двух коллег (которые его выполнили).

4. Опционально: сделать ревью на РЕВЬЮ ДЗ-03.

5. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на проект на travis-ci.org;
- ссылку на репозиторий bintray.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач;
- ссылки на выполненные ревью;
- опционально: ссылку на ревью на ревью.
Шаблоны GoF. Поведенческие. Observer, State, Strategy, Template method, Visitor
научиться читать паттерны проектирования,
научиться использовать паттерны,
понять ценность экспериментов.
15 мая, 20:00 — 21:30
STL. Контейнеры.
изучить контейнеры STL,
понять, какие типы контейнеров есть в STL,
научиться настраивать поведение контейнеров.
20 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-07. cmd. Что требуется сделать:
1. Выполнить задание, описанное в 07.homework.pdf

2. На acm.timus.ru решить 3 любые задачи с уровнем сложности от 201 до 300.
Отсортированный по сложности список:
http://acm.timus.ru/problemset.aspx?space=1&page=all&skipac=False&sort=difficulty
Если выбрать сложно, есть ещё списки задач по темам (ближе к концу страницы):
http://acm.timus.ru/problemset.aspx

3. Сделать ревью решений ДЗ-05 двух коллег (которые его выполнили).

4. Опционально: сделать ревью на ревью ДЗ-04.

5. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на проект на travis-ci.org;
- ссылку на репозиторий bintray.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач;
- ссылки на выполненные ревью;
- опционально: ссылку на ревью на ревью.
STL. Алгоритмы.
разобраться, почему алгоритмов в STL так много,
понять, зачем нужны алгоритмы в STL,
научиться использовать алгоритмы.
22 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-08. timus. Что требуется сделать:
1. Выполнить задание, описанное в 08.homework.pdf

2. Опционально: на acm.timus.ru решить 3 любые задачи с уровнем сложности от 301 до 400.
Отсортированный по сложности список:
http://acm.timus.ru/problemset.aspx?space=1&page=all&skipac=False&sort=difficulty
Если выбрать сложно, есть ещё списки задач по темам (ближе к концу страницы):
http://acm.timus.ru/problemset.aspx

3. Сделать ревью решений ДЗ-06 двух коллег (которые его выполнили).

4. Опционально: сделать ревью на ревью ДЗ-05.

5. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на проект на travis-ci.org;
- ссылку на репозиторий bintray.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач;
- ссылки на выполненные ревью;
- опционально: ссылку на ревью на ревью.
Boost. Разное.
понять философию проекта Boost,
научиться читать документациию Boost,
научиться выбирать и применять библиотеки
27 мая, 20:00 — 21:30
Boost. Паттерны проектирования.
продолжить изучать Boost,
посмотреть на реализацию паттернов проектирования,
расширить знания про библиотеку.
29 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-09. Boost. Что требуется сделать:
1. Выполнить задание, описанное в 09.homework.pdf

2. Опционально: на acm.timus.ru решить 3 любые задачи с уровнем сложности от 401 до 450.
Отсортированный по сложности список:
http://acm.timus.ru/problemset.aspx?space=1&page=all&skipac=False&sort=difficulty
Если выбрать сложно, есть ещё списки задач по темам (ближе к концу страницы):
http://acm.timus.ru/problemset.aspx

3. Опционально. Сделать ревью решений ДЗ-07 двух коллег (которые его выполнили).

4. Опционально: сделать ревью на ревью ДЗ-06.

5. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач;
- ссылки на выполненные ревью;
- опционально: ссылку на ревью на ревью.
Параллельные вычисления
Многопоточность
научиться использовать потоки в своих приложениях,
научиться решать основные проблемы многопоточности,
научиться использовать инструменты стандартной библиотеки.
3 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-10. Многопоточная обработка команд. Что требуется сделать:
1. Выполнить задание, описанное в 10.homework.pdf

2. Опционально: на acm.timus.ru решить 3 любые задачи с уровнем сложности от 451 до 500.
Отсортированный по сложности список:
http://acm.timus.ru/problemset.aspx?space=1&page=all&skipac=False&sort=difficulty
Если выбрать сложно, есть ещё списки задач по темам (ближе к концу страницы):
http://acm.timus.ru/problemset.aspx

3. Опционально: сделать ревью решений ДЗ-09 двух коллег (которые его выполнили).

4. Опционально: сделать ревью на ревью ДЗ-07.

5. Отправить на проверку в "Чат с преподавателем":
- ссылку на свой репозиторий на guthub.com;
- ссылку на проект на travis-ci.org;
- ссылку на репозиторий bintray.com;
- ссылку на аккаунт на acm.timus.ru со списком принятых задач;
- ссылки на выполненные ревью;
- опционально: ссылку на ревью на ревью.
Шаблоны 5
научиться понимать многопоточные паттерны,
научиться их использовать для решения задач.
5 июня, 20:00 — 21:30
Асинхронное программирование
понять разницу между многопоточностью, параллельностью и асинхронностью,
научиться выбирать подходящее решение для своей задачи,
использовать возможности стандартной библиотеки.
10 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-11. Асинхронная обработка команд. 1. Выполнить задание описанное в 11.homework.pdf
2. Опционально. На acm.timus.ru решить 3 любые задачи с уровнем сложности от 501 до 550.
3. Опционально. Предоставить своё ревью на решения ДЗ-10 от двух коллег (которые его сделали).
4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-08.
Lockfree DS
разобраться в том, что такое lock-free подход,
научиться видеть сценарии его использования,
научиться читать lock-free код.
12 июня, 20:00 — 21:30
Атомарные типы данных
научиться использовать атомарные операции в своём коде,
разобраться в принципах и стоимости их работы.
17 июня, 20:00 — 21:30
Сеть
Сетевое взаимодействие
понять, зачем нужна сеть в программах на C++,
понять, как решать возникающие проблемы.
19 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-12. Асинхронная сетевая обработка команд. 1. Выполнить задание описанное в 12.homework.pdf
2. Опционально. На acm.timus.ru решить 2 любые задачи с уровнем сложности от 551 до 600.
3. Опционально. Предоставить своё ревью на решения ДЗ-11 от двух коллег (которые его сделали).
4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-09.
Асинхронный ввод/вывод
научиться использовать библиотеки для работы с сетью,
научиться выбирать подходящие инструменты.
24 июня, 20:00 — 21:30
Хранилища
РСУБД
научиться использовать хранилища данных в своих проектах.
26 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-13. outer join. 1. Выполнить задание описанное в 13.homework.pdf
2. Опционально. На acm.timus.ru решить 2 любые задачи с уровнем сложности от 601 до 650.
3. Опционально. Предоставить своё ревью на решения ДЗ-12 от двух коллег (которые его сделали).
Key Value
разобраться в том, что же такое NoSQL,
научиться выбирать решение под задачу.
1 июля, 20:00 — 21:30
Много данных
разобраться в идеологии map reduce,
немного поэкспериментировать.
3 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-14. mapreduce. 1. Выполнить задание описанное в 14.homework.pdf
2. Опционально. На acm.timus.ru решить 2 любые задачи с уровнем сложности от 651 до 700.
3. Выложить свою реализацию на ревью.
4. Опционально. Предоставить два своих ревью на ДЗ-13.
ORM
разобраться, зачем нужны ORM,
научиться применять их в своих приложениях.
8 июля, 20:00 — 21:30
ML
Dlib. Кластеризация.
разобраться, зачем нужно машинное обучение,
научиться решать базовые задачи ML,
научиться читать документацию Dlib.
10 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-15. Кластеризация. 1. Выполнить задание описанное в 15.homework.pdf
2. Опционально. На acm.timus.ru решить 1 любую задачу с уровнем сложности от 700 до 800.
3. Выложить свою реализацию на ревью.
4. Опционально. Предоставить два своих ревью на ДЗ-14.
Dlib. Классификация.
разобраться с принципами классификации,
научиться решать задачу классификации.
15 июля, 20:00 — 21:30
Dlib. Регрессия.
разобраться с формулировкой и решение задачи регрессии.
17 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
ДЗ-16. Недвижимость. 1. Выполнить задание описанное в 16.homework.pdf
2. Выложить свою реализацию на ревью.
3. Да и хватит на этом. Пора приступать к проекту.
Проектная работа
Заключительная часть курса о программировании на С++ посвящена проектной работе.
Мало что доставляет столько же удовольствия, как самостоятельно реализованный проект на выбранную самостоятельно тему на основе знаний, полученных на курсе.
В процессе написания (и даже в процессе выбора темы) можно получить консультации преподавателей.

При удачном стечении обстоятельств (в основном, при наличии должного усердия со стороны студента) проект станет достойным примером кода, который можно будет показывать потенциальным работодателям в качестве портфолио. Таким образом обучение программированию завершится большой практической работой, и вы будете гордиться тем, что сделали своими руками.
Делаем проектную работу и сдаём сюда в качестве домашней работы.
22 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Проектная работа.. Преполагаемые этапы выполнения:
1. Проработанные требования к реализации
2. Планируемая архитектура
3. Полная итоговая реализация.
Сдавать можно как по частям, так и сразу итоговый вариант.

Не обязательно придерживаться указанному плану.

Преподаватель

Сергей Кольцов
VisionLabs
Senior Developer С++ VisionLabs

Работает программистом уже почти 10 лет. Заинтересовался языками программирования ещё в школе. Начинал почти как и все в ту пору - с Delphi и Borland C++. Так что был заранее обречён на выбор профессии.

Работал как в крупных компаниях (Яндекс, Luxoft), так и в небольших организациях.

С преподаванием впервые столкнулся в школе, когда объяснял логарифмы одноклассницам. В дальнейшем в рамках рабочих обязанностей выполнял менторские функции с коллегами. На позиции руководителя группы разработки консультации членов команды занимают около 30% времени.

Окончил МГТУ им. Н.Э. Баумана в 2011 году, факультет "Информатика и системы управления".
Преподаватель курсов:
Разработчик C++

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

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