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

Real production systems: embedded deployment, profiling, modern C++ modules, and static analysis
  • Overview of Raspberry Pi. We'll compile and run programs on Raspberry Pi
  • Profiling and program optimization. How to read assembly code and when it's worth doing
  • Overview of popular 3rd party libraries and their usage
  • Tools for C++: static code analysis, clang-tidy, clang-format, profilers, sanitizers
  • What C++ looks like in the latest standards: modules, coroutines
  • C++ standards and their evolution. Overview of common coding conventions and peculiarities of using C++ in different domains: how C++ for a desktop application differs from C++ for NASA

Practice

  •  Cross-compilation and execution of programs on embedded systems (using the Raspberry Pi as an example)
  •  Debugging, performance measurement and optimization

SDK development

What's under the hood: API design, CMake, testing frameworks, and SDK development
  • API design: how to make an API that's hard to use incorrectly. We'll examine both general concepts and C++-specific techniques
  • Cross-platform development: we'll experience the difference in compiler behavior and infrastructure peculiarities of different target systems (Linux, macOS, Windows)
  • CMake: working with third-party libraries and unit tests. We'll create a CI-friendly SDK build and prepare an installable package.
  • Introduction to the OpenCV library and basic image processing. We'll write an image processing pipeline using OpenCV algorithms
  • Unit testing using google-test. From basic scenarios to using gMock

Practice 

  • Develop a cross-platform image processing library: from API design to unit testing and deployment

GUI programming

Building desktop apps with Qt: from your first UI elements to complex event-driven systems
  • Overview of Qt ecosystem. General ideas and principles of library design
  • Working with applications and widgets in Qt
  • GUI application architecture. How to separate computation logic from interface logic
  • Multithreading: task queues, event loop. How to keep the GUI active while computations are happening
  • Building, packaging and distribution of C++ applications

Practice 

  • Development of a desktop application with a heavy interactive interface 
  • Performance optimization for interactive scenarios

C++ advanced topics and patterns

Theory vs. production C++: threads, errors, patterns, tools
  • Type conversions and RTTI: where to use reinterpret_cast and how to implement abstract factory
  • Functional programming. Implementation of the observer pattern.
  • Error handling: from error codes and exceptions to std::expected. Why do some projects have no exceptions at all?
  • Multithreading: from posix mutex to std::condition_variable. Common problems (deadlock, false sharing) and how to avoid them.
  • Standard library beyond containers: memory, chrono, variant, filesystem, metaprogramming
  • Introduction to cmake: targets, dependencies. How to create a simple and correct project structure from libraries and executables
  • Working with different compilers and platforms. Undefined, unspecified and implementation-defined behavior: why it's important to know the difference between these concepts and not be afraid of them

Practice 

  • Implementation of patterns (observer, factory, etc.)
  • Implementation of utility programs (file downloader, diff)

C++ fundamentals

Core language concepts and tools that build proper C++ engineering thinking
  • C++ Ecosystem. Code lifecycle from source file to machine execution
  • C++ Fundamentals: data types, object lifetime, object representation in memory
  • Memory management, stack and heap memory, smart pointers. We'll develop the habit of using RAII — one of the most important C++ idioms
  • Return value optimization, rvalue-references, move semantics. How to return an object from a function: by value or by reference
  • Templates: we'll write a logger that accepts any number of parameters
  • Overview of the standard library: containers, iterators, algorithms

Practice

  • Simple utilities implementation (ls, find, tree...)
  • Implement own containers and logger

ЯК ПРОХОДИТЬ
            НАВЧАННЯ

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 $

за курсом нбу

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

I accept the terms of the Public Offer Agreement and consent to the processing of my personal data in accordance with the Privacy Policy.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bottom of page