На языке C++ можно разработать что угодно

Освоите профессию с нуля за 9 месяцев

Получите мощный набор навыков и инструментов

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

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

И прозрачный карьерный рост

Вот средние зарплаты разработчиков C++. Вы начнёте с junior позиции.

Источник данных: Хабр Карьера
53 000 ₽
Junior
120 000 ₽
Middle
280 000 ₽
Senior

Обновили программу в сентябре 2024 года, чтобы вы учились только актуальному

Есть базовый и расширенный форматы — со вторым вы быстрее вырастете до уровня middle
10 часов
Бесплатно
Базовые понятия программирования
Бесплатный модуль, который не обязателен для прохождения, но поможет познакомиться с форматом обучения, основами программирования и научиться писать простые программы на C++
  • Переменные и типы
  • Цикл for и ветвления
  • Функции
Знакомство с С++
Поймёте, кто такой разработчик С++ , с какими проектами и задачами он может работать.
Переменные и ввод
Узнаете, какие типы переменных используются в программе, написанной на С++. После сами напишете первые программы, которые считывают информацию от пользователя.
Условные функции, цикл for
Выясните, что такое ветвления и цикл for, зачем и как их можно использовать.
Функции
Научитесь писать простые функции для структурирования кода.
Познакомитесь с языком программирования С++ и научитесь писать базовые программы. Сможете выбрать формат курса, который вам подходит: базовый или расширенный
1
5 спринтов・3 проекта・10 недель
Основы С++ с Qt
Изучите как базовые основы C++, так и некоторые продвинутые возможности. Особое внимание в модуле уделено созданию графических приложений. При помощи фреймворка Qt вы создадите 10+ полноценных полезных программ: будильник, фотоальбом и несколько игр. Изучите паттерны программирования и объектно ориентированную разработку.
  • Базовые алгоритмы
  • Перегрузка операций
  • Метапрограммирование
  • Объектно ориентированное программирование
  • Qt
  • MVC
  • Git
  • Qt Creator
  • Рекурсия
  • Контейнеры
  • Словари
Hello, C++
Изучите базовые понятия программирования на примере C++: переменные, типы, операторы.
Условные конструкции
Поработаете с логическими выражениями и операторами ветвления.
Циклы и алгоритмы
Изучите операторы циклов, а также базовые и широко используемые алгоритмы.
Функции
Научитесь писать свои функции и вызывать их, передавать и принимать аргументы. Также поделите программу на файлы.
Система Git
Узнаете основные команды Git и поработаете с репозиторием.
Классы
Узнаете, как работать с агрегированными типами. Изучите понятия класса, метода и объекта.
Классы: продолжение
Погрузитесь в специфику классов. Научитесь писать конструкторы и константные методы.
Знакомство с Qt
Установите Qt и создадите в нём графическое приложение.
Создание графических приложений
Изучите основные элементы Qt и компоновки, создадите несколько полноценных графических программ.
Перегрузка операций
Узнаете, как добавить поддержку операций для собственных типов. Научитесь делать кастомизированный ввод и вывод.
Шаблоны
Изучите основы метапрограммирования, создадите шаблонные классы и функции.
Лямбды
Поработаете с функциональными объектами, компараторами, предикатами и функциями обратного вызова.
И снова вектор
Углубитесь в устройство вектора, изучите итераторы и создадите графический интерфейс для вектора.
Ассоциативные контейнеры
Изучите контейнеры map и set и концепцию словаря, а также контейнеры Qt.
Другие контейнеры и поиск
Изучите контейнеры стек, очередь, дек, алгоритм бинарного поиска и рекурсию.
Написание тестов и обработка ошибок
Попробуете один из фрейморков для написания тестов. Примените логирование в своих программах. Изучите обработку ошибок через исключения.
Разработка игры и ООП
Изучите основы ООП. Примените полученные знания для разработки квестовой игры. Рассмотрите принцип работы графического интерфейса.
Разработаете калькулятор с адаптивным интерфейсом, который производит действия над цифрами и дробями. При помощи паттерна MVC создадите графическую оболочку контейнера дек, поддерживающую большинство операций. Также реализуете бинарный поиск и сортировку. Ещё создадите игру о роботе‑спасателе, который спасает людей и животных из горящих зданий
2
3 спринта・3 проекта・6 недель
Производительность и оптимизация
Научитесь оценивать эффективность высокопроизводительного приложения до и после его разработки. Освоите действия с файлами и регулярными выражениями. Познакомитесь с внутренней структурой контейнеров, чтобы понять, как настраивать элементы языка на эффективную работу. Освоите move‑семантику, чтобы избегать лишних копирований в коде.
  • Профилировка
  • Логирование
  • Буфер
  • Атомарность
  • Модель памяти
  • Односвязный и двухсвязный списки
  • Контейнеры
  • Итераторы
  • Move-семантика
  • Сложность алгоритмов
Профилировка и ускорение
Узнаете, зачем нужна профилировка, упростите логирование, чтобы ускорить программу.
Потоковые хитрости
Познакомитесь с буфером и его возможностями, узнаете, какой может быть связь потоков.
Теория быстродействия
Поймёте, что такое асимптотическая сложность. Научитесь оценивать алгоритмы по сложности и разберётесь, как определяется сложность нескольких алгоритмов.
Работа с файлами
Продолжите знакомство с буфером и потоками и научитесь работать с ними через файлы.
Модель памяти в C++
Изучите атомарность, эксклюзивность и изменение порядка. Рассмотрите примеры переупорядочивания памяти. Узнаете, что такое модель памяти, Volatile и атомарные переменные. Рассмотрите примеры сломанного кода и решения, как его починить.
Односвязный список
Познакомитесь с устройством односвязного списка, вставкой и очисткой элементов, RAII‑обёрткой для массивов.
Эффективные линейные контейнеры
Узнаете о контейнерах и итераторах, какие бывают категории итераторов. Элементы стандартной библиотеки. Линейные контейнеры. Односвязный и двусвязный список.
Семантика перемещения
Введение в move, rvalue и lvalue. Универсальные ссылки. Свёртывание ссылок. Copy/move elision.
Самостоятельно создадите препроцессор, через который исходный код проходит до компилятора и обрабатывает директивы. Сделаете свой вариант односвязного списка — контейнера, который поддерживает эффективное добавление и удаление элементов. Также напишете собственную версию вектора — контейнера, который обеспечивает эффективный доступ к элементам
3
5 спринтов・1 проект・11 недель
Качество кода
Изучите инструменты, которые делают код опрятным и защищают его от человеческих ошибок: пространство имён, константность, RAII. Узнаете, как избавить программу от проблем роста. Освоите динамический полиморфизм.
  • ООП
  • Множества
  • Санитайзеры
  • unique_ptr
  • shared_ptr
  • weak_ptr
  • Неопределённое поведение
  • Константность
  • Функции
  • Методы
  • Идиома RAII
  • Рефакторинг
Ассоциативные контейнеры
Изучите принципы объектно ориентированного програмиирования. Разберёте полиморфизм. Также узнаете, что такое разнородный поиск и множества.
Имена и пространства имён
Познакомитесь с инструментированием кода, чтобы выявлять ошибки в среде выполнения. Начнёте использовать санитайзеры. Научитесь создавать отчёты об ошибках.
Умные указатели
Изучите указатели unique_ptr, shared_ptr и weak_ptr, их понятия и применение.
Undefined Behavior
Узнаете, что такое неопределённое поведение, точки следования и побочные эффекты.
Наследование и полиморфизм
Познакомитесь с понятием и синтаксисом наследования и полиморфизма. Узнаете, что такое статическая привязка и виртуальная функция.
Константность
Продолжите осваивать основы объектно ориентированного программирования. Подробнее изучите константные объекты классов, функции-члены и получение константных объектов через передачу по константной ссылке.
Идиома RAII
Научитесь управлять временем жизни и ресурсами объекта.
Философия хороших функций
Поймёте, что лучше использовать: функцию или метод класса.
Передача данных в функцию
Выясните, как лучше передавать данные: по ссылке или по значению. Посмотрите ассемблер. Запустите бенчмарки. Познакомитесь с forwarding reference. Узнаете о 3 способах передачи функций.
Получение данных из функции
Узнаете, как лучше получать данные из функции.
Рефакторинг
Изучите методы и средства рефакторинга, а также познакомитесь с 3 типами конструкторов.
Будете работать над транспортным справочником: напишете программу, чтобы хранить информацию об автобусных остановках и автобусах. Затем добавите возможность строить автобусные маршруты в городе
4
2 спринта・2 проекта・4 недели
Проектирование сложных программ
Напишете полноценный вектор, познакомитесь с variadic templates и гарантиями безопасности исключений.
  • Вектор
  • Конструкторы и деструкторы
  • Таблица виртуальных методов
  • Система сборки CMake
