
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 your team will master:
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 your team learns in practice C++ Advanced Course
How your team practices C++ Advanced Course
Professionals from these companies study at Dedika









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 Initialization and Structured Bindings
Explains brace initialization, initializer lists, and C++17 structured bindings. Reduces common initialization 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 Specialization and Overloading
Covers full and partial specialization plus function template overloading. Enables precise behavior customization 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 behavior.
Lesson 3 • Memory Safety and Sanitizer Tools
Introduces AddressSanitizer, Valgrind, and undefined-behavior 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 optimization.
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 synchronization. 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 Optimization Techniques
Performance Optimization Techniques
Lesson 1 • Compiler Optimizations and Hints
Covers inlining, link-time optimization, and likely/unlikely hints. Students guide the compiler to generate faster machine code.
Lesson 2 • Reducing Allocations and Copies
Covers small-buffer optimization, 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 optimization methodology used throughout the chapter.
Lesson 4 • SIMD Intrinsics and Vectorization
Introduces auto-vectorization 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 minimize 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 behavior 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 while preserving polymorphic behavior.
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.
Related courses
FAQ
Who is Dedika?
Is the certificate valid in United States?
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



















