Курс С++ для військових технологій

  • Online
  • Для начинающих, Для опытных
  • C / C++
Образовательный центр: Robot Dreams
Формат:Курс
Язык обучения:Ukrainian
Длительность обучения:40 занятий
Начало курса:07.09.2026
Стоимость обучения:Уточняйте

Навчитеся писати програми з реальними розрахунками: координати, вектори, балістика, покрокова симуляція руху. Опануєте структурування коду через функції, структури й стани роботи системи. Опануєте практику побудови каналів обміну даними на вбудованих системах: обмінюватися даними через мережу та апаратні інтерфейси, працювати з Raspberry Pi та ESP32.

Програма курсу

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Навчитеся використовувати шаблони у C++.

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

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

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

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

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

Навчитеся відлагоджувати C++ код та діагностувати найпоширеніші проблеми.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Теми:

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

Особливості курсу

  • Допомога ментора
  • Практика на реальних кейсах
  • Курсовий проєкт
  • Кейс в портфоліо
  • Сертифікат про проходження курсу

Викладачі курсу

Дмитро - Lead Software Engineer , Miltech Company

Категории курса

Читайте нас в Telegram, чтобы не пропустить анонсы новых курсов.

Похожие курсы

Учебный центр
Junior IT
Формат
Online
Начало обучения
Дата формується
Длительность
-
Уровень
Для детей
Язык обучения
Ukrainian
Стоимость
уточняйте

C++

Logos IT-Academy
Учебный центр
Logos IT-Academy
Формат
Online
Начало обучения
Дата формується
Длительность
16 занятий
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
8 500 UAH за курс
Учебный центр
Hillel IT school
Формат
Online
Начало обучения
20.08.2026
Длительность
24 занятий
Уровень
Для начинающих
Язык обучения
Ukrainian
Стоимость
11 400 UAH за курс
Учебный центр
IT-Столица
Формат
Online
Начало обучения
Будь-який момент
Длительность
10 занятий
Уровень
Для опытных
Язык обучения
Ukrainian
Стоимость
7 500 UAH за курс