C++ in depth
Master C++ through practice. From fundamentals to production systems.
старт:
16 лют. 2026 р.
25 занять
300 $/міс
про курс
C++ має репутацію мови, яка підкидає помилки там, де їх найменше очікуєш. Тому інженери звикли її остерігатися — уникають певних конструкцій, бояться невизначеної поведінки та борються з інфраструктурою. Цей курс переводить з режиму обережності в режим контролю. Ви зрозумієте не лише код, а й те, що під капотом — пам’ять, компіляцію, оптимізацію, багатопоточність і роботу з великими бібліотеками.
На курсі ви пройдете повний цикл розробки на C++ та створите інфраструктурні production-рішення. У результаті матимете доробок C++-проєктів, які можна використовувати для працевлаштування та розвивати далі.
*За даними Djinni, C++-кандидати мають менше труднощів у пошуку роботи, а зростання miltech-проєктів суттєво збільшує попит на embedded-фахівців. Попри складність, C++ залишається одним із найсильніших напрямів для старту в низькорівневому програмуванні.
навчальний план
буде гаряче
Екосистема C++. Життєвий цикл коду від вихідного файлу до машинного виконання
Фундамент С++: типи даних, тривалість життя обʼєктів, представлення обʼєктів у памʼяті
Управління памʼяттю, stack та heap памʼять, smart pointers. Виробимо звичку використовувати RAII — одну з найважливіших ідіом C++
Return value optimization, rvalue-references, move-семантика. Як повертати обʼєкт з функції: за значенням чи за посиланням
Templates: напишемо logger, який приймає будь-яку кількість параметрів
Огляд стандартної бібліотеки: контейнери, ітератори, алгоритми
Практика
Реалізація утиліт на C++ (
ls,find,tree)Власна реалізація контейнерів (vector, тощо)
C++ fundamentals
Основи мови й інструменти, що формують правильний стиль мислення в C++ інженера
Перетворення типів та RTTI: де використовувати reinterpret_cast та як реалізувати abstract factory
Функціональне програмування. Реалізація патерну observer
Обробка помилок: від еррор-кодів і ексепшинів до std::expected. Чому в деяких проєктах взагалі немає ексепшинів?
Багатопоточність: від posix mutex до std::condition_variable. Поширені проблеми (deadlock, false sharing) та як їх уникати
Стандартна бібліотека окрім контейнерів: memory, chrono, variant, filesystem, metaprogramming
Вступ до CMake: таргети, залежності. Як створити просту та правильну структуру проєкту з бібліотек та exe
Робота з різними компіляторами та платформами. Undefined, unspecified та implementation-defined behavior: чому важливо знати різницю між цими поняттями та не лякатись їх
Практика
Реалізація поширених патернів на C++ (observer, factory, тощо)
Реалізація складніших утиліт на C++
C++ advanced topics and patterns
Те, що відрізняє C++ у теорії від C++ у продакшені: потоки, помилки, патерни й інструменти
Огляд екосистеми Qt. Загальні ідеї і принципи побудови бібліотеки
Робота з додатками та віджетами в Qt
Архітектура додатків з графічним інтерфейсом. Як відмежувати логіку обчислень від логіки інтерфейсу
Багатопоточність: черги задач, event loop. Як залишити графічний інтерфейс активним, поки відбуваються обчислення
Збірка, пакування та поширення додатків на С++
Практика
Розробка десктоп-застосунку з навантаженим інтерактивним інтерфейсом
Оптимізація швидкодії для інтерактивних сценаріїв
GUI programming
Від перших елементів інтерфейсу до складних подієвих систем — практичний вхід у світ Qt і десктопних застосунків
Дизайн API: як зробити API таким, який складно використати неправильно. Розглянемо як загальні поняття, так і специфічні для С++ техніки
Крос-платформна розробка: відчуємо різницю роботи компіляторів та інфраструктурні особливості різних target систем (Linux, macOS, Windows)
CMake: робота зі сторонніми бібліотеками та юніт тестами. Зробимо CI-friendly збірку SDK та підготуємо package, який можна інсталювати
Вступ до бібліотеки OpenCV та базова обробка зображень. Напишемо пайплайн обробки зображень з використанням OpenCV-алгоритмів
Юніт-тестування з використанням google-test. Від базових сценаріїв до використання gMock
Практика
Розробка крос-платформного SDK для обробки зображень: від дизайну API до юніт-тестування та розгортання
SDK development
Про інженерію під капотом: дизайн API, cmake, тести та побудова власного SDK
Огляд Raspberry Pi. Скомпілюємо та запустимо програми на Raspberry Pi
Профайлінг та оптимізація програм. Як читати асемблерний код та коли варто це робити
Огляд поширених 3rd party бібліотек та їх використання
Інструменти для С++: статичний аналіз коду, clang-tidy, clang-format, профайлери, санітайзери
Як виглядає С++ у найновіших стандартах: модулі, корутини
С++ стандарти та їх еволюція. Огляд поширених coding conventions та особливостей використання С++ у різних доменах: чим відрізняється С++ для десктопного додатку від С++ для NASA
Практика
Крос-компіляція та виконання програм на вбудованих системах (на прикладі Raspberry Pi)
Дебагінг, вимірювання швидкодії та оптимізація
C++ Developer's Toolbox
Робота з реальними системами: від embedded-запусків і профілювання до сучасних модулів і статичного аналізу
читає

Костянтин Вергун
Principal Software Engineer @Logitech.
Former: @Ring, @Materialise. 12 років професійного досвіду розробки на С++
Реєстрація. Перший крок за вами
реєстрація
перший крок за вами
Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.
відгуки
що говорять випускники
що на вас чекає
have fun and dive deep
спільнота крутих людей
Проводимо відбір на курс, щоб ви навчалися поряд із сильними та вмотивованими. Навіть відраховуємо за незараховані домашки.
Викладач готовий працювати з вами, поки все не стане на свої місця. Іноді це третя ітерація code review, іноді — додатковий 1-1 на 15 хвилин. Ми тут, щоб вчитись і ставати сильнішими.
А ще щоб жартувати про своє в Slack-у та обмінюватися рефералами в круті компанії.
результат, який має сенс
Тут не буде поверхневих слайдів та довгих вступів: тільки глибокий розбір цікавих задач із реального продакшену.
Сертифікат видаємо не за відвідування, а за результати — виконані домашки, участь у дискусіях, відчутний рух та прогрес.
інтенсивний режим
Зустрічаємось у Zoom двічі на тиждень — щосереди о 18:30 і щосуботи о 10:30. Щотижня — нова домашка.
Усі лекції — це живі зустрічі з викладачем під запис (щоб повернутися до матеріалу пізніше). Регулярно проводимо додаткові Q&A-сесії із викладачем та тримаємо з вами звʼязок в Slack.
Мова викладання — українська.
Додаткові матеріали — англійською.