
C++
in Depth
Master C++ until you own every line
The revolution needs builders
ПРО КУРС
Опануйте AI engineering як нову дисципліну. Це курс для тих, хто готовий перейти у сферу, про яку говорять усі, але яку глибоко мало хто розуміє. Ви дізнаєтесь, чим AI-інженерія відрізняється від класичного ML та навчитеся використовувати сучасний стек і фундаментальні моделі для розв'язання складних бізнес-завдань.
Програма побудована на hands-on проєктах: RAG-система на корпоративних даних, автономні агенти з tool calling та memory, пайплайни з Evals для контролю якості. Ви пройдете шлях від embeddings і векторизації до context engineering. Фокус курсу на production: як зрозуміти, коли варто використовувати LLM, а коли це буде недоречно; як оптимізувати витрати та забезпечити observability систем.
Приділимо увагу й інженерній культурі: тестування промптів, використання LLM-as-a-judge та вирішення проблем затримок і безпеки.
Курс розрахований на розробників із практичним досвідом роботи. Для навчання та практики потрібно володіти Python на рівні beginner. Протягом курсу також будуть використані деякі базові підходи з ML (self-supervised learning, embeddings, KNN, evals та ін.)
Після курсу — портфоліо проєктів та можливість стати тим, хто впроваджує GenAI у вашій компанії.
*Кейси, які ви будете розбирати на курсі, — це не академічні приклади, а продакшн-досвід викладача з реальних проєктів у Netflix.
prerequisites
:: Базове розуміння роботи операційної системи: stack vs heap memory, cache locality, процеси, потоки та багатопоточність
:: Практичний досвід з Git: commit, push/pull, branching
:: Розуміння фундаментів CS: цикли, рекурсія, алгоритми, структури даних та їх складність
:: C++ на Junior рівні та вище: типи даних, вказівники та посилання, обʼєкти і класи, реалізація ООП
ДВІЧІ на тиждень
Субота
10:00 UTC+3
Середа
18:30 UTC+3
// live зустрічі з записом
Стек
Будь-яка мова програмування
// live зустрічі з записом
ПРОГРАМА
:: 32 live заняття
:: 8 Q&A сесій
:: до 30 студентів в групі
C++ Developer's Toolbox
Робота з реальними системами: від embedded-запусків і профілювання до сучасних модулів і статичного аналізу
Огляд Raspberry Pi. Скомпілюємо та запустимо програми на Raspberry Pi
Профайлінг та оптимізація програм. Як читати асемблерний код та коли варто це робити
Огляд поширених 3rd party бібліотек та їх використання
Інструменти для С++: статичний аналіз коду, clang-tidy, clang-format, профайлери, санітайзери
Як виглядає С++ у найновіших стандартах: модулі, корутини
С++ стандарти та їх еволюція. Огляд поширених coding conventions та особливостей використання С++ у різних доменах: чим відрізняється С++ для десктопного додатку від С++ для NASA
Практика
Крос-компіляція та виконання програм на вбудованих системах (на прикладі Raspberry Pi)
Дебагінг, вимірювання швидкодії та оптимізація
SDK development
Про інженерію під капотом: дизайн API, cmake, тести та побудова власного SDK
Дизайн API: як зробити API таким, який складно використати неправильно. Розглянемо як загальні поняття, так і специфічні для С++ техніки
Крос-платформна розробка: відчуємо різницю роботи компіляторів та інфраструктурні особливості різних target систем (Linux, macOS, Windows)
CMake: робота зі сторонніми бібліотеками та юніт тестами. Зробимо CI-friendly збірку SDK та підготуємо package, який можна інсталювати
Вступ до бібліотеки OpenCV та базова обробка зображень. Напишемо пайплайн обробки зображень з використанням OpenCV-алгоритмів
Юніт-тестування з використанням google-test. Від базових сценаріїв до використання gMock
Практика
Розробка крос-платформного SDK для обробки зображень: від дизайну API до юніт-тестування та розгортання
GUI programming
Від перших елементів інтерфейсу до складних подієвих систем — практичний вхід у світ Qt і десктопних застосунків
Огляд екосистеми Qt. Загальні ідеї і принципи побудови бібліотеки
Робота з додатками та віджетами в Qt
Архітектура додатків з графічним інтерфейсом. Як відмежувати логіку обчислень від логіки інтерфейсу
Багатопоточність: черги задач, event loop. Як залишити графічний інтерфейс активним, поки відбуваються обчислення
Збірка, пакування та поширення додатків на С++
Практика
Розробка десктоп-застосунку з навантаженим інтерактивним інтерфейсом
Оптимізація швидкодії для інтерактивних сценаріїв
C++ advanced topics and patterns
Те, що відрізняє C++ у теорії від 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++ fundamentals
Основи мови й інструменти, що формують правильний стиль мислення в C++ інженера
Екосистема C++. Життєвий цикл коду від вихідного файлу до машинного виконання
Фундамент С++: типи даних, тривалість життя обʼєктів, представлення обʼєктів у памʼяті
Управління памʼяттю, stack та heap памʼять, smart pointers. Виробимо звичку використовувати RAII — одну з найважливіших ідіом C++
Return value optimization, rvalue-references, move-семантика. Як повертати обʼєкт з функції: за значенням чи за посиланням
Templates: напишемо logger, який приймає будь-яку кількість параметрів
Огляд стандартної бібліотеки: контейнери, ітератори, алгоритми
Практика
Реалізація утиліт на C++ (
ls,find,tree)Власна реалізація контейнерів (vector, тощо)
ЯК ПРОХОДИТЬ
НАВЧАННЯ
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
ПРАКТИЧНА
РОБОТА
:: 30 завдань
:: пишете власну СУБД
:: ФІДБЕК ВИКЛАДАЧА
// Рекомендуємо виділяти 6–10 годин на тиждень для виконання домашніх завдань, щоб отримати ма ксимальний результат від курсу.
Tree CLI Utility
Реалізація production-like CLI-утиліти для роботи з файловою системою
Реалізувати утиліту tree для командного рядка, яка приймає шлях до директорії та виводить її вміст у вигляді дерева — подібно до Unix-команди tree
Реалізуйте утиліту з такими вимогами:
01. Обхід директорій через std::filesystem, використання STL контейнерів та алгоритмів.
02. Підтримка опції max-depth N для обмеження глибини рекурсії
03. Коректна обробка помилок: неіснуючий шлях, відсутність прав доступу, symbolic links та інші edge cases
04. Чітке розділення побудови дерева директорій та його відображення в консолі
05. Збірка через CMake
Домашні завдання передбачають розвиток цих ідей у наступних модулях і перевикористання спільного коду.
ЩО ЗМІНИТЬСЯ
ПІСЛЯ КУРСУ
1
розумієш C++ «під капотом»
// Бачиш що відбувається між кодом і залізом: як працює памʼять, що робить компілятор, звідки береться runtime cost і чому одні рішення масштабуються, а інші — ні.
2
контролюєш інфраструктуру
// Збираєш проєкти з нуля, проєктуєш архітектуру, розбираєшся в tooling — без залежності від IDE чи фреймворків.
3
виходиш із реальним доробком
// CLI-утиліти, крос-платформний SDK, десктопний застосунок — завершені проєкти, які можна показати або розвивати далі.
ВИКЛАДАЧ
ТА АВТОР ПРОГРАМИ

Костянтин Вергун
Principal Software Engineer @Logitech.
Former: @Ring, @Materialise. 12 років професійного досвіду розробки на С++.
:: випустив понад 300 інженерів
:: 14 років інженерного досвіду з високонавантаженими системами
:: випускник Stanford University
01
12 років професійного досвіду розробки на С++ у різних доменах: desktop applications, cross-platform SDKs, embedded.
02
M.Sc. in Applied Mathematics
03
100+ проведених технічних інтервʼю та менторство інтернів та junior-інженерів
Перевірено випускниками -
ТОП інженерами з індустрії
amazon
netflix
booking.com
spotify
meta
БРОНЮЙ СВОЄ
МІСЦЕ В ГРУПІ
оплата помісячно
420 $
курс триває 4 місяці
оплата за весь курс
1600 $
за курсом нбу
ПЕРШИЙ КРОК ЗА ТОБОЮ
Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.
За тебе може заплатити роботодавець?
Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.
МАЄШ ПИТАННЯ?
МИ ВІДПОВІДАЄМО
// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо