Погрузитесь в современный С++: диапазоны, концепты, execution, корутины
Освоите инструменты многопоточности и асинхронности, а также парадигму структурированного параллелизма
Выполните 9 практических работ, а опытный разработчик проведёт ревью вашего кода
Попрактикуетесь в возможностях последних стандартов С++: 20, 23 и 26
Научитесь яснее выражать намерения в коде, чтобы легче поддерживать его
Получите сертификат о завершении курса
Курс будет полезен разработчикам С++, которые хотят углубить свои знания и расти в должности
Junior разработчикам с уверенными базовыми навыками в C++
Углубите знания, освоите идиомы, лучшие практики языка, современные стандарты и асинхронность, научитесь работать с потоками и использовать инструменты для оптимизации памяти, поиска ошибок и выявления неопределённого поведения
Middle разработчикам С++
Расширите знания о современных стандартах языка, выясните, как эффективно работать с диапазонами, чтобы моделировать коллекции данных, научитесь применять идиомы и конструкции структурированного параллелизма
Для тех, кто хочет освоить C++ с нуля, есть отдельный курс
Вы разберётесь в стандартной библиотеке С++ и начнёте работать с Git, IDE и компиляторами, а также разработаете несколько онлайн‑сервисов
Знаете основные конструкции языка, такие как специализация шаблона, перегрузка функции и другие
Используете стандартную библиотеку С++: контейнеры и алгоритмы
Знакомы с базовыми структурами данных и алгоритмами
Понимаете принципы многопоточности и асинхронности
Разбираетесь в практиках блочного тестирования, инструментах gmock/gtest и Boost.Test
Чему научитесь
Применять лучшие практики и идиомы языка, а также яснее выражать намерения в коде
Использовать диапазоны, чтобы эффективно работать с коллекциями данных в С++
Разбираться в библиотечных и языковых возможностях последних стандартов: 20, 23 и 26
Пользоваться инструментами асинхронности: сопрограммами и структурированным параллелизмом
Работать с продвинутыми API многопоточности в С++
Писать надёжный и безопасный код на C++ без уязвимостей
Усилите свои хардскилы с помощью ИИ
В модуле по нейросетям вы узнаете, как:
Писать точные промпты и получать предсказуемые результаты
Использовать подходы zero‑shot и few‑shot
Выбирать AI‑инструменты для разных сценариев
Планировать проекты и декомпозировать задачи с помощью ИИ
Понимать ограничения моделей и риски при работе с нейросетями
Проверять ответы ИИ и уменьшать число галлюцинаций
Программа курса
Рассчитана на 4 месяца, в среднем курсу нужно уделять 10–15 часов в неделю
~1 час
Бесплатно
Знакомство и входной тест
В бесплатной части познакомитесь с платформой и проверите свои знания
Знакомство с курсом
Платформа
Время на прохождение курса
Тестирование
Как устроен курс
Поймёте, как его проходить и сколько это занимает времени, узнаете, кто будет вам помогать осваивать материал
Входной тест
Ответите на несколько вопросов и решите, подходит ли вам эта программа
Пройдёте входной тест и поймёте, подходит ли вам курс
1
1 практическая работа・2 недели
Управление памятью и ресурсами
RAII
Scopegard
Семантика перемещения
Умные указатели
STL
boost::intrusive_ptr
std::out_ptr
std::inout_ptr
Основы управления ресурсами
Рассмотрите ручное управление памятью и проблемы использования new/delete. Познакомитесь с семантикой перемещения, обменом состояниями и идиомами RAII, ScopeGuard.
Разделяемое владение
Разберёте совместное владение ресурсом, опасности и ограничения использования std::shared_ptr. Изучите семантику перемещения в стандартной библиотеке, а также взаимодействие с API-библиотекой.
Разработаете и протестируете библиотеку на основе OpenSSL, а также приложение, которое выполняет основные криптографические операции
2
1 практическая работа · 1 воркшоп・2 недели
Шаблоны
Лямбды и мультилямбды
CRTP
Концепты
deducing this
SFINAE
constexpr
consteval
Вариативный шаблон
Свёрточные выражения
Пакет параметров шаблона
Шаблоны
Изучите шаблоны класса и функции, научитесь формулировать требования к типам с помощью концептов
Программы времени компиляции
Познакомитесь с написанием программ времени компиляции и изучите ключевые слова constexpr и consteval
Воркшоп
Познакомитесь с техникой внедрения зависимостей и научитесь их внедрять классическим способом при помощи вариабельного шаблона переменной
Реализуете типобезопасные функции разбора отформатированной строки. Выберете, как реализовать функции времени компиляции или времени выполнения
3
1 практическая работа・2 недели
Алгоритмы + структуры данных = программы
Итераторы
Лямбды
Последовательные контейнеры
Ассоциативные контейнеры
Алгоритмы стандартной библиотеки
STL
algorithm
numeric
vector
deque
span
flat_map
Алгоритмы стандартной библиотеки
Познакомитесь с алгоритмами стандартной библиотеки, изучите случаи и практики их применения
Структуры данных стандартной библиотеки
Изучите последовательные и ассоциативные контейнеры, представленные в стандартной библиотеке
Реализуете программу, чтобы управлять библиотекой. Используете возможности эффективного хранения данных и гетерогенного поиска. Создадите несколько алгоритмов для работы с библиотекой
4
1 практическая работа · 1 воркшоп・2 недели
Диапазоны
ranges
views
Отображения
Проекции
Адаптеры
Комбинирование отображений
Диапазонные формы алгоритмов
Диапазоны
Познакомитесь с диапазонами, отображениями и алгоритмами над ними, изучите возможности диапазонов, сможете записывать алгоритмы в виде комбинации отображений
Воркшоп
Реализуете собственный доменный адаптер, разберёте опасности применения диапазонов и увидите, каким выразительным становится код с их помощью
Реализуете геометрический алгоритм с помощью комбинирования отображений, использования диапазонов и проекций
5
1 практическая работа・2 недели
Словарные типы
optional
Монадические операции optional
variant
visit
any
expected
STL
Словарные типы: optional, variant, any
Изучите словарные типы как дополнительные инструменты моделирования, поймёте области применимости и познакомитесь с другими способами обработки ошибок
Словарные типы: expected
Познакомитесь со способом обработки ошибок без использования исключений
Реализуете библиотеку для работы с двумерной геометрией. Смоделируете разные типы кривых при помощи variant, будете использовать optional в алгоритмах, а expected для обработки ошибок
1 неделя
Перерыв
Время, чтобы отвлечься, отдохнуть или доделать практические задания
6
1 практическая работа · 1 воркшоп・3 недели
Многопоточность и параллелизм
Политика выполнения
jthread
stop_token
mutex
latch
barrier
counting_semaphore
STL
Примитивы синхронизации
Познакомитесь с библиотекой синхронизационных примитивов и изучите случаи использования
Параллелизм
Освоите стандартные политики выполнения алгоритмов
Воркшоп
Познакомитесь с полным диапазоном примитивов синхронизации C++: от базового мьютекса до современных latch, barrier и countint semaphore для защиты доступа к общему ресурсу
Разработаете классы для реализации очереди. Настроите системы передачи сообщений между потоками
7
1 практическая работа・2 недели
Асинхронность, сопрограммы
async
promise
future
Корутины
co_await
co_return
generator
Асинхронность
Познакомитесь с инструментами асинхронного выполнения и изучите std::async, std::future, std::promise
Сопрограммы
Освоите сопрограммы как инструмент написания асинхронного кода
Реализуете библиотеку, чтобы загружать файлы по сети в 2 режимах: последовательном и параллельном. Для этого используете сопрограммы и другие инструменты асинхронного программирования
8
1 практическая работа・1 неделя
Сборка программ, инструменты поиска ошибок
Компиляция
Компоновка
Архивация
Порядок построения программы
Санитайзеры
ThreadSanitizer
MemorySanitizer
Поиск утечек памяти
make
Сборка программ на С++
Познакомитесь со всеми этапами построения программы: от файла с исходным кодом до исполняемого
Инструменты
Узнаете, какие инструменты можно использовать для помощи в анализе ошибок, познакомитесь с инструментами статического и динамического анализа
Найдёте ошибки в предложенных программах с помощью санитайзеров. Реализуете пользовательский плагин, чтобы автоматизировать специальный рефакторинг предложенного кода
9
Только в расширенном тарифе · 1 практическая работа · 1 воркшоп・3 недели
Структурированный параллелизм
structured concurrency
senders
receivers
cancellation
operation state
scheduler
Потребитель сендера
Адаптер сендера
Фабрики сендеров
Структурированный параллелизм
Познакомитесь с предлагаемым в C++26 способом создавать многопоточные и асинхронные программы, изучите понятия structured concurrency в C++ на примере библиотеки libunifex.
Воркшоп
Разберёте, как многопоточный код в традиционном стиле можно изменить с помощью выразительных абстракций библиотеки std::exectuion. Увидите на примерах, как структурированный параллелизм помогает переосмысливать асинхронные программы и управлять их ресурсами.
Разработаете программу обратной трассировки луча с помощью сендеров и ресиверов
Поймёте, почему нейросети ошибаются при генерации кода и как этого избежать. Научитесь проводить ревью ИИ‑решений: находить несуществующие функции и логические ошибки.
Выбор инструментов
Сравните облачные и локальные модели, IDE‑плагины и AI‑чаты. Научитесь подбирать ИИ‑инструменты под конкретные задачи, исходя из их стоимости и функциональности.
Основы промптинга
Разберёте структуру запроса: контекст, задачу, формат. Освоите zero‑shot, few‑shot, chain‑of‑thought, чтобы получать точные и предсказуемые ответы.
Планирование и декомпозиция
Узнаете, как разбивать объёмные задачи на подзадачи, а также планировать рабочие и личные проекты с помощью ИИ.
Освоите промпт‑инжиниринг, научитесь выбирать оптимальные ИИ‑решения и выявлять галлюцинации
С наставником
Воркшопы для разбора сложных тем, сессии Q&A
Получите сертификат о завершении курса
Как устроен курс
Никаких давно снятых видео и длинных лекций
Вы проходите теорию и закрепляете её на практике на интерактивной платформе. Можно заниматься во сколько и где удобно, главное — укладываться в дедлайны по проектам.
По расписанию только воркшопы с наставниками, остальное — в своём темпе
Опытные разработчики разбирают сложные кейсы и отвечают на ваши вопросы на живых воркшопах. Если не успеваете, можно смотреть в записи.
Курсы в Практикуме похожи на реальную работу
Проектные работы курса отражают настоящие вызовы, с которыми сталкиваются мидл-специалисты в своей работе. Вы выполните 9 практических работ и доработаете их после обратной связи от практикующего эксперта курса.
Практикум ИИ помогает осваивать курс
Когда в теории что-то непонятно, нейросеть ответит на вопросы или объяснит материал другими словами. А в конце каждого модуля подготовит краткий пересказ о самом главном.
2 формата на выбор
С дедлайнами. Модули открываются по расписанию — их важно осваивать за определённое время. Проекты тоже нужно сдавать в срок.
В своём темпе. Темы и задания открываются последовательно. Можно завершить курс быстрее или продлить прохождение на месяц.
Будете заниматься сами, но не в одиночестве — вас поддержит заботливая команда Практикума
Наши эксперты давно работают с С++
Они составили программу, опираясь на свой опыт, поэтому вы будете проходить только то, что на самом деле пригодится в работе.
Михаил Афанасьев
Автор курса. Руководитель группы в Яндекс Рекламе. Строит систему потоковой обработки данных рекламной сети. Более 10 лет разрабатывает высоконагруженные системы.
Денис Герасимов
Автор курса. Более 14 лет разрабатывает на C++ как контрактный разработчик, включая проекты из области вычислительной фотолитографии и электроимпедансной томографии.
Владимир Тройняков
Автор курса. Старший разработчик в Т-Банке в команде детектирования фрод-операций. Имеет многолетний опыт интеграции ML-решений в высоконагруженный С++ код.
Иван Лосев
Автор курса. Старший разработчик в Pixida GmbH с опытом 7+ лет в промышленной разработке в крупных многонациональных командах. Специализируется на разработке комплексных (E2E) решений для кодирования и декодирования видео с использованием аппаратно-ускоряемых кодеков AVC, HEVC и AV1.
Знакомы с основными конструкциями языка: специализацией шаблона, перегрузкой функции и другими.
Знакомы с базовыми структурами данных и алгоритмами.
Понимаете принципы многопоточности и асинхронности.
Знакомы с практиками блочного тестирования (unit testing), инструментами gmock/gtest и Boost.Test.
Также важно, чтобы у вас была возможность уделять курсу 10–15 часов в неделю на протяжении 4,5 месяца.
Кто будет помогать мне проходить курс?
Все наставники — практикующие специалисты: сотрудники Яндекса и других крупных компаний. Программу составляют опытные методисты, а ещё действующие специалисты Яндекса, Школы анализа данных и других лидеров технологической индустрии.
Что делать, если я не справлюсь с нагрузкой?
В программе предусмотрен перерыв, во время которого можно отдохнуть или повторить сложные темы.
Если вам нужно больше времени на выполнение проекта, напишите куратору. Он подскажет, как согласовать новый дедлайн.
Можно ли пройти курс в своём темпе?
Да. Этот курс можно пройти в одном из двух форматов:
• С дедлайнами. Модули открываются по расписанию, и задания нужно выполнять точно в срок.
• В своём темпе. Темы и задания открываются последовательно. Можно регулировать нагрузку и проходить курс быстрее или медленнее. Подробнее о формате.
Проходите курс в своём темпе, если вам сложно подстраиваться под расписание. Но помните, что такой формат требует самоконтроля и высокой мотивации. С дедлайнами будет проще дойти до конца.
Если не понравится, я могу вернуть деньги?
Конечно. Если курс ещё не начался, вернём всю сумму. Если уже начался, придётся оплатить прошедшие дни со старта вашей когорты — но мы вернём деньги за остаток курса. Более подробно рассказываем об этом в 7 пункте оферты.
Получу ли я какой-то документ после курса?
Да, для этого нужно закончить курс и успешно выполнить итоговый проект. Тогда вы получите сертификат о завершении курса в электронном виде.
Вы поможете сменить или найти работу?
На этом курсе не предусмотрена помощь с трудоустройством, поскольку он для действующих специалистов, у которых уже есть навыки поиска работы.
Но если у вас появится вопрос о карьерном развитии, обратитесь в нашу службу поддержки — постараемся ответить.
Как можно оплатить?
Банковской картой: внести всю сумму сразу или платить ежемесячно.
Ежемесячные платежи работают так: вы вносите первую оплату, и в этот момент привязывается карта. С этой карты автоматически будут списываться следующие платежи каждые 30 календарных дней. Например, оплатили 25 марта — следующий платёж пройдёт 24 апреля. Курс будет стоить меньше, если оплатить его сразу целиком.
Через компанию: юридические лица также могут оплатить курс в Практикуме. Чтобы заказать счёт для оплаты, оставьте заявку на странице для корпоративных клиентов.
На каком языке проходит курс?
Всё будет на русском: теория, практические задания и вебинары, а ещё чаты с куратором, наставником и другими участниками курса.
Давайте поможем
Мы работаем с 09:00 до 18:00 по минскому времени и связываемся в течение одного дня. Если оставите заявку сейчас, то перезвоним уже в рабочее время.