Специальная цена
C++ Developer
Все что нужно знать о разработке на C++
с нуля и до Middle Developer
25 декабря
Basic
10 месяцев
Онлайн
Для кого?
Для тех, кто хочет с нуля освоить принципы программирования и развиваться в С++ разработке, а также для тех, кто еще не определился с языком.
Программа идет с нуля и рассчитана на опытных ПК-пользователей, которые хотят научиться программировать. После обучения вы сможете углубиться в разработку на C++ или перейти на любой другой язык ООП. Специализация призвана помочь тем, кто делает первые шаги в IT и хочет быть готов к первым собеседованиям и работе в проектах.
Чаще всего язык применяется в создании масштабного ПО и игр, программ для «железа» и IoT-устройств, хранения и обработки большого объема данных.
Подходит ли программа именно вам?
Менеджер поможет разобраться!
Какой результат вы получите?
Обучение состоит из 2х ступеней
- Для тех, кто хочет с нуля освоить профессию разработчик на С++
- Изучите одну из главных возможностей языка С++ с точки зрения ООП - создание собственных типов и операций с ними
- Получите базовые навыки unit-тестирования своего кода на языке С++
- Познакомитесь со стандартной библиотекой
- Научитесь использовать сторонние библиотеки
- Поработаете с многопоточностью в приложениях
- Разработаете и защитите первый проект
- Рассмотрите разные версии языка: С++11, С++14, С++17. Узнаете про управление памятью; CI/CD
- Изучите принципы проектирования, шаблоны GoF, STL, Boost
- Освоите навыки использования многопоточности, асинхронный подход к решению задач и LockFree технику
- Овладеете основными принципами сетевого взаимодействия, использование библиотеки Boost.Asio
- Исследуете системы хранения данных: РСУБД, NoSQL, схемы mapreduce и ORM-системы для автоматизации
Авторская программа
Тренды разработки и
актуальные инструменты.
Обучение на рабочих кейсах
Применение C++
Представление в разных областях,
с которыми соприкасается
разработчик C++
Помощь с трудоустройством
Комплексная система, которая поможет получить выгодные офферы
в перспективных проектах
Партнеры
Мы даём качественные знания, которые помогут
в получении офферов в перспективных проектах
- Разместите свое резюме в базе OTUS
и сможете получать приглашения
на собеседования от партнеров - Карьерные мероприятия в сообществе
c публичным разбором резюме
и прохождением собеседования
C++ Developer
Работодатели курса
Формат обучения
Интерактивные вебинары
2 занятия по 2 ак.часа в неделю.
Доступ к записям и материалам остается навсегда
Практика
Домашние задания + 2 проектные
работы, которые усилят ваше портфолио
Активное комьюнити
Общайтесь с преподавателями голосом на вебинарах и в группе телеграм
Групповые менторские консультации
На специализации предусмотрено менторское сопровождение в виде групповых разборов домашних заданий. Занятие по групповому разбору ДЗ с ментором проводится раз в месяц в рамках расписания специализации. Преподаватели действуют в единой связке с ментором, создавая бесшовный образовательный процесс
Программа
1 ступень
Введение в язык C++
Знакомство с курсом и подготовка стенда для дальнейшей работы.
Тема 1: Вводное занятие
Тема 2: Пишем свой “Hello, World".
Тема 3: Базовый синтаксис языка C++
Тема 4: Такие разные функции
Тема 5: Модульность. Линковка
Тема 6: Консультация по ДЗ
Тема 7: Подробнее о CMake
Тема 8: Соберём все вместе
Тема 9: Ответы на вопросы
Классы и структуры
Изучение одной из главных возможностей языка C++ с точки зрения ООП – создание собственных типов и операций с ними.
Тема 1: Структуры и классы
Тема 2: ООП в C++
Тема 3: Полиморфизм и все-все-все
Тема 4: Шаблоны классов и функций
Тема 5: Тонкости (перегрузка операторов, конструкторы и деструкторы, move-семантика)
Основы unit-тестирования
Получение базовых навыков unit-тестирования своего кода на языке C++.
Тема 1: Понятие unit-тестирования, цель, что тестируем
Тема 2: Консультация по ДЗ
Тема 3: Инструменты для unit-тестирования. Библиотека Googletest
Стандартная библиотека и полезные алгоритмы
Знакомство со стандартной библиотекой и выработка навыков их использования.
Тема 1: Общий обзор стандартной библиотеки
Тема 2: Подробнее о контейнерах и вводе-выводе
Тема 3: Алгоритмы, которые лучше знать лучше
Работа со сторонними библиотеками
Обучение использованию сторонних библиотек.
Тема 1: Работа с библиотеками вручную
Тема 2: Современные средства автоматизации. Пакетные менеджеры, снова CMake
Тема 3: Сборка библиотек из исходников
Всё глубже и глубже. Тонкости
Внимание к деталям отличают профессионала от любителя. Изучим тонкие моменты.
Тема 1: Исключения в C++. Использование и нюансы. Гарантии безопасности
Тема 2: Семантика перемещения, noexcept, и как они нам помогают
Тема 3: Работа с динамической памятью
Тема 4: Умные указатели
Тема 5: Консультация по ДЗ
Многопоточность в C++
Выпускать в 21-ом веке приложения, которые не используют многопоточность, даже как-то неудобно. Научимся следовать тенденции.
Тема 1: Понятие потока выполнения программы
Тема 2: Две главные проблемы - гонка и взаимная блокировка
Тема 3: Структуры данных в многопоточной среде
Тема 4: И пусть весь мир подождёт
Тема 5: Более высокие абстракции и асинхронное исполнение
Тема 6: Дополнительные тонкости и детали
Тема 7: Консультация по ДЗ
Разное
Программирование не ограничивается только знанием синтаксиса языка и стандартной библиотеки. Также выжны популярные приемы, которые называют идиомами языка и присваивают им отдельные имена. И экосистема не ограничивается только компилятором, CVS и инструментами сборки. Вокруг C++ сложилось много полезных инструментов, которые помогают создавать программы.
Тема 1: Идиомы и полезные практики C++
Тема 2: Идиомы и полезные практики C++. Часть 2
Тема 3: Полезные в работе инструменты
Проектный модуль
Наличие ссылки на сертификат об окончании курса в резюме это хорошо. Но если добавить еще и ссылку на github с кодом собственного выпускного проекта, то это гораздо лучше. В рамках этого модуля вы будете работать над созданием такого украшения для своего портфолио.
Тема 1: Вводное занятие по проекту
Тема 2: Консультация
Тема 3: Защита проектных работ
Тема 4: Карьерная консультация
Тема 5: Подведение итогов группы
2 ступень
Современный C++
CI/CD. C++11. C++14. C++17. Управление памятью. Шаблонная магия
Тема 1: Система сборки: build, test and deploy
Тема 2: Особенности C++11. auto, lambda, tuple
Тема 3: Особенности C++11. Move, variadic templates
Тема 4: Сравнение C++11/C++14 с С++ 03
Тема 5: Реализация умных указателей
Тема 6: Идея аллокаторов
Тема 7: Шаблонная магия
Тема 8: Обзор C++17. Constexpr lambda. Fold expression. Attributes. Type deduction
Тема 9: Обзор C++17. If constexpr. Structured bindings. Statements with initializer. std::filesystem
Тема 10: C++20 - что это и зачем?
Архитектура
Принципы проектирования ПО, GRASP, шаблоны GoF, STL, Boost
Тема 1: Принципы проектирования ПО
Тема 2: GRASP
Тема 3: Шаблоны GoF. Порождающие
Тема 4: Шаблоны GoF. Структурные
Тема 5: Шаблоны GoF. Поведенческие. Command, Interpreter, Iterator, Mediator, Memento, Chain of responsibilily
Тема 6: Шаблоны GoF. Поведенческие. Observer, State, Strategy, Template method, Visitor
Тема 7: STL. Контейнеры
Тема 8: STL. Алгоритмы
Тема 9: Бонус. Красно-чёрные деревья
Тема 10: Boost. Разное
Тема 11: Boost. Паттерны проектирования
Тема 12: Бонус. Хэш-функции и хэш-таблицы
Параллельные вычисления
Использование многопоточности, паттерны многопоточных приложений, асинхронный подход к решению задач, LockFree техника, особенности атомарных операций в C++.
Тема 1: Многопоточность
Тема 2: Шаблоны 5
Тема 3: Асинхронное программирование
Тема 4: Lockfree DS
Тема 5: Атомарные типы данных
Сеть
Основные принципы сетевого взаимодействия, использование библиотеки Boost.Asio
Тема 1: Выбор темы и организация проектной работы
Тема 2: Сетевое взаимодействие
Тема 3: Асинхронный ввод/вывод
Хранилища
Различные системы хранения данных - РСУБД и NoSQL системы, схема mapreduce для обработки большого количества данных, ORM системы для автоматизации.
Тема 1: РСУБД
Тема 2: Key Value
Тема 3: Много данных
Тема 4: ORM
ML
Задачи, которые решаются с помощью алгоритмов машинного обучения.
Тема 1: Dlib. Кластеризация и классификация
Тема 2: Dlib. Регрессия
Проектная работа
Заключительная часть курса о программировании на С++ посвящена проектной работе. Мало что доставляет столько же удовольствия, как самостоятельно реализованный проект на выбранную самостоятельно тему на основе знаний, полученных на курсе. В процессе написания (и даже в процессе выбора темы) можно получить консультации преподавателей. При удачном стечении обстоятельств (в основном, при наличии должного усердия со стороны студента) проект станет достойным примером кода, который можно будет показывать потенциальным работодателям в качестве портфолио. Таким образом обучение программированию завершится большой практической работой, и вы будете гордиться тем, что сделали своими руками.
Тема 1: Консультация по проектам и домашним заданиям
Тема 2: Защита проектных работ
Тема 3: Подведение итогов курса
Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит
Проектные работы
Каждая ступень завершается финальным проектом, который предстоит защитить перед преподавателями и командой.
Вы cможете выбрать одну из предложенных преподавателем тем или реализовать свою идею, подходящую под требования.
Практический опыт и портфолио проектов помогут вам произвести впечатление на собеседовании.
Преподаватели
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Ближайшие мероприятия
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
На занятии:
1 Научимся подключать фреймворки тестирования к своему проекту при помощи Cmake
2 Напишем готовые к запуску тесты
3 Поговорим о том, как измерить покрытие тестами кода, какие инструменты для этого существуют.
Будет полезно:
- Начинающим и практикующим разработчикам на языке C++
В результате:
1 Придем к тому, что вместе с кодом, стоит сразу писать и юнит-тесты к нему.
2 В будущем с легкостью интегрируем любой фреймворк тестирования в свой проект.
3 Научимся не только писать тесты, но и мерить их покрытие.
На вебинаре узнаем, как проектировать дружелюбный API на уровне функций С++.
- Плохой и хороший С++ API: основные признаки
- Вдумчивое именование сущностей и их декомпозиция на атомарные элементы
- API в высоконагруженных С++ приложениях: data-oriented подход"
Будет полезно:
Разработчикам, которые уже знакомятся с C++ или планируют переход с другого языка
В результате:
Узнаем, как организовать удобный и эффективный API на C++
Будет полезно:
Начинающим и junior разработчикам.
В результате:
Слушатели приобретут знания, необходимые для начала самостоятельной работы с библиотеками в С++
Прошедшие
мероприятия
Корпоративное обучение для ваших сотрудников
- Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
- Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
- OTUS проверяет знания студентов перед стартом обучения и после его завершения
- Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
- Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
- OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год
Диплом о профессиональной переподготовке
OTUS осуществляет лицензированную образовательную деятельность.
В конце прохождения специализации вы получите сертификат OTUS и официальный диплом о получении новой специальности
Почему специализация выгоднее, чем отдельные курсы?
- Стоимость ниже, чем покупка курсов по отдельности
- Диплом о профессиональной переподготовке
- Расширенная опция помощи с трудоустройством
C++ Developer
Стоимость в рассрочку со скидкой
Стоимость указана для оплаты физическими лицами
вычета до 13% стоимости обучения. Оставьте заявку и менеджер вас проконсультирует
+7 499 938-92-02 бесплатно