Сложность
Сложность
Продвинутый
Тип обучения
Тип обучения
Курс
Формат обучения
Формат обучения
С проверкой домашнего задания
Трудоустройство
Трудоустройство
Содействие
Сертификат
Сертификат
Да

Стоимость курса

135 000 ₽
есть рассрочка
  •  Научитесь писать эффективный код
  •  Разберётесь в стандартной библиотеке C++
  •  Начнёте работать с Git, IDE и компиляторами
  •  Познакомитесь с базовыми алгоритмами
    и структурами данных
  •  Создадите действующие сервисы и добавите 10+ проектов в портфолио
  •  Сможете начать карьеру с поддержкой наших специалистов

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

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

Что вы получите после обучения

Приобретаемые навыки
1
C++
3
Эффективность кода
4
Масштабируемость
5
STL
6
ANTLR
7
Создание диаграмм UML
8
CMake
9
PROTOBUF
10
Алгоритмы
11
Дебагинг
12
Юнит-тесты
14
Санитайзеры
15
Сериализация
16
Интерпретаторы
17
Библиотеки
18
Обработка фото

Вас будут обучать

Ведущий инженер-программист, АО «КТ-Беспилотные системы»

Инженер-разработчик в Bercut и менеджер наставников в Практикуме. 6 лет в программировании.

Старший инженер по разработке электроники, начинающий embedded-разработчик и наставник в Практикуме.

Образовательная организация

Яндекс Практикум — сервис онлайн-обучения, где каждый может освоить цифровую профессию с нуля или получить новые навыки для дальнейшего профессионального развития.

Яндекс Практикум готовит специалистов по 5 направлениям: анализ данных, программирование, дизайн, маркетинг, менеджмент.

Обучение проходит в собственной технологической среде компании, что позволяет студентам сразу применять полученные знания на практике. Карьерный центр оказывает содействие при поисках и устройстве на работу.

Программы состоят из двух частей: бесплатного вводного курса и платного продолжения. Бесплатная часть поможет оценить формат, примерить на себя профессию и принять взвешенное решение.

Преимущества:

Обучение основано на реальных ситуациях. Все задачи, которые вы будете выполнять, взяты из реальной рабочей практики. Оттуда же все инструменты: редакторы кода или Figma. С первых дней вы будете готовиться к своей будущей работе.
69% выпускников Практикума находят работу. В этом им помогает особый этап курса — карьерный трек. На нём со студентами работают наши HR-специалисты. Они учат студентов планировать процесс поиска работы, правильно составлять резюме, не теряться на собеседованиях и проходить тестовые задания. Читать исследование НИУ ВШЭ
Технологии помогают сделать так, чтобы каждому было удобно учиться. Теория — в учебнике с интерактивными элементами, задачи — в тренажёре.
Обратная связь. Еженедельные созвоны с наставниками и подробный письменный разбор выполненных заданий от ревьюера. Кураторы регулярно собирают обратную связь, чтобы в группе было комфортно и не страшно обратиться за помощью.
Возможность оплаты курса в рассрочку. 

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

Обновили программу в сентябре 2024 года, чтобы вы учились только актуальному
На базовом курсе освоите всё, что нужно, чтобы начать работать junior разработчиком, а на расширенном — получите больше навыков, которые помогут найти работу и быстрее вырасти до middle
10 часовБесплатно
Базовые понятия программирования

Бесплатный модуль, который не обязателен для прохождения, но поможет познакомиться с форматом обучения, познакомиться с основами программирования и научиться писать простые программы на C++
Переменные и типы
Цикл for и ветвления
Функции
Знакомство с С++
Поймёте, кто такой С++ разработчик, с какими проектами и задачами он может работать.
Переменные и ввод
Узнаете, какие типы переменных используются в программе, написанной на С++. После сами напишете первые программы, которые считывают информацию от пользователя.
Условные функции, цикл for
Что такое ветвления и цикл for. Зачем и как их можно использовать.
Функции
Научитесь писать простые функции для структурирования кода.
Познакомитесь с языком программирования С++ и научитесь писать базовые программы. Сможете выбрать формат курса, который вам подходит: базовый или расширенный