Vector своими руками
Выясните, что нужно знать для реализации: указатели, move‑семантику, rValue- и lValue‑ссылки, шаблоны, итераторы, переопределение операторов. Создадите вектор, который автоматически увеличивает свой размер и эффективно работает с памятью.
Хранение объектов в памяти
Узнаете, что такое оперативная память, представление объектов, указатели. Подробнее изучите динамическую память и стек. Также сможете отслеживать утечки памяти.
Таблица виртуальных методов
Изучите конструкторы и деструкторы, таблицу виртуальных методов.
Сборка по-новому: CMake
Узнаете про систему сборки CMake, особенности её установки и познакомитесь с основами её синтаксиса.
Разработаете вектор, который автоматически увеличивает свой размер, эффективно работает с памятью и не копирует объекты зря. Напишете конвертер изображений, который будет переводить их из одного формата в другой. Он будет поддерживать BMP, PPM, JPEG
5
Самостоятельно・3 недели
Итоговый проект: электронная таблица
Напишете крупную программу, которую сможете развивать. Именно так вы закрепите свои навыки создания понятного и масштабируемого кода. Сначала вы защитите дизайн‑проект таблицы с ячейками и формулами, а уже после напишете код.
Карьерный центр・1 месяц
Карьерный трек: подготовка к трудоустройству
Составите резюме, которое привлечёт внимание рекрутеров, и напишете сопроводительное письмо для откликов на вакансии. Узнаете, как правильно оформлять портфолио, и построите стратегию поиска работы.

Обратите внимание: если курс оплачивает ваш работодатель, у вас не будет подготовки к трудоустройству.
Карьерный центр・До 6 месяцев
Акселерация: активный поиск работы с поддержкой HR‑экспертов
Будете откликаться на вакансии, делать тестовые и ходить на собеседования, а мы вас дистанционно поддержим. Например, расскажем, какие ошибки бывают в общении с работодателем и как их избежать. Акселерация может продолжаться до 6 месяцев — обычно этого достаточно, чтобы получить первую работу в IT.
+15 тем・+3 проекта・+11 недель
Расширенный курс «Разработчик С++»
Расширенный формат стоит дороже, но включает в себя больше тем и проектов, которые помогут усилить портфолио и повысить шансы на быстрое трудоустройство.

На расширенном курсе вы освоите C++ для бэкенда:
  • Разработаете программное обеспечение под Linux
  • Получите навык нагрузочного тестирования
  • Научитесь работать с Docker и СУБД PostgreSQL
  • Расширите свои знания о библиотеках разработки на С++ и используете в проекте boost: asio и boost: beast
  • Углублённое изучение С++ и его библиотек
  • Linux
  • Docker
  • Boost
  • Мониторинг системных ресурсов
  • Нагрузочное тестирование
  • PostgreSQL
  • SQL и базы данных
Hello, Linux!
Настроите рабочее окружение: поднимите виртуальную машину с операционной системой Linux и установите библиотеку Boost.
Hello, web-server!
Рассмотрите сетевые протоколы: TCP, UDP, HTTP. Разработаете собственный веб‑сервер.
Hello, Docker!
Научитесь устанавливать Docker и создавать образ проекта.
Передача данных через сеть
Научитесь передавать файлы, объединять веб‑серверы и фронтенд, чтобы создать сетевое приложение.
Эффективное логирование
Нырнёте в мир библиотеки Boost.Log и научитесь оптимально хранить большие объёмы логов.
Авторизация и аутентификация
Освоите базовые техники авторизации и аутентификации пользователей.
Механизмы синхронизации
Узнаете о тредах и процессах в операционной системе, состоянии гонки и методах синхронизации.
Мониторинг ресурсов
Наладите мониторинг системных ресурсов в операционной системе Linux и настроите отправку уведомлений в случаях, когда память переполняется. Это позволит держать ресурсы системы под контролем.
Распараллеливание
Изучите распараллеливание вычислений между тредами, фреймворк для тестов и варианты отладки программ.
Тестирование и отладка
Фреймворк для тестов Catch. Обзор GDB. Выбор файлов. Практические занятия. Отладка программы через присоединение к выполняемому процессу с помощью GDB. Вход и выход из GDB. Вызов GDB.
Профилирование
Стек‑трейс и тред‑дамп: понятия, назначение, использование. Аналитика программного кода через статистику путей выполнения.
Нагрузочное тестирование
Понятие нагрузочного тестирования и его место в верификации программного решения.
Сохранение состояния системы
Описание состояния системы. Сериализация. Сохранение и восстановление состояния системы.
База данных PostgreSQL
Познакомитесь с архитектурой баз данных и научитесь отправлять в них запросы. Узнаете, как описывать, сохранять и восстанавливать состояние системы. Освоите SQL.
Продвинутая работа с базой данных
Подключите к своему проекту базу данных и СУБД PostgreSQL.
Разработаете собственный дашборд на основе логирования Grafana и Prometheus, а также проведёте нагрузочное тестирование с помощью Яндекс Танк. Создадите приложение, использующее базу данных PostgreSQL для хранения. Также напишете бэкенд для небольшой игры, в которой игроки‑курьеры соревнуются в том, кто быстрее всех доставит заказы

