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

С++ ДЛЯ ВІЙСЬКОВИХ ТЕХНОЛОГІЙ

Навчіться писати код на C++ для інтеграції з «залізом», щоб створювати надійні MilTech-системи

Дмитро Г.

Lead Software Engineer

Miltech company

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

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

Навчитеся писати безпечний і надійний код з реальними розрахунками: координати, вектори, балістика, покрокова симуляція руху. Опануєте структурування коду через функції, структури й класи. Дізнаєтеся про кращі практики MilTech-розробки.

ЗБІРКА, ДЕБАГ І ТЕСТУВАННЯ

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

ІНТЕГРАЦІЯ З ПРИСТРОЯМИ ТА СИСТЕМАМИ

Опануєте обмін даними між компонентами системи використовуючи різні мережеві (UDP/TCP) і апаратні (UART, I2C, SPI) протоколи. Опануєте embedded-сценарії з ESP32, FreeRTOS і роботу з периферією. Розберетеся з роллю мікроконтролерів і одноплатних компʼютерів (Raspberry Pi / Jetson) в архітектурі MilTech-систем.

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

Розробите прикладний C++-проєкт для портфоліо та пройдете весь цикл розробки: від алгоритмів і роботи з даними до інтеграції, тестування й симуляції. У результаті матимете проєкт, що демонструє знання C++, інженерного тулінгу та базового MilTech-стеку.

 

ДЛЯ НАВЧАННЯ НА КУРСІ ПО С++ ПОТРІБНІ:

  • Базові знання програмування: розуміння змінних, умов, циклів та функцій будь-якою мовою.

  • Навички роботи з інструментами розробника: вміння користуватись командним рядком та Git

Дмитро Г.

Lead Software Engineer, Miltech Company

  • Понад 5 років розробки на С++ для систем з обмеженими ресурсами, також працював з C, Java, Python

  • Займався розробкою та оптимізацією алгоритмів керування для систем розумного автомобіля, а також розробкою infotainment систем та HMI

  • Нині працює в українській продуктовій компанії, яка займається повним циклом виробництва БПЛА літакового типу. Найскладніші задачі на поточному проєкті: обробка відео у реальному часі, розробка системи надійного звʼязку у будь-яких умовах, автоматизація процесів керування БПЛА для полегшення роботи оператора

  • Має досвід роботи над Miltech проєктами з нуля, комунікації з кінцевим користувачем, технічною підтримкою та тестуванням розроблених рішень у бойових умовах

