Плюсы профессии. И один минус

На языке C++ можно разработать что угодно
От микрокода для дефибриллятора до больших операционных систем. На этом языке написаны приложения и онлайн-сервисы, которыми каждый пользовался хотя бы раз в жизни.
После C++ легче выучить любой другой язык
Он позволяет познакомиться с низкоуровневыми концепциями и помогает понять, как думают компьютеры. Поэтому освоить любой язык программирования после C++ будет гораздо легче.
Подходит для работы на удалёнке
40% пользователей Практикума работают удалённо — вы тоже сможете выбирать формат трудоустройства, когда начнёте искать работу.
C++ — довольно сложный язык программирования для изучения
Чем больше возможностей у инструмента, тем легче ошибиться и тем больше нужно знать. Поэтому начать программировать на C++ может быть сложнее, чем на другом языке, но мы поможем во всём разобраться.

Какой может быть ваша карьера после курса

Должность

Разработчик C++

Инструменты и навыки, которые вы освоите

Мы регулярно обновляем наш курс вместе с действующими разработчиками и руководителями из индустрии — так вы учитесь только тому, что актуально

Git
STL
Алгоритмы
Дебагинг
Юнит-тестирование
ООП
UML-диаграммы
RAII
CMake
VS Code
Библиотеки
Move-семантика
Архитектура
Паттерны

Будете проходить курс в условиях, близких к реальным

Курс длится 9 месяцев. Будет много теории, ещё больше практики, люди и методология — всё направлено на то, чтобы вы освоили программирование на языке С++ с нуля и стали разработчиком.

YandexGPT помогает проходить курс

Когда в теории что-то непонятно, нейросеть объяснит это другими словами. А в конце каждого модуля подготовит краткий пересказ о самом главном.

Программа курса

На базовом курсе освоите всё, что нужно, чтобы начать работать junior разработчиком, а на расширенном получите больше навыков, которые помогут найти работу и быстрее вырасти до middle
Бесплатно10 часов
Базовые понятия программирования
Бесплатный модуль, который необязателен для прохождения, но поможет познакомиться с форматом курса. Узнаете об основах программирования и научитесь писать простые программы на C++.
  • Знакомство с С++
  • Переменные и ввод
  • Условные конструкции, цикл for
  • Функции
А после бесплатной части выберете подходящий формат курса: базовый или расширенный.
1 модуль20 часов
Введение в C++
Вы познакомитесь с основными возможностями языка С++ и напишете на нём более 25 программ.

Спринт 0. Основы C++.

• Числа и строки. Операции над ними. Ввод и вывод
• Условие и циклы
• V — значит вектор
• Функции
• Контейнер set
• Глубокое копирование, ссылки и константность
• Контейнер map
• Git
Проект «Поисковый сервер»
Создадите основу для собственной поисковой системы.
2 модуль120 часов
Базовые понятия языка С++ и его стандартной библиотеки
Вы освоите понятия, важные для полноценной разработки на С++:

• итераторы — чтобы работать со всеми стандартными алгоритмами,
• конструкторы — чтобы создавать объекты стало проще,
• шаблоны функций — чтобы писать универсальный код.

А еще научитесь обращаться со сложными программами: разбивать код на несколько файлов и тестировать его.

Спринт 1. Изучаем базовые алгоритмы, структуры и классы данных. Погружаемся в детали и избегаем дублирования кода.

• Простые алгоритмы
• Структуры и классы
• Лямбда-функции

Спринт 2. Подробнее знакомимся с целочисленными типами С++, а также с кортежами и шаблонами функций. Узнаем, насколько самоотверженно C++ экономит ресурсы, и учимся избегать связанных с этим ошибок.

• Работа со средой Visual Studio Code
• Числовые типы
• Пары и кортежи
• Шаблоны функций
• Видимость и инициализация переменных

Спринт 3. Тестируем код и осваиваем мощь и гибкость классов.

• Введение в тестирование
• Инструменты тестирования и отладки
• Жизненный цикл объекта
• Перегрузка операторов
• Обработка ошибок. Исключения

Спринт 4. Разбиваем код на несколько файлов и углубляем знания о стандартных алгоритмах.

• Итераторы
• Алгоритмы поиска
• Стек, очередь, дек
• Распределение кода по файлам
Проект «Поисковый сервер»
Сделаете код объектно ориентированным, напишете фреймворк для юнит-тестов, разделите код на файлы.
3 модуль130 часов
Производительность и оптимизация
Вы научитесь оценивать эффективность высокопроизводительного приложения до и после его разработки. Изучите работу с файлами и регулярными выражениями. Познакомитесь с внутренним устройством контейнеров. Это позволит понять, как настраивать элементы языка на эффективную работу. Чтобы избегать лишних копирований в коде, освоите move-семантику.

Спринт 5. Работаем над скоростью кода и с файлами.
• Профилируем и ускоряем
• Потоковые хитрости
• Просто о сложности. Теория быстродействия
• Работа с файлами

Спринт 6. Учимся управлять памятью.

• Модель памяти в C++
• Односвязный список

Спринт 7. Постигаем внутреннее устройство контейнеров и осваиваем семантику перемещения.

• Эффективные линейные контейнеры
• Семантика перемещения
Проект «Свой препроцессор»
Вы самостоятельно реализуете часть C++, а именно препроцессор, который проходит исходный код до компилятора и обрабатывает директивы.
Проект «Односвязный список»
Вы создадите собственную версию односвязного списка — контейнера, поддерживающего эффективное добавление и удаление элементов.
Проект «Простой вектор»
Вы напишете собственную версию вектора — контейнера, который обеспечивает эффективный доступ к элементам.
4 модуль120 часов
Качество кода
Вы изучите инструменты, которые делают код опрятным и защищают его от человеческих ошибок: пространство имён, константность, RAII. Узнаете, как избавить программу от проблем роста. Освоите динамический полиморфизм.

Спринт 8. Изучаем ассоциацивные контейнеры и пространства имён.

• Ассоциативные контейнеры
• Имена и пространства имён

Спринт 9. Упрощаем код благодаря умным указателям и разбираемся в концепции Undefined Behavior.

• Умные указатели
• Undefined Behavior

Спринт 10. Продолжаем упрощать код с помощью наследования и полиморфизма.

• Наследование и полиморфизм

Спринт 11. Осваиваем практики проектирования программ.

• Константность как элемент проектирования программ
• Идиома RAII

Спринт 12. Достигаем элегантности кода.

• Философия хороших функций
• Передаём данные в функцию
• Получаем данные из функции
• Рефакторинг
Проект «Транспортный справочник»
Напишете программу, позволяющую строить автобусные маршруты в городе.
5 модуль140 часов
Проектирование сложных сервисов
Вы напишете полноценный вектор, познакомитесь с variadic templates и гарантиями безопасности исключений.

Спринт 13. Пробуем себя в роли разработчиков библиотек и рассматриваем размещение объектов в памяти.

• Vector своими руками
• Хранение объектов в памяти

Спринт 14. Смотрим изнутри, как работает полиморфизм, изучаем популярную систему сборки CMake, учимся пользоваться сторонними библиотеками и пишем свои.

• Таблица виртуальных методов
• Собираем по-новому. CMake
Проект «Контейнер vector»
Разработаете вектор, который автоматически увеличивает свой размер, эффективно работает с памятью и не копирует объекты зря.
Проект «Транспортный справочник»
Разделите транспортный справочник на две программы: одна строит базы данных, другая обрабатывает запросы.
6 модуль40 часов
Проект «Электронная таблица»
Вы закрепите навыки написания понятного и масштабируемого кода: разработаете крупную программу, которую сможете развивать в будущем.

Спринт 15. Итоговый проект

• Итоговый проект «Электронная таблица»
Итоговый проект «Электронная таблица»
Сначала вы защитите дизайн-проект таблицы с ячейками и формулами, затем напишете код.
+3 месяца
Расширенный курс «Разработчик C++»
У этого курса есть расширенный формат: стоит дороже, но включает в себя больше тем и проектов, — чтобы усилить портфолио и повысить шансы на быстрое трудоустройство. На расширенном курсе вы освоите C++ для бэкенда.

