Разработчик C++
Форма обучения: очная с применением дистанционных технологий
Объем программы: 560 ак.ч.
Продолжительность обучения: 8 месяцев
Выдаваемый документ: Диплом о профессиональной переподготовке МФТИ
Старт обучения: сентябрь 2023
Стоимость обучения: 125 000 рублей

Краткое описание программы:
Чтобы получить Профессию Разработчик C++, подтвержденную Дипломом о профессиональной переподготовке МФТИ установленного образца, необходимо пройти обучение на двух самостоятельных курсах и двух интенсивах.
В течение обучения вы выполните несколько проектов для решения задач бизнеса, которые лягут в основу вашего портфолио. Проекты выполняются самостоятельно под руководством экспертов и преподавателей, позволяют закрепить весь спектр знаний и навыков, полученных на программе, и применить их к реальным задачам.
Успешное окончание каждого курса подтверждается Удостоверением о повышении квалификации МФТИ.

Содержание программы:
1. Курс: «Разработка на С++»
6 месяцев

Основы C++
  • Введение в язык C++: состав языка, структура программы.
  • Переменные и выражения. Классы памяти. Операция приведения типов.
  • Управляющие операторы: ветвление (if, switch) и циклы (for, while, do-while).
  • Структурное программирование. Функции. Рекурсия. Перегрузка функций.
  • Указатели и ссылки. Передача и возврат значений по указателю/ссылке.
  • Массивы: статические массивы, динамические массивы, связь массивов и указателей.
  • C-style строки.
  • Модульное программирование: заголовочные файлы, файлы реализации.
  • Обобщенное программирование. Шаблоны функций. Стандартная библиотека алгоритмов.
  • Перечисления, структуры. Шаблоны структур. Списки.
Основы ООП
  • Введение в ООП. Классы и методы. Модификаторы доступа.
  • Константные и статические поля и методы. Друзья класса.
  • Конструкторы. Перегрузка операций.
  • Деструкторы. Управление ресурсами. RAII.
  • Семантика перемещения.
  • Умные указатели.
  • Последовательные контейнеры.
  • Итераторы.
  • Ассоциативные контейнеры.
  • Функторы. Лямбда-выражения.
Наследование и обработка ошибок
  • Наследование.
  • Множественное наследование.
  • Динамический полиморфизм.
  • Исключения.
  • Безопасный код. Гарантии безопасности исключений.
  • Ручное управление памятью и временем жизни объектов.
  • Вариабельные шаблоны.
2. Интенсив: «Linux / Git для начинающих»
2 недели
Базовый WSL и VirtualBox
  • Чем отличается Windows и Linux
  • Установка WSL. Запуск
  • VirtualBox установка и использование
Основы Linux
  • Введение. Какие задачи он решает. Дистрибутив Ubuntu
  • Консоль. Основа работы с Linux. tmux
  • Скрипты. Продвинутая работа с консолью
  • Файловая система
  • Работа с сетью
  • Серверное взаимодействие. SSH
WSL подробно
  • Краткий экскурс в историю появления. WSL1 и WSL 2
  • Основные команды работы с WSL
  • Файловая система
  • Сеть WSL
  • WSL USB
  • CUDA и Windows Докер
Git
  • Введение. Цели. Разновидности систем контроля версий
  • Базовые основы GIT. Популярные сценарии работы
  • Серверные репозитории Git. Ветки. Merge request
  • Сценарии отката изменений. Stash
3. Курс: «Введение в алгоритмы и структуры данных»
2 месяца
  • Математические основы программирования
  • Линейные контейнеры
  • Сортировки
  • Динамическое программирование
  • Хеш-таблицы
  • Деревья поиска и графы
4. Интенсив: «Docker + CI/CD для начинающих»
2 недели
Основы Docker
  • Виртуализация и контейнеризация. Docker engine
  • Docker image и Docker container
  • Файловые системы в Docker. UnionFS и OverlayFS
  • Работа с данными: добавление файлов, монтирование внешних директорий. Обмен данными с уже развернутым контейнером
  • Рекомендации по работе с Docker. Как писать DockerFile, .dockrtignore. Базовая безопасность в docker
  • Репозитории docker-контейнеров и работа с ними.
  • Docker compose
CI/CD
  • Обзор актуальных инструментов CI/CD (GitLab CI, Jenkins, TravisCI, GitHub Actions)
  • Настройка pipelines, jobs, stages. Написание конфигураций CI
  • Создания собственного runner'a. Executors: shell, docker
Итоговый проект
Слушатели курса напишут собственные реализации стандартных контейнеров, полноценный калькулятор, а также познакомятся с telegram api и напишут бота.

Целевая аудитория курса:
  • Те, кто начинает карьеру в ИТ
    Возможность изучить все необходимое для начинающего разработчика: алгоритмы, ООП, основы рабочего кода языка C++. Вы заложите крепкий фундамент для дальнейшего развития в сфере ИТ.
  • Начинающие ИТ-специалисты
    Если у вас уже есть базовые знания, наш курс поможет структурировать их и получить комплексный практический опыт на реальных примерах.
  • Практикующие ИТ-специалисты
    Тем, кто уже является действующим разработчиком, и хочет изучить новый язык программирования.
На программе вы:
  1. Освоите новую востребованную профессию
  2. Станете крепким junior-разработчиком со знанием языка программирования С++
На всех курсах вы получите:
  1. Постоянное живое общение с преподавателем МФТИ на вебинарах и в телеграмм-чате группы
  2. Ответы на все свои вопросы по ходу курса от преподавателя
  3. Обратную связь на интересные домашние задания