Програма

  • 01 заняття
    07.09.202619:30

    Специфіка програмування для Military Tech

    • Зрозумієте можливі шляхи розвитку як C++-розробника у Military Tech
    • Розберетеся з особливостями C++ та навчитеся пояснювати їх
    • Зрозумієте, на чому варто концентруватися під час написання коду на C++ у Military Tech
    • Напишете базову програму на C++ та поясните процес переходу від human language до машинного коду
  • 02 заняття
    09.09.202619:30

    Типи даних, оператори, умови

    • Зрозумієте представлення різних типів даних у бітовій формі
    • Розберетеся з перевагами типів даних із
    • Ознайомитеся з основними операторами у C++
    • Ознайомитеся з патерном bitmap
  • 03 заняття
    14.09.202619:30

    Цикли, функції

    • Зрозумієте різницю між різними операціями циклу
    • Навчитеся писати базові алгоритми з використанням циклів
    • Навчитеся оголошувати функції для перевикористання коду
    • Ознайомитеся з патерном main event loop
    • Зрозумієте, коли доцільно використати функцію, а коли — цикл
  • 04 заняття
    16.09.202619:30

    Масиви, рядки, вказівники та посилання

    • Зрозумієте, що таке масив, як із ним працювати і як його розміщено в пам’яті програми
    • Навчитеся писати програми з використанням масивів і рядків
    • Ознайомитеся з основними помилками, пов’язаними з виходом за межі масиву
    • Зрозумієте, що таке вказівник та як працювати з пам’яттю напряму
    • Ознайомитеся з основними помилками під час використання вказівників
    • Зрозумієте різницю між вказівником і масивом
  • 05 заняття
    21.09.202619:30

    Структури даних, макроси

    • Навчитеся створювати й використовувати структури, enum та union у своїх програмах
    • Зрозумієте механізм вирівнювання пам’яті та його роль в embedded-системах
  • 06 заняття
    23.09.202619:30

    Файлове введення та виведення, багатопоточність

    • Навчитеся працювати з даними, що зберігаються у файлах
    • Зрозумієте основні принципи багатопоточності
    • Розберетеся, коли потрібно створювати додаткові процеси та які ризики це створює
  • 07 заняття
    28.09.202619:30

    Робота з динамічною пам’яттю, керування ресурсами

    • Дізнаєтеся, що таке динамічна пам’ять і чим вона відрізняється від статичної
    • Зрозумієте, коли краще використовувати динамічну пам’ять
    • Розберетеся з проблемами, які можуть виникнути через використання динамічної пам’яті
  • 08 заняття
    30.09.202619:30

    Linux для розробника: файлова система, термінал, базові команди Bash

    • Зрозумієте організацію файлової системи Linux
    • Навчитеся навігувати файловою системою через термінал
    • Навчитеся підключатися до віддаленого девайса через ssh
  • 09 заняття
    05.10.202619:30

    Bash-скрипти, права доступу, процеси та змінні середовища

    • Отримаєте базові навички роботи з bash
    • Навчитеся читати й писати прості скрипти у bash
  • 10 заняття
    07.10.202619:30

    Середовища розробки. Використання контейнерів для розробки

    • Навчитеся вибирати й налаштовувати середовище розробки
    • Навчитеся переносити невеликі проєкти в контейнери
  • 11 заняття
    12.10.202619:30

    Системи контролю версій. Git, GitHub

    • Зрозумієте, для чого використовують системи контролю версій
    • Опануєте git та навчитеся налаштовувати репозиторій, створювати гілки й коміти
    • Дізнаєтеся best practices роботи з git та зрозумієте, що краще не комітити в репозиторій
  • 12 заняття
    14.10.202619:30

    Доктрини ООП, основи ООП в С++

    • Зрозумієте основні принципи ООП та навчитеся пояснювати їх
    • Навчитеся створювати класи у C++
    • Зрозумієте, як правильно інкапсулювати використання ресурсів у клас C++
  • 13 заняття
    19.10.202619:30

    Спадкування та поліморфізм у С++

    • Зрозумієте, як працюють віртуальні методи у C++
    • Навчитеся виділяти абстрактний інтерфейс для класів
    • Навчитеся перевантажувати оператори
  • 14 заняття
    21.10.2026 19:30

    Шаблони (templates), узагальнене програмування

    • Навчитеся використовувати шаблони у C++
  • 15 заняття
    26.10.202619:30

    Інструменти бібліотеки STL

    • Дізнаєтеся, які інструменти бібліотеки STL вам доступні
    • Зрозумієте, як оцінити ефективність алгоритму за допомогою O-нотації
    • Навчитеся працювати з ітераторами, std::vector та розумними вказівниками
  • 16 заняття
    28.10.202619:30

    Як збирається С++ код (етапи компіляції, білд системи)

    • Зрозумієте, як збирається C++ код, які проблеми можуть виникнути та як їх вирішувати
    • Навчитеся працювати з make і CMake
    • Навчитеся підключати різні бібліотеки до свого проєкту
  • 17 заняття
    02.11.202619:30

    Дебаг та діагностика помилок: GDB, core dumps, sanitizers, Valgrind

    • Навчитеся відлагоджувати C++ код та діагностувати найпоширеніші проблеми
  • 18 заняття
    04.11.202619:30

    Тестування C++ коду: Google Test. Базова якість коду: форматування, статичний аналіз, правила проєкту

    • Навчитеся писати юніт-тести та зрозумієте концепцію TDD
    • Навчитеся використовувати clang-tidy та clang-format
    • Розберетеся, як вмикати clang-tidy та clang-format у VS Code
  • 19 заняття
    09.11.202619:30

    Best practices для створення maintainable коду. Clean Code. Патерни програмування. SOLID. DDD.

    • Навчитеся критично оцінювати, наскільки легко підтримувати ваш код
    • Зрозумієте основні загальноприйняті принципи написання чистого коду
    • Дізнаєтеся найпоширеніші патерни програмування
  • 20 заняття
    11.11.202619:30

    Протоколи передачі даних. Модель OSI. Серіалізація даних.

    • Дізнаєтесь про модель OSI та місце кожного протоколу в ній
    • Розберетеся з поняттям серіалізації даних
    • Навчитеся серіалізувати й десеріалізувати дані в різні формати
    • Зрозумієте поняття CRC та ECC і навчитеся використовувати їх для передачі даних мережею
  • 21 заняття
    16.11.202619:30

    Інтернет протоколи. UDP vs TCP/IP. Клієнт-серверна взаємодія.

    • Зрозумієте різницю між UDP та TCP
    • Навчитеся вибирати протокол відповідно до потреб завдання
    • Навчитеся писати UDP або TCP клієнтів і серверів через сокети
  • 22 заняття
    18.11.202619:30

    Qt: архітектура, сигнали та слоти, Qt Creator, Qt5 vs Qt6

    • Зрозумієте, що таке фреймворк Qt та як його використовувати
    • Навчитеся створювати простий застосунок на Qt і використовувати механізм сигналів та слотів
    • Зрозумієте, що таке moc, rcc та uic
    • Розберетеся з патернами event loop та observer
  • 23 заняття
    23.11.202619:30

    Розробка GUI на QML

    • Зрозумієте різницю між QtWidgets та QML
    • Навчитеся створювати базовий інтерфейс на QML та обмінюватися даними з C++ кодом
  • 24 заняття
    25.11.202619:30

    Роботи з колекціями даних у QML. MVC паттерн.

    • Зрозумієте способи виведення та розміщення кількох об’єктів на інтерфейсі
    • Навчитеся створювати власні моделі даних та відображати їх у QML
    • Зрозумієте патерн MVC
  • 25 заняття
    30.11.202619:30

    Огляд додаткових можливостей Qt

    • Зрозумієте, які можливості фреймворку Qt можна використовувати у своїх застосунках
  • 26 заняття
    02.12.202619:30

    ROS 2 основи на практиці: nodes, topics, rclcpp pub/sub, ros2 CLI

    • Зрозумієте, навіщо ROS 2 у контексті MilTech і чим pub/sub топіки відрізняються від прямих UDP/TCP-з’єднань
    • Навчитеся створювати ROS 2 пакет на C++, писати publisher і subscriber, збирати й запускати їх
    • Навчитеся використовувати ros2 CLI для інспекції запущених нод і топіків
  • 27 заняття
    07.12.202619:30

    ROS 2 як система: services, launch, параметри (YAML). Принцип: алгоритм окремо від ROS 2

    • Зрозумієте різницю між topics і services
    • Навчитеся вибирати правильний механізм для конкретного завдання
    • Навчитеся писати launch-файл і конфігурацію у YAML
    • Зрозумієте й навчитеся застосовувати принцип розділення алгоритму і ROS 2-обгортки
  • 28 заняття
    09.12.202619:30

    Архітектура мікроконтролерів, регістри, переривання, пам'ять

    • Зрозумієте, що таке мікроконтролер і як побудована його архітектура
    • Розберетеся з контекстом обмежених ресурсів та необхідністю оптимізувати програми для мікроконтролерів
    • Навчитеся запускати базову програму на ESP32 у симуляторі Wokwi
  • 29 заняття
    14.12.202619:30

    Робота з периферією. Низькорівневі протоколи передачі даних

    • Навчитеся працювати з периферійними девайсами
    • Зрозумієте різницю між основними протоколами передачі даних
    • Навчитеся використовувати протоколи передачі даних для конкретних завдань
  • 30 заняття
    16.12.2026 19:30

    RTOS: концепції, задачі, черги, семафори (FreeRTOS)

    • Зрозумієте, навіщо потрібна RTOS і чим вона відрізняється від звичайного циклу while(1)
    • Навчитеся створювати задачі у FreeRTOS, передавати дані між ними через чергу та захищати спільні ресурси м’ютексом
    • Зрозумієте, як проєктувати просту багатозадачну систему на мікроконтролері
  • 31 заняття
    21.12.202619:30

    Огляд одноплатових компʼютерів (Raspberry PI, Nvidia Jetson)

    • Зрозумієте, що таке одноплатний комп’ютер та дізнаєтеся найпопулярніші моделі
    • Навчитеся вибирати апаратне рішення для конкретного завдання
    • Зрозумієте, де у типовій архітектурі дрона розміщений мікроконтролер, а де — бортовий комп’ютер
  • 32 заняття
    23.12.202619:30

    OSS проєкти для розробки дронів

    • Зрозумієте можливості, які надають OSS-проєкти для розробки дронів
    • Навчитеся компілювати OSS-проєкти та запускати симуляції за їхньою документацією
  • 33 заняття
    04.01.202719:30

    Заглиблення у MAVLink

    • Зрозумієте, як побудовані MAVLink-повідомлення
    • Навчитеся генерувати файли для роботи з MAVLink
    • Навчитеся створювати власні повідомлення
  • 34 заняття
    06.01.202719:30

    Симуляція дрона в Gazebo

    • Навчитеся підіймати симуляцію дрона у Gazebo через Docker
    • Зрозумієте, як Gazebo, SITL, QGroundControl і ROS 2 з’єднуються в єдиний стек та яку роль виконує кожен компонент
    • Навчитеся відправляти базові команди до симульованого дрона через MAVLink і перевіряти їх виконання
  • 35 заняття
    11.01.202719:30

    Створення і відлагодження базових відео пайплайнів

    • Зрозумієте призначення та різні види відеокодеків
    • Навчитеся працювати з gstreamer та створювати базові відеопайплайни
    • Навчитеся відлагоджувати gstreamer-пайплайни
  • 36 заняття
    13.01.202719:30

    Основи криптографії

    • Зрозумієте, для чого потрібно захищати дані
    • Навчитеся генерувати й використовувати приватні та публічні ключі
    • Розберетеся з концепціями signing, encryption та secure boot
  • 37 заняття
    18.01.202719:30

    Вступ у системи автоматичного керування

    • Дізнаєтеся, що вивчає дисципліна систем автоматичного керування
    • Навчитеся використовувати PID-контролер і підбирати його коефіцієнти
  • 38-40 заняття
    20.01, 25.01, 01.0219:30

    Робота над курсовим проєктом

    Розробите прикладний C++-проєкт для MilTech-домену: програмний код, документацію та демонстрацію рішення в одному з напрямів — алгоритми для дронових сценаріїв, Qt/QGC-інтерфейс керування, embedded/RTOS-рішення або симуляція роботи системи

     

    Теми:

    • Консультація з лектором щодо завдання
    • Старт роботи над курсовим проєктом. Вибір теми, обговорення архітектури.
    • Захист фінальних проєктів. Демонстрація, підбиття підсумків курсу.

реєстрація

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

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