Skip to content

Modern C++ Series C++17/20

Enterprise C++ — Templates, Concurrency & Zero-Cost Abstractions

Modern C++ không chỉ là "syntax mới" — mà là paradigm shift về cách thiết kế zero-cost abstractions. Từ move semantics internals đến coroutine implementation, mỗi bài kèm assembly-level analysis.

ModulesLessonsDuration
62650–70 giờ

📋 Overview

Learning Outcomes

  • ✅ Master C++17: structured bindings, if constexpr, std::optional/variant/any
  • ✅ Master C++20: concepts, ranges, coroutines, modules
  • ✅ Hiểu sâu move semantics và value categories (lvalue, rvalue, xvalue)
  • ✅ Viết template metaprogramming: SFINAE, fold expressions, constexpr evaluation
  • ✅ Áp dụng concurrency patterns: std::thread, async, atomics, memory model
  • ✅ Implement RAII patterns và smart pointer strategies cho zero-leak code

Prerequisites

  • Nắm vững C++ cơ bản: classes, pointers, references, STL containers
  • Hiểu memory management: stack vs heap, new/delete
  • Đã viết chương trình C++ ≥1000 dòng
  • Biết cơ bản templates (function templates, class templates)

🗺️ Suggested Roadmaps


📚 Curriculum Tree

⚠️ Curriculum Index Preview: Đây là bản preview cấu trúc curriculum — hiển thị danh sách module, lesson titles, và exercise types. Nội dung bài học đầy đủ (lecture notes, code examples, exercises có lời giải) nằm trong Premium Pack.

bundle-cpp--mod-01: C++17 Essential Features (5 lessons)
Structured Bindings & Init Statements

Destructuring, if/switch init, nested namespaces

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~35 phút · 📊 beginner

std::optional, std::variant, std::any

Value semantics, visitor pattern, type-safe unions

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~45 phút · 📊 intermediate

if constexpr & Compile-Time Branching

SFINAE replacement, compile-time polymorphism, tag dispatch

Exercise Types:

  • 🧩 Parsons
  • 🎯 ScenarioChoice

⏱️ ~40 phút · 📊 intermediate

std::filesystem & String Improvements

Path operations, directory iteration, string_view, charconv

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~35 phút · 📊 beginner

Fold Expressions & Class Template Argument Deduction

Variadic fold, CTAD guides, deduction pitfalls

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~40 phút · 📊 intermediate

bundle-cpp--mod-02: C++20 Core Language (5 lessons)
Concepts & Constraints

requires expression, concept definition, subsumption, standard concepts

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~50 phút · 📊 intermediate

Ranges & Views

Range adaptors, lazy evaluation, projection, custom views

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~55 phút · 📊 intermediate

Coroutines Fundamentals

co_await, co_yield, co_return, promise type, coroutine handle

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~60 phút · 📊 advanced

Modules

Module units, import/export, partitions, header units, build system integration

Exercise Types:

  • 🧩 Parsons
  • 🎯 ScenarioChoice

⏱️ ~45 phút · 📊 intermediate

Three-Way Comparison & Spaceship Operator

strong_ordering, weak_ordering, partial_ordering, defaulted <==>

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~35 phút · 📊 beginner

bundle-cpp--mod-03: Move Semantics & Value Categories (4 lessons)
Value Categories: lvalue, rvalue, xvalue, prvalue, glvalue

Category taxonomy, materialization, implicit conversions

Exercise Types:

  • 🎯 ScenarioChoice
  • 🔍 SpotTheBug

⏱️ ~50 phút · 📊 intermediate

Move Constructors & Move Assignment

Implementing move, noexcept importance, rule of five/zero

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~50 phút · 📊 intermediate

Perfect Forwarding & Universal References

std::forward, forwarding references, reference collapsing

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~55 phút · 📊 advanced

Copy Elision: RVO, NRVO, Guaranteed Elision

C++17 guaranteed copy elision, when elision fails, benchmarking

Exercise Types:

  • 🔍 SpotTheBug
  • 🎯 ScenarioChoice

⏱️ ~40 phút · 📊 intermediate

bundle-cpp--mod-04: Templates & Metaprogramming (4 lessons)
Template Fundamentals & Specialization

Function/class templates, partial specialization, SFINAE basics

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~45 phút · 📊 intermediate

Variadic Templates & Parameter Packs

Pack expansion, fold expressions, recursive instantiation

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~50 phút · 📊 advanced

CRTP & Static Polymorphism

Curiously Recurring Template Pattern, mixin classes, compile-time dispatch

Exercise Types:

  • 🧩 Parsons
  • 🎯 ScenarioChoice

⏱️ ~45 phút · 📊 advanced

Type Traits & constexpr Programming

std::is_, std::enable_if, constexpr functions, consteval, constinit*

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~50 phút · 📊 advanced

bundle-cpp--mod-05: Concurrency & Memory Model (4 lessons)
std::thread, std::jthread & Async

Thread creation, joining, futures, promises, packaged_task

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~45 phút · 📊 intermediate

Mutexes, Locks & Condition Variables

std::mutex, lock_guard, unique_lock, shared_mutex, deadlock avoidance

Exercise Types:

  • 🔍 SpotTheBug
  • 🎯 ScenarioChoice

⏱️ ~50 phút · 📊 intermediate

Atomics & Memory Ordering

std::atomic, memory_order_relaxed/acquire/release/seq_cst, fences

Exercise Types:

  • 🔍 SpotTheBug
  • 🎯 ScenarioChoice

⏱️ ~60 phút · 📊 expert

Lock-Free Data Structures

Compare-and-swap, ABA problem, hazard pointers, epoch-based reclamation