5 спринтов・3 проекта・10 недель
Основы С++ с Qt

Изучите как базовые основы C++, так и некоторые продвинутые возможности. Особое внимание в модуле уделено созданию графических приложений. При помощи фреймворка Qt вы создадите 10+ полноценных полезных программ: будильник, фотоальбом и несколько игр. Изучите паттерны программирования и объектно ориентированную разработку.
Базовые алгоритмы
Перегрузка операций
Метапрограммирование
Объектно ориентированное программирование
Qt
MVC
Git
Qt Creator
Рекурсия
Контейнеры
Словари
Hello, C++
Изучите базовые понятия программирования на примере C++: переменные, типы, операторы.
Условные конструкции
Поработаете с логическими выражениями и операторами ветвления.
Циклы и алгоритмы
Изучите операторы циклов, а также базовые и широко используемые алгоритмы.
Функции
Научитесь писать свои функции и вызывать их, передавать и принимать аргументы. Также поделите программу на файлы.
Система Git
Узнаете основные команды Git и поработаете с репозиторием.
Классы
Узнаете, как работать с агрегированными типами. Изучите понятия класс, метод и объект.
Классы: продолжение
Более подробно погрузитесь изучите классы. Научитесь писать конструкторы и константные методы.
Знакомство с Qt
Установите Qt и создадите в нём графическое приложение.
Создание графических приложений
Изучите основные элементы Qt и компоновки, создадите несколько полноценных графических программ.
Перегрузка операций
Узнаете, как добавить поддержку операций для собственных типов. Научитесь делать кастомизированный ввод и вывод.
Шаблоны
Изучите основы метапрограммирования, создадите шаблонные классы и функции.
Лямбды
Поработаете с функциональными объектами, компараторами, предикатами и функциями обратного вызова.
И снова вектор
Углубитесь в устройство вектора, изучите итераторы и создадите графический интерфейс для вектора.
Ассоциативные контейнеры
Изучите контейнеры map и set и концепцию словаря, а также контейнеры Qt.
Другие контейнеры и поиск
Изучите контейнеры стек, очередь, дек, алгоритм бинарного поиска и рекурсию.
Написание тестов и логов
Попробуете один из фрейморков для написания тестов. Примените логирование в своих программах.
Наследование и исключения
Изучите основы объектно ориентированного программирования (ООП) и обработку ошибок через исключения.
Разработка игры
Примените полученные знания для разработки квестовой игры. Рассмотрите принципы работы графического интерфейса.
Создадите калькулятор с адаптивным интерфейсом, который производит вычисления над разными цифрами и дробями. При помощи паттерна MVC создадите графическую оболочку контейнера дек, поддерживающую большинство операций. Также реализуете бинарный поиск и сортировку. Ещё создадите игру о роботе‑спасателе, который спасает людей и животных из горящих зданий

3 спринта・3 проекта・6 недель
Производительность и оптимизация

