Проходил 18 июня в 20:00

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

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

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

Запись

О курсе

Разработчик C++
50 000 ₽
Начало в декабре
  • Умение писать на С++ правильно.
  • Понимание современных проблем языка и специфики его применения.
  • Освоение паттернов проектирования, принципов написания многопоточного кода.
  • Знание, как взаимодействовать с сетью, хранить и обрабатывать большие объемы данных.
  • Владение нюансами разработки на С++, которые отличают программиста уровня Middle от Junior.
Обучено студентов 100+
32 практических занятия
Программа курса
Модуль 1
Введение
Модуль 2
Архитектура
Модуль 3
Параллельные вычисления
Модуль 4
Сеть
Модуль 5
Хранилища
Модуль 6
ML
Модуль 7
Проектная работа
Введение
Система сборки: build, test and deploy.
Поиск распространяемых пакетов. Кастомный модуль для наших пакетов.
Домашние задания: 1
ДЗ
helloworld.
Широкоиспользуемые фичи C++11 стандарта. auto. Замыкание - Лямбда-функции. Кортежи.
Некоторые небольшие, на первый взгляд, нововведения настолько меняют язык, что диву даешься :)
Широкоиспользуемые фичи C++11 стандарта. rvalue и lvalue ссылки. Move semantic. Variadic Templates.
Домашние задания: 1
ДЗ
ip_filter.
Рассмотрим полезные нововведения 14 стандарта.
Вглубь реализации умных указателей.
Подводные камни и оптимизации.
Идея аллокаторов.
Стандартный аллокатор и его недостатки. Различные методы управлением памятью: достоинства и недостатки.
Домашние задания: 1
ДЗ
allocator.
Что это и зачем? Как выглядит в C++: макросы и шаблонная магия. Примеры. Type traits в STL. SFINAE
Архитектура
Принципы проектирования ПО
UML. Принципы: SoC, DRY, YAGNI, KISS, TDA, LoD, SOLID
Домашние задания: 1
ДЗ
ДЗ-04.doxygen.
GRASP. Часть 1
Рассмотрим: Indirection, Low Coupling, Polymorphism, Protected Variations.
GRASP. Часть 2
Рассмотрим: Creator, Controller, Pure Fabrication, Information Expert, High Cohesion
Домашние задания: 1
ДЗ
ДЗ-05.
Шаблоны GoF. Часть 1.
Порождающие шаблоны проектирования.
Шаблоны GoF. Часть 2.
Структурные шаблоны проектирования.
Домашние задания: 1
ДЗ
matrix.
Шаблоны GoF. Часть 3.
Поведенческие шаблоны проектирования. 1 часть
Шаблоны GoF. Часть 4.
Поведенческие шаблоны проектирования. 2 часть
Домашние задания: 1
ДЗ
bulk.
Антипаттерны
Разберем антипаттерны программирования (кодирования), ООП, проектирования и антипаттерны в других областях
STL. Часть 1.
Структуры данных STL
Домашние задания: 1
ДЗ
nickname.
STL. Часть 2
Алгоритмы
Boost. Часть 1
Контейнеры
Домашние задания: 1
ДЗ
bayan.
Boost. Часть 2
Алгоритмы
Параллельные вычисления
Многопоточность
Потоки. Критические секции и методы синхронизации: мьютексы, семафор, условные переменные, барьеры. Пулы потоков.
Домашние задания: 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.
Асинхронное программирование
Архитектура асинхронных сервисов. Низкоуровневая поддержка асинхронного выполнения кода.
Домашние задания: 1
ДЗ
Асинхронная обработка команд.
Lockfree DS
Неблокирующие структуры данных и алгоритмы. BOOST Lockfree
Сеть
Сетевое взаимодействие
Сокеты. Протоколы: TCP и UDP. Сериализация. HTTP. Json. Zmq. Protobuf.
Домашние задания: 1
ДЗ
Асинхронная сетевая обработка команд.
Асинхронный ввод/вывод
Библиотеки и практики работы с неблокирующей передачей данных
Хранилища
РСУБД
Использование РСУБД. Подключение и работа с БД
Домашние задания: 1
ДЗ
outer join.
Key Value
Идея NoSQL. Aerospike, redis, leveldb
Много данных
Map reduce
Домашние задания: 1
ДЗ
mapreduce.
ORM
ООП при работе с базами данных. Паттерны DAO и Repository
ML
Dlib. Часть 1.
Кластеризация, тематическое моделирование.
Домашние задания: 1
ДЗ
Кластеризация.
Dlib. Часть 2.
Регрессия
Dlib. Часть 3.
Классификация
Домашние задания: 2
ДЗ
Классификация.
ДЗ
Проектная работа.
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

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

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

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

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

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

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

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

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

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

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