Проходил 26 апреля 2018 года в 20:00

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

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

Вы знакомы с понятием «область видимости» в языке C++? Давайте на примерах убедимся в существовании проблемы деинициализации чего-либо, которая довольно часто возникает в разработке ПО с использованием legacy или native-кода.

А может попробуем разработать подход к её решению? Предлагаю за 1,5 часа реализовать класс общего назначения и запустить несколько unit-тестов с использованием googletest.
Преподаватель
Сергей Кольцов

Запись

О курсе

Разработчик C++
50 000 ₽
Начало в июне
  • Умение писать на С++ правильно.
  • Понимание современных проблем языка и специфики его применения.
  • Освоение паттернов проектирования, принципов написания многопоточного кода.
  • Знание, как взаимодействовать с сетью, хранить и обрабатывать большие объемы данных.
  • Владение нюансами программирования на С++, которые отличают разработчика уровня Middle от Junior.
{% safe_chunk 'lessons:visit_card_center-5' %}
Обучено студентов 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
ДЗ
print_ip.
Шаблоны GoF. Часть 1.
Порождающие шаблоны проектирования.
Шаблоны GoF. Часть 2.
Структурные шаблоны проектирования.
25 апреля, 20:00 — 21:30
Лектор: Дмитрий Шебордаев
Домашние задания: 1
ДЗ
matrix.
Шаблоны GoF. Часть 3.
Поведенческие шаблоны проектирования. 1 часть
29 апреля, 20:00 — 21:30
Шаблоны GoF. Часть 4.
Поведенческие шаблоны проектирования. 2 часть
13 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
bulk.
STL. Часть 1.
Структуры данных STL
16 мая, 20:00 — 21:30
STL. Часть 2
Алгоритмы
20 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
nickname.
Boost. Часть 1
Контейнеры
23 мая, 20:00 — 21:30
Boost. Часть 2
Алгоритмы
27 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
bayan.
C++17. Часть 1.
30 мая, 20:00 — 21:30
C++17. Часть 2.
10 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
range.
Параллельные вычисления
Многопоточность
Потоки. Критические секции и методы синхронизации: мьютексы, семафор, условные переменные, барьеры. Пулы потоков.
13 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
bulkmt.
Шаблоны 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.
17 июня, 20:00 — 21:30
Асинхронное программирование
Архитектура асинхронных сервисов. Низкоуровневая поддержка асинхронного выполнения кода.
20 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
async.
Lockfree DS
Неблокирующие структуры данных и алгоритмы. BOOST Lockfree
24 июня, 20:00 — 21:30
Атомарность
27 июня, 20:00 — 21:30
Сеть
Сетевое взаимодействие
Сокеты. Протоколы: TCP и UDP. Сериализация. HTTP. Json. Zmq. Protobuf.
1 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
bulk_server.
Асинхронный ввод/вывод
Библиотеки и практики работы с неблокирующей передачей данных
4 июля, 20:00 — 21:30
Хранилища
РСУБД
Использование РСУБД. Подключение и работа с БД
15 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
join_server.
Key Value
Идея NoSQL. Aerospike, redis, leveldb
15 июля, 20:00 — 21:30
Много данных
Map reduce
18 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
yamr.
ORM
ООП при работе с базами данных. Паттерны DAO и Repository
22 июля, 20:00 — 21:30
ML
Dlib. Часть 1.
Кластеризация, тематическое моделирование.
29 июля, 20:00 — 21:30
Домашние задания: 1
ДЗ
kkmeans.
Dlib. Часть 2.
Регрессия
1 августа, 20:00 — 21:30
Dlib. Часть 3.
Классификация
5 августа, 20:00 — 21:30
Домашние задания: 1
ДЗ
realty.
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

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

Примеры тем проекта:
- in-memory sql-сервер
- хранилище типа key-value
- очередь с моделью подписчиков
Домашние задания: 1
ДЗ
Проектная работа.

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

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

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

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

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

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