Курс C++ онлайн: программирование для военных проектов | robot_dreams
  • онлайн-курс
  • 40 занятий
  • готовое техпортфолио

С++ ДЛЯ ВОЕННЫХ ТЕХНОЛОГИЙ

Научитесь писать код на C++ для интеграции с боевыми протоколами и «железом», чтобы создавать надежные MilTech-системы

Евгений Гаврилюк

Development Team Lead

Miltech company

Евгений Кузнецов

Staff Software Engineer

Apex.AI

В ПРОГРАММУ КУРСА ВХОДЯТ

MILTECH-РАЗРАБОТКА НА С++

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

СБОРКА, ДЕБАГ И ТЕСТИРОВАНИЕ

Разберетесь, как собирать проекты через CMake и работать с репозиторием. Сможете находить и исправлять ошибки в коде и проверять его правильность с помощью unit-тестов (Google Test + CTest).

ИНТЕГРАЦИЯ С УСТРОЙСТВАМИ И СИСТЕМАМИ

Овладеете практикой построения каналов обмена данными на встроенных системах: обмениваться данными через сеть и аппаратные интерфейсы, работать с Raspberry Pi и ESP32..

ПРАКТИКА НА РЕАЛЬНИХ ЗАДАЧАХ

Разработайте end-to-end рабочий модуль донаведения: интегрируете core-алгоритмы в ROS 2 (nodes, launch) и организуете управляющую логику.

 

ДЛЯ ОБУЧЕНИЯ НА КУРСЕ ПО С++ НУЖНЫ:

  • Базовые знания программирования: понимание переменных, условий, циклов и функций на любом языке.

  • Навыки работы с инструментами разработчика: уверенное пользование командной строкой и Git

ЕВГЕНИЙ ГАВРИЛЮК

Development Team Lead, Miltech company

  • имеет 13 лет опыта разработки программного обеспечения на C++, Python, CUDA, а также в сфере ML и Unreal Engine

  • работал в международных компаниях, таких как Samsung, Luxoft, Eleks, Scopic, MWDN и A5

  • разрабатывал программные решения в сферах компьютерного зрения, технической и медицинской визуализации, Virtual Production, Automotive, распределенных вычислений и AI

  • сейчас занимает позицию Head of IT и Tech Lead в милитари-компании, разрабатывающей дроны, системы связи и другие технологические решения для военных нужд

  • имеет глубокие знания в радиотехнике, 3D-моделировании, физике и математике; получил степень магистра по прикладной физике и электронике

ЕВГЕНИЙ КУЗНЕЦОВ

Staff Software Engineer, Apex.AI

  • ментор DroneAid Collective: обучает собирать, настраивать и тестировать FPV-дроны

  • более 14 лет опыта в разработке на C++/Qt и Linux, специализируется на системной интеграции, middleware (ROS 2, DDS), инфраструктуре и CI/CD

  • работал над программными компонентами, которые используются в серийных автомобилях Mercedes и Hyundai, разрабатывал HMI и инфотейнмент-системы для массового производства

  • сейчас занимается разработкой Defence Tech системы для беспилотных платформ — от проектирования до кода, тестов и запуска

  • в последние годы специализируется на real-time и safety-critical системах для транспортных и роботизированных платформ, с фокусом на C++ и embedded-среду

  • активно вовлечен в Defence Tech-инициативы: работает над автономностью беспилотных систем, counter-drone решениями и является финалистом NATO Innovation Challenge

