
C++ Advanced Course
Take your C++ expertise to the level that separates senior engineers from the rest. This course covers modern C++20 features, advanced template metaprogramming, lock-free concurrency, and large-scale architecture. You will write faster, safer, and more maintainable systems code from day one.
What you will learn:
You will master C++11 through C++20 features including move semantics, variadic templates, and coroutines. The course teaches you to design custom memory allocators, build lock-free data structures, and apply SIMD intrinsics for maximum throughput. You will implement advanced design patterns such as CRTP, type erasure, and expression templates. Build systems, ABI stability, static analysis, and CI integration are covered so you can contribute to production-grade codebases. You will also explore C++20 ranges, embedded C++ techniques, cross-language interoperability, and security-conscious coding practices.
How you study in practice C++ Advanced Course
How you practise C++ Advanced Course
For businesses looking to train their team
With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.
Course content
8 Chapters • 39 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsModern C++ Foundations Review
Modern C++ Foundations Review
Lesson 1 • Uniform Initialisation and Structured Bindings
Explains brace initialisation, initialiser lists, and C++17 structured bindings. Reduces common initialisation bugs in subsequent chapters.
Lesson 2 • Move Semantics and Value Categories
Explains lvalues, rvalues, and xvalues alongside std::move and std::forward. Enables efficient resource transfer throughout the course.
Lesson 3 • Smart Pointers and Ownership
Covers unique_ptr, shared_ptr, and weak_ptr ownership semantics. Builds the memory-safety foundation required for advanced resource management.
Lesson 4 • Lambda Expressions in Depth
Teaches capture modes, generic lambdas, and mutable lambdas. Prepares students for functional-style algorithms and callbacks.
Lesson 5 • Type Inference and Auto Usage
Covers auto, decltype, and trailing return types with precision. Establishes type-deduction intuition needed for templates later.
Chapter 2HideHide detailsSee detailsTemplate Metaprogramming Fundamentals
Template Metaprogramming Fundamentals
Lesson 1 • SFINAE and Enable_if Techniques
Explains substitution failure, std::enable_if, and void_t idioms. Allows conditional template enablement based on type properties.
Lesson 2 • Type Traits and Compile-Time Computation
Covers the type_traits library and constexpr if for compile-time branching. Students write zero-overhead generic code with static assertions.
Lesson 3 • Variadic Templates
Teaches parameter packs, pack expansion, and fold expressions. Unlocks construction of type-safe heterogeneous containers and utilities.
Lesson 4 • Function and Class Template Basics
Introduces template syntax, instantiation, and argument deduction rules. Provides the vocabulary for all subsequent metaprogramming topics.
Lesson 5 • Template Specialisation and Overloading
Covers full and partial specialisation plus function template overloading. Enables precise behaviour customisation for specific types.
Chapter 3HideHide detailsSee detailsConcepts and Constraints in C++20
Concepts and Constraints in C++20
Lesson 1 • Constraining Function and Class Templates
Applies concepts to function signatures and class templates via requires clauses. Replaces verbose SFINAE with expressive constraints.
Lesson 2 • Concept Syntax and Definition
Introduces the concept keyword, requires expressions, and constraint conjunction. Establishes the new vocabulary for constrained templates.
Lesson 3 • Standard Library Concepts
Surveys concepts in <concepts> and ranges headers including Sortable and Range. Enables idiomatic use of the C++20 standard library.
Lesson 4 • Concept Subsumption and Ordering
Explains how the compiler orders overloads by concept subsumption. Students design concept hierarchies that resolve ambiguity correctly.
Chapter 4HideHide detailsSee detailsAdvanced Memory Management
Advanced Memory Management
Lesson 1 • Memory Pools and Arena Allocation
Covers pool allocators, arena allocators, and bump-pointer strategies. Reduces fragmentation and allocation latency in hot paths.
Lesson 2 • Placement New and Object Lifetime
Teaches manual object construction in pre-allocated buffers using placement new. Clarifies object lifetime rules to avoid undefined behaviour.
Lesson 3 • Memory Safety and Sanitizer Tools
Introduces AddressSanitizer, Valgrind, and undefined-behaviour sanitizers. Students detect and fix memory errors systematically.
Lesson 4 • Aligned Storage and SIMD Alignment
Covers alignas, alignof, and std::aligned_storage for hardware-aligned data. Prepares students for SIMD and cache-line optimisation.
Lesson 5 • Allocator Model and Custom Allocators
Explains the C++ allocator interface and how containers use it. Students implement custom allocators to control memory sources.
Chapter 5HideHide detailsSee detailsConcurrency and Parallelism
Concurrency and Parallelism
Lesson 1 • C++20 Coroutines for Concurrency
Introduces co_await, co_yield, and coroutine handles for async workflows. Connects coroutine mechanics to practical async I/O patterns.
Lesson 2 • Threads, Mutexes, and Condition Variables
Covers std::thread, mutex variants, and condition_variable for synchronisation. Builds practical skills for producer-consumer and guarded-data patterns.
Lesson 3 • C++ Memory Model Fundamentals
Explains the happens-before relation, sequentially consistent ordering, and data races. Provides the theoretical basis for all concurrency work.
Lesson 4 • Atomics and Lock-Free Programming
Teaches std::atomic operations and compare-exchange for lock-free structures. Students implement wait-free counters and lock-free queues.
Lesson 5 • Futures, Promises, and Async Tasks
Covers std::future, std::promise, and std::async for task-based concurrency. Enables clean asynchronous result passing without raw threads.
Chapter 6HideHide detailsSee detailsPerformance Optimisation Techniques
Performance Optimisation Techniques
Lesson 1 • Compiler Optimisations and Hints
Covers inlining, link-time optimisation, and likely/unlikely hints. Students guide the compiler to generate faster machine code.
Lesson 2 • Reducing Allocations and Copies
Covers small-buffer optimisation, copy elision, and RVO/NRVO guarantees. Students eliminate hidden allocation costs in production code.
Lesson 3 • Profiling and Benchmarking Workflow
Covers perf, gprof, and Google Benchmark for measuring hotspots. Establishes a data-driven optimisation methodology used throughout the chapter.
Lesson 4 • SIMD Intrinsics and Vectorisation
Introduces auto-vectorisation and manual SIMD intrinsics for data parallelism. Enables order-of-magnitude speedups on numeric workloads.
Lesson 5 • Cache-Friendly Data Structures
Explains cache hierarchy, spatial locality, and struct-of-arrays layout. Students redesign data structures to minimise cache misses.
Chapter 7HideHide detailsSee detailsAdvanced Design Patterns in C++
Advanced Design Patterns in C++
Lesson 1 • Policy-Based Design
Teaches the policy class idiom for compile-time behaviour injection. Replaces virtual dispatch with zero-cost static polymorphism.
Lesson 2 • Compile-Time Reflection Patterns
Covers manual reflection using type lists, constexpr maps, and X-macros. Prepares students for C++26 reflection when it becomes available.
Lesson 3 • Type Erasure Techniques
Explains std::any, std::function, and custom type-erasure wrappers. Enables runtime polymorphism without inheritance hierarchies.
Lesson 4 • Expression Templates
Introduces expression templates for lazy evaluation and loop fusion. Students build a minimal linear-algebra DSL to apply the pattern.
Lesson 5 • CRTP and Static Polymorphism
Covers the Curiously Recurring Template Pattern for static interfaces. Eliminates virtual call overhead whilst preserving polymorphic behaviour.
Chapter 8HideHide detailsSee detailsLarge-Scale C++ Project Architecture
Large-Scale C++ Project Architecture
Lesson 1 • CMake and Build System Mastery
Teaches modern CMake targets, generator expressions, and package management. Enables reproducible, cross-platform builds for large projects.
Lesson 2 • ABI Stability and Versioning
Explains ABI breakage causes, the pimpl idiom, and versioned symbol techniques. Students design libraries that remain binary-compatible across releases.
Lesson 3 • Static Analysis and Code Quality
Covers clang-tidy, cppcheck, and sanitizer integration in CI pipelines. Enforces consistent quality gates across large teams.
Lesson 4 • C++20 Modules System
Covers module units, interface partitions, and import declarations. Replaces header-based compilation for faster builds and cleaner dependencies.
Lesson 5 • Testing Strategies for C++ Systems
Introduces Google Test, Google Mock, and property-based testing with RapidCheck. Students build a layered test suite for a complex C++ library.
Your valid completion certificate
This course is for you:
Mid-level C++ developer: ready to move beyond everyday feature work into deeper systems.
Game engine programmer: needs low-level performance and concurrency skills for real-time systems.
Embedded software engineer: wants modern C++ techniques that fit resource-constrained environments.
Backend infrastructure engineer: building high-throughput services where allocation costs matter.
Computer science graduate: bridging academic knowledge with production-grade engineering practices.
Self-taught C++ hobbyist: has built personal projects and now wants professional-level depth.
What our students say
Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...

I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.

I like the content and the way videos are presented and transcribed, which speeds up the process!

The platform is fast and simple to use. The diversity of content and complementary videos really help with learning.

Top qualifications
FAQ
Who is Dedika?
Is the certificate valid in the United Kingdom?
Are the courses free?
What is the course workload?
What are the courses like?
How do the courses work?
What is the duration of the courses?
What is the cost or price of the courses?
What is an EAD or online course and how does it work?
PDF Course




