Exercise Types:

  • 🔍 SpotTheBug
  • 🎯 ScenarioChoice

⏱️ ~65 phút · 📊 expert

bundle-cpp--mod-06: RAII, Smart Pointers & Best Practices (4 lessons)
RAII Philosophy & Resource Management

Ownership semantics, scope-based management, exception safety

Exercise Types:

  • 🎯 ScenarioChoice
  • 🔍 SpotTheBug

⏱️ ~35 phút · 📊 beginner

Smart Pointers Deep Dive

unique_ptr, shared_ptr control block, weak_ptr cycle breaking, make_shared

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~50 phút · 📊 intermediate

Custom Deleters & Allocators

File handle RAII, pool allocators, pmr::memory_resource

Exercise Types:

  • 🧩 Parsons
  • 🔍 SpotTheBug

⏱️ ~45 phút · 📊 advanced

C++ Core Guidelines & Static Analysis

GSL, clang-tidy, cppcheck, sanitizers (ASan, TSan, UBSan)

Exercise Types:

  • 🎯 ScenarioChoice
  • 🔍 SpotTheBug

⏱️ ~40 phút · 📊 intermediate


📦 What You Get

  • PDF lecture notes (32 bài, kèm code examples & assembly annotations)
  • Obsidian vault với C++ pattern library & decision trees
  • Code templates: CMake project structure, testing setup (Catch2/GoogleTest)
  • Benchmark templates (Google Benchmark) cho performance comparison

Lifetime updates: C++23/26 features added as compilers implement them. Compiler compatibility matrix updated.


Câu hỏi thường gặp

Quy trình mua hàng như thế nào?

Bạn nhắn tin qua Messenger với bundle muốn mua. Đội ngũ PENALGO sẽ xác nhận đơn hàng, hướng dẫn thanh toán qua chuyển khoản ngân hàng, và gửi link Google Drive chứa tài liệu trong vòng 24 giờ sau khi xác nhận thanh toán.

Tài liệu được giao dưới dạng gì?

Mỗi bundle bao gồm: PDF lecture notes (full diagrams), Obsidian vault (backlinks & graph view), code templates theo ngôn ngữ, và toàn bộ được đóng gói trong Google Drive ZIP. Bạn nhận link tải một lần và sở hữu vĩnh viễn.

Chính sách cập nhật tài liệu ra sao?

Lifetime updates — mỗi phiên bản mới được gửi qua email đăng ký kèm changelog chi tiết. Tối thiểu 2 lần cập nhật mỗi năm cho mỗi bundle, bổ sung case studies mới và cập nhật theo phiên bản công nghệ.

Tôi có thể hoàn tiền không?

Hoàn tiền 100% trong vòng 24 giờ kể từ khi nhận tài liệu, không cần lý do. Sau 24 giờ, do tính chất digital của sản phẩm, chính sách hoàn tiền không còn áp dụng.

Nên mua bundle nào trước?

Tuỳ mục tiêu: Chuẩn bị phỏng vấn → bắt đầu với Algorithms & Data Structures Core. Muốn lên senior → System Design Universe. Chuyển sang DevOps → Docker Masterclass + Infrastructure & DevOps. Xem mục Roadmaps để tìm lộ trình phù hợp nhất với career path của bạn.

Roadmap hoạt động như thế nào?

Mỗi roadmap là một lộ trình học tập được thiết kế cho một mục tiêu nghề nghiệp cụ thể. Roadmap gợi ý thứ tự học các module từ nhiều bundle khác nhau, kèm milestone checkpoints để tự đánh giá tiến độ. Roadmap là hướng dẫn — bạn vẫn cần mua bundle tương ứng để truy cập nội dung.

Curriculum Tree trên web hiển thị gì?

Curriculum Tree là bản preview cấu trúc module/lesson — cho thấy phạm vi và độ sâu của mỗi bundle. Đây là metadata (tiêu đề, mục tiêu, tags), không phải nội dung bài học đầy đủ. Nội dung chi tiết nằm trong Premium Pack khi bạn mua.

Tài liệu có phù hợp với người mới bắt đầu không?

Mỗi bundle ghi rõ prerequisites (yêu cầu đầu vào) — kiểm tra trước khi mua. Đa phần bundle yêu cầu kiến thức nền tảng cơ bản. Nếu bạn đã nắm vững prerequisites, tài liệu sẽ đưa bạn từ intermediate lên production-grade level.

Tôi có thể xem trước nội dung bài học không?

Curriculum Tree trên web cho phép bạn xem danh sách module, lesson titles, mục tiêu, và exercise types. Đây là preview đủ để đánh giá scope và depth. Nội dung bài học đầy đủ (lecture notes, code examples, exercises) chỉ có trong Premium Pack.

Hỗ trợ kỹ thuật khi gặp vấn đề với tài liệu?

Liên hệ qua Messenger hoặc email hỗ trợ. Đội ngũ phản hồi trong vòng 24 giờ (ngày làm việc). Hỗ trợ bao gồm: vấn đề tải file, lỗi format, câu hỏi về nội dung, và gợi ý lộ trình học tập.

Có giảm giá khi mua nhiều bundle không?

Có chính sách combo khi mua từ 3 bundle trở lên. Nhắn tin qua Messenger để nhận báo giá combo phù hợp với mục tiêu học tập của bạn.


💬 Mua ngay

Xin chào! Tôi quan tâm đến bundle "Modern C++ Series C++17/20" (bundle-cpp). Tôi muốn biết thêm thông tin và cách mua.

💬 Mua qua Messenger

Nội dung đầy đủ được giao trong Premium Pack qua Google Drive.


Quay lại Premium Vault · Xem Roadmaps

Cập nhật lần cuối: