C++ in Depth NEW
Master C++ through practice. From fundamentals to production systems.
350 $/місяць
ср, 18:30 / сб, 10:30 (UTC+3)
start:
Aug 5, 2026
// 25 занять, 3 місяці
350 $/місяць
ср, 18:30 / сб, 10:30 (UTC+3)

what's inside
C++ має репутацію мови, яка підкидає помилки там, де їх найменше очікуєш. Тому інженери звикли її остерігатися — уникають певних конструкцій, бояться невизначеної поведінки та борються з інфраструктурою. Цей курс переводить з режиму обережності в режим контролю. Ви зрозумієте не лише код, а й те, що під капотом — пам’ять, компіляцію, оптимізацію, багатопоточність і роботу з великими бібліотеками.
На курсі ви пройдете повний цикл розробки на C++ та створите інфраструктурні production-рішення. У результаті матимете доробок C++-проєктів, які можна використовувати для працевлаштування та розвивати далі.
*За даними Djinni, C++-кандидати мають менше труднощів у пошуку роботи, а зростання miltech-проєктів суттєво збільшує попит на embedded-фахівців. Попри складність, C++ залишається одним із найсильніших напрямів для старту в низькорівневому програмуванні.
Curriculum
it will be hot
FOR ENGINEERS
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
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)
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
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
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
Instructor
it will be hot
FOR ENGINEERS

Костянтин Вергун
Principal Software Engineer @Logitech.
Former: @Ring, @Materialise. 12 років професійного досвіду розробки на С++.
Ready? Take the first step
ready?
take the first step
I accept the terms of the Public Offer Agreement and consent to the processing of my personal data in accordance with the Privacy Policy.
reviews
What alumni say
FOR ENGINEERS
reviews
what alumni say
What our
alumni say
results that matter
No shallow slides or long introductions — just deep dives into real production challenges.
Certificates are earned, not given. They're earned through real results: completed assignments, active discussions, and measurable progress.
learn among the best
We carefully select students so you're surrounded by driven, motivated peers. Yes, we dismiss those who don't complete assignments.
Your instructor stays with you until it clicks — whether that means a third code review or a quick 15-minute call. That's what we do: push each other to learn and level up.
Oh, and share jokes in Slack and swap referrals to awesome companies.
intensive mode
We meet on Zoom twice a week — every Monday and every Friday at 6:30 PM. Every week — a new homework.
All lectures are live meetings with the teacher with a recording (to return to the material later). We regularly hold additional Q&A sessions with the teacher and keep in touch with you on Slack.
The language of instruction is Ukrainian.
Additional materials are in English.