top of page

C++

in Depth

Master C++ until you own every line

5 серп. 2026 р.

// старт наступної групи

2 місяці

// пн / чт, 19:00 (UTC+3)

450 $/місяць

900 $

до 30 учасників

// кількість місць обмежена

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, десктопний застосунок — завершені проєкти, які можна показати або розвивати далі.

ВИКЛАДАЧ
         ТА АВТОР ПРОГРАМИ

ivan2.jpg

Костянтин Вергун

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-інженерів

Перевірено випускниками -
        ТОП інженерами з індустрії

google

amazon

netflix

booking.com

spotify

meta

БРОНЮЙ СВОЄ
       МІСЦЕ В ГРУПІ

оплата помісячно

420 $

курс триває 4 місяці

оплата за весь курс

1600 $

за курсом нбу

ПЕРШИЙ КРОК ЗА ТОБОЮ

Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.

За тебе може заплатити роботодавець?

Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.

МАЄШ ПИТАННЯ?
     МИ ВІДПОВІДАЄМО

// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо

я зможу навчатися на курсі, якщо в мене інший часовий пояс?

Так, звісно. Всі заняття ми записуємо, тож різниця в часових поясах не буде суттєвою перешкодою. Переглядайте лекції коли зручно, а якщо виникнуть питання — викладач і команда на зв'язку в Slack-каналі.

як проходять заняття?

Ми працюємо в невеликих групах 20-25 людей у форматі живих занять із викладачем — зустрічаємося кілька разів на тиждень у Zoom. На заняттях розбираємо задачі, дискутуємо, уточнюємо деталі, розглядаємо приклади та аргументацію рішень. Формат побудований так, щоб кожен був залучений і мав можливість взаємодіяти з викладачем та групою.

чи є запис занять?

Щоразу організовуємо запис, однак краще долучатися до онлайн-зустрічі — обговорити питання з одногрупниками та проконсультуватися з викладачем. Доступ до записів зберігається протягом року з дня старту курсу.

який рівень підготовки потрібний?

Курс розрахований на інженерів, які вже мають комерційний або pet-project досвід із C++ і хочуть глибше зрозуміти, як мова та система працюють «під капотом». Ми очікуємо базове розуміння C++, Computer Science fundamentals та готовність самостійно опрацьовувати частину матеріалу поза заняттями.

Детальніше вимоги описані у блоці Prerequisites на цій сторінці.

до зустрічі на курсі

bottom of page