Курс 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 service сервер на 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 заняття
    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-проєкт для портфоліо.

 
 
 
Реєструючись, ви погоджуєтеся з умовами договору-оферти та політикою конфіденційності.