Получите диплом о профессиональной переподготовке

Это официальный документ установленного образца, который принимают работодатели. Образовательная лицензия № Л035-01298-77/00185314 от 24 марта 2015 года.

Очень много практики

Ещё 7 месяцев после выпуска бесплатно помогаем с поиском работы — для этого у нас целый карьерный центр

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

Это подтверждено исследованием, которое мы провели вместе с Высшей школой экономики. Вот в каких компаниях они работают:

Как устроена учёба

Ещё учиться помогает YandexGPT

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

Эти выпускники уже стали разработчиками С++. Большинство — без опыта в IT

4,7
TutorTop
4,5
IRecommend
4,3
Отзовик

Попробуйте любой формат курса бесплатно — выбрать один-единственный можно позже

  •                                        

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

Подойдёт ли мне эта профессия?
Для тех, кто ещё нетвёрдо уверен в своём намерении, мы спроектировали бесплатную часть, которая поможет получить ответ на этот вопрос. Если вы убедитесь, что разработка не для вас, это тоже положительный результат.

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

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

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

Без опыта попасть в крупную IT-компанию возможно, хотя и сложно. Программа составлена так, чтобы вы могли начать карьеру после выпуска и набраться первого опыта. С ним вам будет значительно проще претендовать на позицию в крупных компаниях.
Хорошо, а вы можете помочь с поиском работы?
Да. Вы сможете пройти подготовку к трудоустройству, которая состоит из 2 частей:

• Карьерный трек: студенты при поддержке наших HR-экспертов составляют резюме или оформляют портфолио, пишут сопроводительные письма.
• Акселерация: студенты начинают активный поиск работы, а мы им помогаем — отвечаем на вопросы, проводим тренировочные собеседования, предлагаем вакансии от партнёров.

Обратите внимание: если курс оплачивает ваш работодатель, у вас не будет подготовки к трудоустройству.
Как можно оплатить?
Банковской картой: внести всю сумму сразу или платить ежемесячно.

Ежемесячные платежи работают так: вы вносите первую оплату, и в этот момент привязывается карта. С этой карты автоматически будут списываться следующие платежи каждые 30 календарных дней. Например, оплатили 25 марта — следующий платёж пройдёт 24 апреля. Обучение будет стоить меньше, если оплатить весь курс сразу.

Через компанию: юридические лица — резиденты РФ также могут оплатить обучение в Практикуме. Условия предоставления услуг для юридических лиц могут отличаться — чтобы узнать подробнее, оставьте заявку или уточните у вашего менеджера.
Можно ли оплатить курс за счёт работодателя?
Да, работодатель может оплатить учёбу полностью или разделить оплату с вами: например, поделить сумму 50/50 или 75/25.

Такая оплата пройдёт по счёту или двустороннему договору, а ИП могут оплатить с бизнес-счёта. Если работодатель купит обучение сразу 10 сотрудникам или больше, сделаем скидку 10%.

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

Если нет, выдадим сертификат о прохождении курса и справку об обучении в электронном виде.
Подходит ли курс новичкам?
Мы ожидаем, что вы уже знакомы с разработкой: писали на другом языке, или у вас было программирование в вузе. Если у вас совсем нет опыта, но очень хочется — попробуйте пройти бесплатную часть.
Что такое налоговый вычет на обучение и как его получить?
Налоговый вычет может оформить тот, кто работает по трудовому договору и является налоговым резидентом Российской Федерации, то есть 183 дня в году находится на территории страны.

Заявление на налоговый вычет нужно подать через личный кабинет на сайте nalog.ru (в него можно войти через аккаунт на Госуслугах).

К заявлению нужно приложить:
  • Справку 2-НДФЛ от работодателя.
  • Договор на обучение, в вашем случае это оферта Практикума.
  • Лицензию на образовательную деятельность. Вот наша.
  • Чек об оплате обучения. Мы отправляем его на электронную почту. Если не найдёте чек у себя в почте, напишите в чат службы поддержки — вышлем копию.
  • Справку о получении образовательных услуг — её тоже нужно запросить в чате поддержки.
Подробнее о налоговом вычете — на сайте Федеральной налоговой службы.

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

Напишите, как вас зовут и по какому номеру можно связываться — позвоним и расскажем всё про курсы

Как планируете учиться?