Проходил 11 сентября в 20:00

Открытый вебинар "Разработчик C++"
Cтранно рекурсивный шаблон

Открытый вебинар онлайн

• В рамках открытого вебинара вы приобретете практический навык работы с техникой перевёрнутого наследования.
Широко распространённая практика использования виртуальных методов для изменения функциональности во время исполнения может приводить к снижению производительности.
• Вы научитесь достижению подобной цели без потери производительности и динамического полиморфизма.
• Узнаете о недостатках виртуальных методов с точки зрения производительности.
• Поймете, как устроен статический полиморфизм.
• Научитесь употреблению аббревиатуры CRTP.
Преподаватель
Дмитрий Шебордаев

Запись

О курсе

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

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

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

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

Дмитрий Шебордаев
Руководитель отдела разработки технологий в Rambler&Co
Получил образование по специальности «Прикладная математика» в Московском государственном университете экономики статистики и информатики.
Начинал рядовым разработчиком в компании, автоматизирующей процессы розничной торговли. Автор одной из самых популярных систем в РФ и бывших республиках. Не прекращая активной деятельности в разработке, прошёл путь до руководителя. Последние несколько лет работает в области информационного поиска в крупной российской ИТ-компании. Остаётся верен своей профессии свыше 20 лет. Читает образовательные курсы по специальности.
Преподаватель курсов:
Разработчик C++