Научитесь оценивать эффективность высокопроизводительного приложения до и после его разработки. Изучите работу с файлами и регулярными выражениями. Познакомитесь со внутренним устройством контейнеров, чтобы понять, как настраивать элементы языка на эффективную работу. Освоите move-семантику, чтобы избегать лишних копирований в коде.
Профилировка
Логирование
Буфер
Атомарность
Модель памяти
Односвязный и двухсвязный список
Контейнеры
Итераторы
Move-семантика
Сложность алгоритмов
Профилировка и ускорение
Узнаете, зачем нужна профилировка, упростите логирование, чтобы ускорить программу.
Потоковые хитрости
Познакомитесь с буфером и его возможностями, узнаете, какой может быть связь потоков.
Теория быстродействия
Поймёте, что такое асимптотическая сложность. Научитесь оценивать алгоритмы по сложности и разберётесь, как оценивается сложность нескольких алгоритмов.
Работа с файлами
Продолжите знакомство с буфером и потоками и научитесь работать с ними через файлы.
Модель памяти в C++
Изучите атомарность, эксклюзивность и изменение порядка. Рассмотрите примеры переупорядочивания памяти. Узнаете, что такое «модель памяти», Volatile и атомарные переменные. Рассмотрите примеры сломанного кода и решения, как его починить.
Односвязный список
Познакомитесь с устройством односвязного списка, вставкой и очисткой элементов. RAII обёртка для массивов.
Эффективные линейные контейнеры
Узнаете о контейнерах и итераторах, какие бывают категории итераторов. Элементы стандартной библиотеки. Линейные контейнеры. Односвязный и двусвязный список.
Семантика перемещения
Введение в move, rvalue и lvalue. Универсальные ссылки. Свёртывание ссылок. Copy/move elision.
Самостоятельно создадите препроцессор, через который исходный код проходит до компилятора и обрабатывает директивы. Создадите собственную версию односвязного списка — контейнера, который поддерживает эффективное добавление и удаление элементов. Также напишете собственную версию вектора — контейнера, который обеспечивает эффективный доступ к элементам

5 спринтов・5 проектов・11 недель
Качество кода

Изучите инструменты, которые делают код опрятным и защищают его от человеческих ошибок: пространства имён, константность, RAII. Узнаете, как избавить программу от проблем роста. Освоите динамический полиморфизм.
ООП
Множества
Санитайзеры
unique_ptr
shared_ptr
weak_ptr
Неопределённое поведение
Константность
Функции
Методы
Идиома RAII
Рефакторинг
Ассоциативные контейнеры
Изучите принципы объектно ориентированного програмиирования. Разберёте полиморфизм. Также узнаете, что такое разнородный поиск и множества.
Имена и пространства имён
Познакомитесь с инструментированием кода, чтобы выявлять ошибки в среде выполнения. Начнёте использовать санитайзеры. Научитесь создавать отчёты об ошибках.
Умные указатели
Изучите указатели unique_ptr, shared_ptr и weak_ptr, их понятия и применение.
Undefined Behavior
Узнаете, что такое неопределённое поведение, точки следования и побочные эффекты.
Наследование и полиморфизм
Познакомитесь с понятием и синтаксисом наследования и полиморфизма. Узнаете, что такое статическая привязка и виртуальная функция.
Константность
Продолжите осваивать основы объектно ориентированного программирования. Подробнее изучите константные объекты классов, функции-члены и получение константных объектов через передачу по константной ссылке.
Идиома RAII
Научитесь управлять временем жизни и ресурсами объекта.
Философия хороших функций
Поймёте, что лучше использовать: функцию или метод класса.
Передача данных в функцию
Как лучше передавать данные: по ссылке или по значению. Посмотрите ассемблер. Запустите бенчмарки. Познакомитесь с Forwarding reference. Узнаете 3 способа передачи функций.
Получение данных из функции
Узнаете, как лучше получать данные из функции.
Рефакторинг
Изучите методы и средства рефакторинга, а также познакомитесь с 3 типами конструкторов.
Будете работать над транспортным справочником: напишете программу, чтобы хранить информацию об автобусных остановках и автобусах. Затем добавите возможность строить автобусные маршруты в городе

2 спринта・2 проекта・4 недели
Проектирование сложных программ

Напишете полноценный вектор, познакомитесь с variadic templates и гарантиями безопасности исключений.
Вектор
Конструкторы и деструкторы
Таблица виртуальных методов
Система сборки CMake
Vector своими руками
Что нужно знать для реализации: указатели, move‑семантика, rValue и lValue ссылки, шаблоны, итераторы, переопределение операторов. Разработаете вектор, который автоматически увеличивает свой размер и эффективно работает с памятью.
Хранение объектов в памяти
Узнаете, что такое оперативная память, представление объектов, указатели. Подробнее изучите динамическую память и стек. Также сможете отслеживать утечки памяти.
Таблица виртуальных методов
Изучите конструкторы и деструкторы, таблица виртуальных методов.
Сборка по-новому: CMake
Узнаете про систему сборки CMake, как её установить и познакомитесь с основами её синтаксиса.
Разработаете вектор, который автоматически увеличивает свой размер, эффективно работает с памятью и не копирует объекты зря. Напишете конвертер изображений, который будет переводить их из одного формата в другой. Он будет поддерживать BMP, PPM, JPEG