• Разработаете программное обеспечение под Linux.
• Получите навык нагрузочного тестирования.
• Научитесь работать с Docker и СУБД PostgreSQL.
• Расширите свои знания о библиотеках разработки на С++ и используете в проекте boost:asio и boost:beast.
Ещё 3 проектаДополнительные темы
Проект «Игра в курьера»
Напишете код для бэкенда небольшой игры. В ней игроки-курьеры соревнуются, кто оптимальнее пройдёт по лабиринту улиц и доставит максимальное количество заказов.
Проект «Мониторинг и логирование»
Разработаете собственный дашборд на основе логирования Grafana и Prometheus. Проведёте нагрузочное тестирование, используя Яндекс Танк.
Проект «Букипедия»
Создадите приложение, использующее PostgreSQL для хранения данных. При этом в нём можно будет добавлять, удалять именования и выводить весь список из базы данных.
Карьерный центр 1 месяц
Карьерный трек: подготовка к трудоустройству
Составите резюме, которое привлечёт внимание рекрутеров, и напишете сопроводительное письмо для откликов на вакансии. Узнаете, как правильно оформлять портфолио, и построите стратегию поиска работы.
РезюмеСтратегия поискаСопроводительные письма
Карьерный центрДо 6 месяцев
Акселерация: активный поиск работы с поддержкой HR-экспертов
Будете откликаться на вакансии, делать тестовые и ходить на собеседования, а мы вас поддерживать. Например, расскажем о типичных ошибках в общении с работодателями и как их избежать. Акселерация может продолжаться до 6 месяцев — обычно этого достаточно, чтобы получить первую работу в IT.
Вакансии от партнёровТренировочные собеседования

10 000+ пользователей Практикума уже нашли новую работу

Это данные исследования ВШЭ — они основаны на опыте пользователей Яндекс Практикума на российском рынке труда

Отвечаем на вопросы

Подойдёт ли мне этот курс?
Для тех, кто сомневается, мы спроектировали бесплатную часть, которая поможет получить ответ на этот вопрос. Если вы убедитесь, что выбранный курс вам не подходит, — это тоже положительный результат.
Можно ли освоить все необходимые навыки за 9 месяцев?
Думаем, что да, если вы будете уделять курсу не менее 15 часов в неделю, практиковаться и общаться с наставником. Тогда за 9 месяцев вы сможете освоить навыки разработки на C++, соберёте портфолио проектов и начнёте свой путь в профессию.
Кто будет помогать мне проходить курс?
Все наставники — практикующие специалисты: сотрудники Яндекса и других крупных компаний. Программу составляют опытные методисты, а ещё действующие специалисты Яндекса, Школы анализа данных и других лидеров технологической индустрии.
Как и когда я буду проходить курс?
Курс включает 3 составляющие: теория с закреплением в тренажёре, самостоятельные работы и проекты, онлайн-встречи с наставником. В тренажёре вы можете заниматься в любое удобное время, а выполнение практики привязано к двух- или трёхнедельному циклу.
Что делать, если я не справлюсь с нагрузкой?
В программе предусмотрены перерывы, во время которых можно отдохнуть или повторить сложные темы.

Если вам понадобится сделать паузу или уделить больше времени закреплению материала, напишите своему куратору.
Смогу ли я найти работу после курса?
Гарантий нет, но мы верим, что сможете. Работодателям важно, чтобы вы справлялись с реальными задачами, а не просто обладали набором знаний. После курса вы сможете применять знания на практике, а также мы предлагаем помощь HR-специалистов из нашего карьерного центра. Но вам точно придётся приложить усилия, чтобы найти работу: активно откликаться на вакансии, проходить собеседования, показывать свои проекты и делать тестовые задания.

По данным исследования* Высшей школы экономики, 69% пользователей Яндекс Практикума среди тех, кто хотел сменить профессию, начинают новую карьеру после курса. Больше половины из них — во время курса и в первые 2 месяца после его окончания.

* Данные исследования ВШЭ основаны на опыте пользователей Яндекс Практикума на российском рынке труда.
А если я хочу работать в Яндексе?
Некоторые участники наших курсов работают в сервисах Яндекса, в том числе и в Практикуме. Но с нашей стороны было бы нечестно что‑либо гарантировать и завышать ваши ожидания.

Без опыта попасть в крупную IT-компанию возможно, хотя и сложно. Программа составлена так, чтобы вы могли начать карьеру после курса и набраться первого опыта. С ним вам будет значительно проще претендовать на позицию в крупных компаниях.
Если не понравится, я могу вернуть деньги?
Конечно. Если поток ещё не стартовал, вернём всю сумму, Если учёба уже началась, придётся оплатить прошедшие дни со старта вашего первого потока — но мы вернём деньги за остаток курса. Более подробно рассказываем об этом в седьмом пункте оферты..
Получу ли я какой-то документ после курса?
Да, вы получите сертификат о завершении курса.
В какой валюте можно оплатить курс?
Оплатить курс можно в любой валюте, кроме российских рублей.

Чтобы вам было проще сориентироваться, мы указываем примерную стоимость в долларах США, но списание будет в казахстанских тенге, а конвертация — по курсу вашего банка.

Давайте поможем

Мы работаем с 09:00 до 18:00 по минскому времени и связываемся в течение одного дня. Если оставите заявку сейчас, то перезвоним уже в рабочее время.