Программа

  • 01 занятие
    06.04.202619:30

    Введение в программирование и Military Tech

    • Поймете роль C++ разработчика на military-предприятии
    • Узнаете принцип работы компилятора C++
    • Научитесь создавать рабочую программу на C++ и вводить значение в консоль
  • 02 занятие
    08.04.202619:30

    Операторы и логика

    • Поймете, как реализовывать условную логику вычислений на C++
    • Научитесь делать расчеты по формулам
    • Освоите базовую математику векторов и координат и научитесь ее реализовывать
  • 03 занятие
    13.04.202619:30

    Циклы и массивы

    • Научитесь использовать циклы для пошаговых вычислений
    • Узнаете, как хранить и обрабатывать наборы данных в массивах
    • Познакомитесь с принципами симуляции движения во времени и научитесь их реализовывать
  • 04 занятие
    15.04.202619:30

    Функции

    • Овладеете использованием функций в C++
    • Узнаете, как писать модульный и переиспользуемый код
    • Поймете область видимости переменных и механизмы передачи параметров в функции
  • 05 занятие
    20.04.202619:30

    Основы структур данных и макросы

    • Разберете все этапы работы со структурами и макросами
    • Научитесь читать и писать данные в формате JSON
    • Поймете принципы организации данных в структуре и управлении выравниванием в памяти
  • 06 занятие
    22.04.202619:30

    Основы работы с памятью

    • Сможете понимать указатели и ссылки
    • Узнаете, как управлять памятью на базовом уровне
    • Увидите отличия между стеком и кучей и разберетесь, когда их использовать
  • 07 занятие
    27.04.202619:30

    Среда разработки. VS Code, devcontainers, Linux, C++ тулы

    • Овладеете работой в VS Code с devcontainers
    • Изучите базовые Linux-команды
    • Начнете работать над собственным C++ проектом со встроенным качеством
  • 08 занятие
    29.04.202619:30

    Структура C++ проектов и контроль версий кода. Git, GitHub, Pull Request

    • Сможете работать с Git/GitHub на базовом уровне
    • Создадите четкий роадмап собственного C++ проекта
    • Научитесь создавать PR на ревью
  • 09 занятие
    04.05.202619:30

    От ручной компиляции к CMake: как собирается ваш код

    • Узнаете разницу между ручной компиляцией и CMake
    • Разберетесь, как собирать базовый CMake-проект
    • Научитесь самостоятельно исправлять типичные ошибки сборки
  • 10 занятие
    06.05.202619:30

    Дебаг и диагностика ошибок: GDB, core dumps, sanitizers, Valgrind

    • Овладеете принципами и последовательностью диагностирования падения C++ приложений
    • Разберете разницу между видами анализа ошибок
    • Узнаете, как настраивать дебаг в VS Code
  • 11 занятие
    11.05.202619:30

    Тестирование C++ кода: Google Test

    • Научитесь писать unit-тесты
    • Поймете роль тестов в надежности систем
    • Сможете интегрировать GTest и производить их запуск через CTest
  • 12 занятие
    13.05.202619:30

    Базовое качество кода: форматирование, статический анализ, правила проекта

    • Поймете, как поддерживать качество кода актуальными инструментами
    • Сможете готовить смены, готовые к ревью
    • Научитесь настраивать и использовать статический анализ кода (clang-tidy) и следить за минимальными coding rules
  • 13 занятие
    18.05.202619:30

    Введение в ООП

    • Разберетесь в принципах ООП и проектирования
    • Научитесь создавать и имплементировать интерфейсы
    • Поймете и научитесь применять базовые принципы подражания
  • 14 занятие
    20.05.202619:30

    Классы

    • Освоите работу с классами на профессиональном уровне
    • Научитесь правильно применять паттерны и сложные числовые приемы
    • Научитесь реализовывать паттерны «Фабрика» и «Стратегия»
  • 15 занятие
    25.05.202619:30

    Структура проекта

    • Овладеете грамотным структурированием C++ проектов и сможете протестировать навыки на собственной работе
    • Поймете принцип работы директив #include и #define
    • Научитесь использовать пространства имен и предварительные объявления для уменьшения зависимостей
  • 16 занятие
    27.05.202619:30

    STL и сложность алгоритмов

    • Освоите использование STL-контейнеров стандартной библиотеки
    • Разберетесь в методиках оценки сложности алгоритмов
    • Поймете отличия и преимущества разных контейнеров STL
  • 17 занятие
    01.06.202619:30

    Управление ресурсами

    • Освоите использование разумных указателей
    • Поймите разницу между unique_ptr и shared_ptr
    • Научитесь использовать умные указатели для предотвращения утечек памяти
  • 18 занятие
    03.06.202619:30

    Многопоточность

    • Научитесь синхронизировать потоки и создавать воркеры
    • Узнаете, как строить асинхронные очереди для расчетов
  • 19 занятие
    08.06.202619:30

    Одноплатные компьютеры как платформа

    • Сможете формулировать требования к целевой платформе
    • Научитесь понимать host/target и последствия для сборки/тестирования
    • Узнаете разницу между ARM и x86 и ее роль в деплое
  • 20 занятие
    10.06.202619:30

    Обзор популярных систем

    • Разберетесь в одноплатных микрокомпьютерах и работе с ними
    • Научитесь различать особенности и отличия популярных SBC
    • Освоите настройки среды для работы с симуляторами одноплатных компьютеров
  • 21 занятие
    15.06.202619:30

    Hardware-интерфейсы

    • Поймете, какие hardware-интерфейсы имеет Raspberry Pi и как с ними работать
    • Научитесь работать с пинами общего назначения (GPIO) для ввода/вывода
    • Овладеете принципами работы интерфейсов UART, SPI, I²C
  • 22 занятие
    17.06.202619:30

    Углубленная работа с интерфейсами

    • Научитесь интегрировать hardware-интерфейсы из C++ приложения
    • Освоите использование библиотеки для программной работы с пинами
    • Поймете, как выводить управляющий сигнал на GPIO пин
  • 23 занятие
    22.06.202619:30

    Docker runtime для C++ сервисов

    • Освоите сборку и запуск контейнеров и научитесь их диагностировать
    • Разберетесь в self-test/healthcheck и volumes
    • Узнаете, когда и как применять DinD без выхода из devcontainer
  • 24 занятие
    24.06.202619:30

    Docker Compose как system bring-up: запускаем систему из 2–3 C++ сервисов

    • Научитесь поднимать систему из нескольких контейнеров одной командой
    • Сможете добавлять базовый healthcheck и понимать, что именно он проверяет
    • Узнаете, как ресурсные лимиты (CPU/RAM) влияют на поведение системы
  • 25 занятие
    29.06.202619:30

    ROS 2 основания: nodes/topics/pub-sub

    • Научитесь писать ROS 2 ноду на C++ (publisher/subscriber
    • Овладеете проверкой работы через ros2 CLI
  • 26 занятие
    01.07.202619:30

    ROS 2 как система: services/launch/params

    • Разберетесь, как делать сервер ROS 2 на C++ и вызвать его клиентом
    • Получите общую информацию о том, как работает зрительная система
    • Сможете запускать стек из нескольких нод через launch и управлять параметрами через YAML
    • Научитесь отделять алгоритмическую логику (C++ module) от ROS 2 коммуникации
  • 27 занятие
    06.07.202619:30

    ROS 2 под капотом: DDS/RTPS, QoS

    • Сможете выбрать QoS под задачу (телеметрия vs команды)
    • Поймете, что следует проверять прежде всего при drops/latency/невидимых топиках
  • 28 занятие
    08.07.202619:30

    Операционность: надежность, метрики, healthcheck, воспроизводимость (replay/rosbag2)

    • Научитесь добавлять метрики и self-test для контроля работоспособности
    • Освоите практическую проверку QoS и поймете, как изменение QoS влияет на drops/latency и поведение монитора
  • 29 занятие
    13.07.202619:30

    Протокол передачи данных

    • Сможете ориентироваться в протоколах, применяемых в Defence Tech
    • Поймете специфику передачи данных, характерную для Defence Tech
    • Научитесь выбирать протокол передачи данных в соответствии с требованиями задачи
  • 30 занятst
    15.07.202619:30

    Интернет-протоколы

    • Научитесь настраивать коммуникацию между устройствами в LAN
    • Сможете работать с TCP/UDP на базовом уровне
    • Узнаете, как реализовывать коммуникацию через сокеты
  • 31 занятие
    20.07.202619:30

    Протоколы локальной сети дальнего действия

    • Сможете ориентироваться в протоколах дальнего действия
    • Научитесь настраивать коммуникацию из C++ приложения по CAN-шине
    • Поймете назначение и принципы работы протоколов Modbus и MIL-STD-1553
  • 32 занятие
    22.07.202619:30

    Протоколы ближнего действия + АЦП

    • Освоите работу с UART/I²C/SPI и научитесь интегрировать АЦП
    • Поймете, как прятать имплементации по интерфейсам
  • 33 занятие
    27.07.202619:30

    Mavlink

    • Сможете общаться с полетными контроллерами
    • Поймете структуру сообщений Mavlink и механизм их передачи
  • 34 занятие
    29.07.202619:30

    Стейт машины

    • Пройдете пайплайн работы со state machine
    • Научитесь ориентироваться в распространенных паттернах проектирования в embedded программировании
    • Узнаете, как использовать принципы модульного программирования
  • 35 занятие
    03.08.202619:30

    Введение в Embedded

    • Разберетесь в принципах работы микроконтроллеров
    • Научитесь настраивать среду для ESP32
    • Поймете, как ограниченные ресурсы (RAM, Flash) влияют на архитектуру программного обеспечения
  • 36 занятие
    05.08.202619:30

    Периферия: GPIO и таймеры

    • Сможете писать прошивки на ESP32
    • Овладеете программированием коммуникаций ESP32 с CAN/I²C/SPI
    • Научитесь использовать таймеры для периодических задач в микроконтроллере
  • 37 занятие
    10.08.202619:30

    Введение в RTOS

    • Поймете принципы работы RTOS
    • Научитесь работать с понятиями «задача» и «планировщик» в контексте RTOS
    • Поймете необходимость RTOS для систем реального времени
  • 38 занятие
    12.08.202619:30

    Углубленное изучение RTOS

    • Научитесь создавать RTOS-архитектуру
    • Сможете настраивать систему реального времени в соответствии с требованиями
    • Освоите специфические для сферы задачи, используя функционал RTOS
  • 39 занятие
    17.08.202619:30

    Старт работы над курсовым проектом

    • Сможете формулировать и обосновывать архитектуру комплексного Embedded C++ проекта
    • Определите требования к финальному проекту и выберете релевантную тему из MilTech
    • Научитесь планировать разработку проекта
  • 40 занятие
    24.08.202619:30

    Защита финальных проектов

    • Сможете презентовать технические решения и результаты своей работы
    • Научитесь анализировать собственный код и предоставлять/получать конструктивный фидбек
    • Поймете, как объединить знания всех блоков курса для создания целостного решения

Регистрация

Заполняйте заявку на онлайн-обучение по C++, чтобы получить целостное понимание разработки надежных систем и создать финальный MilTech-проект для портфолио.

 
 
 
Регистрируясь, вы соглашаетесь с условиями договора-оферты и политикой конфиденциальности.