Modern C++ Programming Series: Roadmap & Curriculum
Lộ trình Tự học lập trình Modern C++ từ con số 0
This C++ programming guide is currently only available in Vietnamese. Please toggle the language switch (🇻🇳) in the top navigation to read the roadmap.
Welcome to our C++ self-study series. This course is designed to transition you from C to modern C++ concepts, including templates, OOP, smart pointers, and high-performance applications like Google's V8 engine.
Chào mừng bạn đến với chuỗi bài học tự học lập trình C++ Hiện đại (Modern C++). C++ là một ngôn ngữ lập trình hiệu năng cực cao, kế thừa từ C nhưng được trang bị thêm các mô hình lập trình mạnh mẽ như lập trình hướng đối tượng (OOP) và lập trình tổng quát (Templates). C++ là ngôn ngữ đứng sau những hệ thống phần mềm lớn nhất thế giới, bao gồm các hệ điều hành, các game engine đồ họa nặng, và đặc biệt là Google V8 JavaScript Engine - bộ não giúp trình duyệt Chrome biên dịch và thực thi JavaScript với tốc độ ánh sáng.
Dưới đây là lộ trình 14 bài học được thiết kế chi tiết nhằm giúp bạn từng bước làm chủ C++ một cách thực tế, từ cơ bản đến chuyên nghiệp:
Bài 1: Thiết lập môi trường lập trình Modern C++
Cài đặt compiler, package managers, CMake, compiler flags, Makefile. Viết chương trình C++ đầu tiên với giải thích chi tiết từng bước.
Bài 2: Nền tảng C++: Namespace, Auto, Const & I/O
Nắm vững namespace, từ khóa auto, const correctness, iostream basics, type casting. Điều chỉnh để viết code an toàn và sạch sẽ.
Bài 3: STL Cơ bản: std::string & std::vector
Làm quen cấu trúc dữ liệu STL mạnh mẽ. SSO (Small String Optimization), vector capacity, move semantics, vector algorithms và safe erase patterns.
Bài 4: STL Containers: deque, list, map, set
Khám phá sequence vs associative containers. std::deque double-ended, std::list linked list, std::map/unordered_map key-value, std::set/unordered_set unique elements.
Bài 5: OOP Cơ bản: Class, Constructor, RAII & Operator Overloading
Thiết kế Class, Object, Constructor/Destructor, RAII principle. Static members, const methods, operator overloading, member initialization list.
Bài 6: OOP Nâng cao: Kế thừa, Đa hình & RTTI
Làm chủ tính kế thừa, virtual functions, VTable. Pure virtual functions, abstract classes, virtual destructor, RTTI (typeid, dynamic_cast), access control.
Bài 7: Move Semantics & RValue References
Lvalue vs Rvalue, RValue references (&&), move constructor, std::move() & std::forward(), Return Value Optimization (RVO), benchmark copy vs move performance.
Bài 8: Smart Pointers & Quản lý bộ nhớ
std::unique_ptr, std::shared_ptr, std::weak_ptr. Custom deleters, circular references, exception safety, RAII error handling, migration từ raw pointers.
Bài 9: Iterators & Range-based Loops
Iterator categories (Input/Output/Forward/Bidirectional/RandomAccess). Iterator invalidation, range-based loops, std::advance/distance, iterator adapters, custom iterators.
Bài 10: Templates & Lập trình Generic
Function/Class templates, template specialization, SFINAE, variadic templates, Concepts (C++20). Template metaprogramming, compile-time computation.
Bài 11: Exception Handling & Error Management
Try-catch-throw, exception hierarchies, custom exceptions. Exception safety guarantees (No-Throw, Strong, Basic), stack unwinding, RAII error handling, best practices.
Bài 12: Modern C++ Features (C++11/14/17/20)
Lambda expressions, structured binding, std::optional/variant/any. Attributes, operator spaceship, default comparisons, Modules (C++20 preview).
Bài 13: STL Algorithms & Functional Programming
Searching/sorting (find, sort, binary_search), transformations (transform, copy, remove). Numeric algorithms (accumulate, iota). Custom comparators, predicates, algorithm composition.
Bài 14: Capstone Project — BST Visualizer & Advanced Data Structures
Tổng hợp toàn bộ kiến thức: BST, AVL trees, design patterns (Observer, Strategy, MVC). Interactive visualizer, Red-Black trees, B-trees, real-world applications.