Самостоятельно・3 недели
Итоговый проект: электронная таблица

Напишете крупную программу, которую сможете развивать. Именно так вы закрепите свои навыки написания понятного и масштабируемого кода. Сначала вы защитите дизайн-проект таблицы с ячейками и формулами, а уже после напишете код.
Карьерный центр・3–4 недели
Подготовка в трудоустройству
Эта часть курса для тех, кто решил найти работу разработчиком С++. Вы изучите стратегии поиска работы и узнаете о тонкостях выбора компании, напишете резюме и сопроводительное письмо. Обратите внимание, что, если вы оплатите учёбу за счёт работодателя, у вас не будет доступа к программе подготовки к трудоустройству.
Карьерный центр・8–24 недели
Акселерация
Программа сопровождения: вы ищете работу, мы консультируем и помогаем. Участвовать в программе могут те, кто закончил подготовку к трудоустройству и находится в активном поиске работы.
+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. Обзор GBD. Выбор файлов. Практические занятия. Отладка программы через присоединение к выполняемому процессу с помощью gdb. Вход и выход из GDB. Вызов GDB.
Профилирование
Стек-трейс и тред-дамп: понятия, назначение, использование. Аналитика программного года через статистику путей выполнения.
Нагрузочное тестирование
Понятие нагрузочного тестирования и его место в верификации программного решения.
Сохранение состояния системы
Описание состояния системы. Сериализация. Сохранение и восстановление состояния системы.
База данных PostgreSQL
Познакомитесь с архитектурой баз данных и научитесь отправлять в них запросы. Узнаете, как описывать, сохранять и восстанавливать состояние системы. Освоите SQL.
Продвинутая работа с базой данных
Подключите к своему проекту базу данных и СУБД PostgreSQL.
Разработаете

Рейтинг курса

4.8
рейтинг
1
1
0
0
1

Отзывы о курсе

3 отзыва
по рейтингу по дате
K
kudryashovda

Зачет!

Хотел бы поделиться своими наблюдениями о курсе «Разработчик С++». Курс стартовал 4 недели назад, плюс до этого - целый месяц потратил на решение задач бесплатной части курса. Сразу поясню - команда курса постоянно собирает обратную связь со студентов - сначала путем заполнения анонимных форм, а сейчас - путем конкурса отзывов. За отзыв по теме конкурса была обещана пачка кофе :) А иначе как еще з...
K
kirill mayer

Хочешь сделать хорошо - делай сам

Достоинства: лекторы материал Недостатки: тренажер общий_случай Прохожу курс "Разработчик С++" на платформе яндекс практики уже несколько месяцев. Первое впечатление было ужасным. Бесплатная часть курса по основам языка давалась с "бомбежом" даже имея 10 лет практики программирования. Особенно когда результат тестов на мой код был единственной строчкой вида "Неправильно обрабатывается общий...
1
1Vlad1-

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

Достоинства: Благодаря наличию бесплатного раздела обучения есть возможность понять что он из себя представляет. Недостатки: Не пригодная для обучения методика Повелся на вездесущую рекламу этого практикума и решил попробовать бесплатный вводный курс разработчика С++. Профессиональным программистом я не являюсь, но данный язык мне очень хорошо знаком. Прошел примерно 15% от объема бесплатно...

Может быть интересно

обновлено 28.10.2024 12:34
Курс «Разработчик C++»

Курс «Разработчик C++»

Оставить отзыв
Поделиться курсом с друзьями