C++
The performance track for learners who care about inference engines, tooling, and systems code.
- Modules
- 11
- Lessons
- 189
- Labs
- 0
- Hours
- 29
Guide
Understand modern C++ well enough to read, write, and reason about fast production systems.
Open lessonRead
Start with the plain-English model before syntax or formulas.
Run
Open examples and labs when the concept needs motion.
Check
Use practice and progress to close the loop before moving on.
Ship
Turn modules into projects and certificates you can show.
Follow a guided syllabus.
Start from fundamentals, revisit any module, and keep a clear path toward projects and certificates.
- 01Open module
Foundations
35 lessons5 hrFinish this module able to use Foundations as part of real C++ work.
- 02Open module
Working With Data
18 lessons3 hrFinish this module able to use Working With Data as part of real C++ work.
- 03Open module
Functions
20 lessons4 hrFinish this module able to use Functions as part of real C++ work.
- 04Open module
Pointers Memory
16 lessons2 hrFinish this module able to use Pointers Memory as part of real C++ work.
- 05Open module
OOP Basics
26 lessons4 hrFinish this module able to use OOP Basics as part of real C++ work.
- 06Open module
Advanced OOP
12 lessons2 hrFinish this module able to use Advanced OOP as part of real C++ work.
- 07Open module
Templates
12 lessons2 hrFinish this module able to use Templates as part of real C++ work.
- 08Open module
STL
12 lessons2 hrFinish this module able to use STL as part of real C++ work.
- 09Open module
Advanced Topics
12 lessons2 hrFinish this module able to use Advanced Topics as part of real C++ work.
- 10Open module
Expert Topics
16 lessons2 hrFinish this module able to use Expert Topics as part of real C++ work.
- 11Open module
Build Tools Testing
10 lessons2 hrFinish this module able to use Build Tools Testing as part of real C++ work.
Instructor notes and source guide
π Complete C++ Learning Path: Beginner to Advanced
Welcome to your comprehensive C++ learning journey! This structured curriculum will take you from absolute beginner to advanced C++ developer.
π How to Use This Repository
- Follow the modules in order - Each module builds upon previous concepts
- Read the theory files - Understand the concepts before coding
- Run the examples - Compile and execute each example to see how it works
- Complete the exercises - Practice makes perfect
- Build the projects - Apply what you've learned
π§ Compilation Commands
# Basic compilation
g++ filename.cpp -o output
# With C++17 standard (recommended)
g++ -std=c++17 filename.cpp -o output
# With C++20 standard (for modern features)
g++ -std=c++20 filename.cpp -o output
# With debugging symbols
g++ -std=c++17 -g filename.cpp -o output
# With warnings (always use this!)
g++ -std=c++17 -Wall -Wextra filename.cpp -o output
π Course Structure
MODULE 1: FOUNDATIONS (Weeks 1-2)
01_Foundations/
| Topic | Description |
|---|---|
| 01_Introduction | What is C++, compilation process, first program |
| 02_Syntax_And_Structure | Program structure, statements, blocks |
| 03_Input_Output | cin/cout, formatting, file streams basics |
| 04_Variables_And_Data_Types | Primitives, constants, scope rules |
| 05_Operators | Arithmetic, logical, bitwise, precedence |
| 06_Control_Flow | if/else, switch, loops (for, while, do-while) |
| 07_Preprocessor_Namespaces | #include, #define, macros, namespace usage |
MODULE 2: WORKING WITH DATA (Week 3)
02_Working_With_Data/
| Topic | Description |
|---|---|
| 01_Arrays | Fixed-size arrays, multidimensional arrays |
| 02_Vectors | Dynamic arrays, vector operations |
| 03_Strings | C-strings, std::string, manipulation |
| 04_Enums_Structs_Unions | User-defined types, enum class, POD structs |
| 05_Type_Casting | static_cast, dynamic_cast, const_cast, reinterpret_cast |
MODULE 3: FUNCTIONS (Week 4)
03_Functions/
| Topic | Description |
|---|---|
| 01_Function_Basics | Declaration, definition, calling conventions |
| 02_Parameters | Pass by value, reference, pointer, default args |
| 03_Function_Overloading | Same name, different signatures |
| 04_Recursion | Self-calling functions, base cases |
| 05_Inline_Lambda | Inline optimization, lambda expressions |
MODULE 4: POINTERS & MEMORY (Weeks 5-6)
04_Pointers_Memory/
| Topic | Description |
|---|---|
| 01_Pointers | Addresses, dereferencing, pointer arithmetic |
| 02_References | Aliases, reference vs pointer |
| 03_Dynamic_Memory | new/delete, memory leaks, RAII intro |
| 04_Smart_Pointers | unique_ptr, shared_ptr, weak_ptr |
MODULE 5: OOP BASICS (Weeks 7-9)
05_OOP_Basics/
| Topic | Description |
|---|---|
| 01_Classes | Class definition, objects, member functions |
| 02_Encapsulation | Access specifiers, getters/setters |
| 03_Inheritance | Base/derived classes, protected members |
| 04_Polymorphism | Virtual functions, overriding, vtable |
| 05_Operator_Overloading | Custom operators for user types |
| 06_Rule_Of_Five_RAII | Destructor, copy/move semantics, resource management |
| 07_Friends_Functors | Friend functions/classes, callable objects |
MODULE 6: ADVANCED OOP (Week 10)
06_Advanced_OOP/
| Topic | Description |
|---|---|
| 01_Abstract_Classes | Pure virtual functions, interfaces |
| 02_Virtual_Inheritance | Diamond problem solution |
| 03_Object_Relationships | Composition, aggregation, association |
MODULE 7: TEMPLATES (Weeks 11-12)
07_Templates/
| Topic | Description |
|---|---|
| 01_Function_Templates | Generic functions |
| 02_Class_Templates | Generic classes |
| 03_Advanced_Templates | Variadic templates, SFINAE, concepts |
MODULE 8: STL (Weeks 13-15)
08_STL/
| Topic | Description |
|---|---|
| 01_Containers | vector, list, deque, map, set, unordered_* |
| 02_Iterators | Categories, operations, custom iterators |
| 03_Algorithms | sort, find, transform, accumulate, etc. |
MODULE 9: ADVANCED TOPICS (Week 16)
09_Advanced_Topics/
| Topic | Description |
|---|---|
| 01_File_Handling | File streams, text/binary I/O |
| 02_Exceptions | try/catch/throw, custom exceptions, RAII |
| 03_Modern_Cpp | C++11/14/17/20/23 features including: |
| β’ Concepts, Ranges, Coroutines | |
| β’ std::format, std::span, std::expected | |
| β’ Three-way comparison (spaceship operator) | |
| β’ Modules, consteval, deducing this |
MODULE 10: EXPERT TOPICS (Weeks 17-20)
10_Expert_Topics/
| Topic | Description |
|---|---|
| 01_Multithreading | threads, mutex, condition_variable, async/future |
| 02_Networking | Sockets, TCP/UDP, client-server |
| 03_Design_Patterns | Creational, structural, behavioral patterns |
| 04_Graphics | SFML basics, game loop, sprites |
MODULE 11: BUILD TOOLS & TESTING (Week 21)
11_Build_Tools_Testing/
| Topic | Description |
|---|---|
| 01_CMake | Cross-platform build system, CMakeLists.txt |
| 02_Debugging | GDB commands, breakpoints, memory inspection |
| 03_Unit_Testing | Google Test framework, assertions, fixtures |
π Each Topic Contains
| File | Purpose |
|---|---|
README.md | Theory, concepts, ASCII diagrams, reference guide |
examples.cpp | Working code demonstrations |
exercises.cpp | Practice problems with answer keys |
π― Learning Tips
- Type the code yourself - Don't copy-paste, muscle memory matters
- Experiment - Modify examples and see what happens
- Debug actively - Learn to read error messages
- Build projects - Apply concepts in real scenarios
- Review regularly - Spaced repetition helps retention
π οΈ Prerequisites
- A C++ compiler (g++, clang++, or MSVC)
- A text editor or IDE (VS Code recommended)
- Basic computer literacy
π¦ Special Compilation Flags
# For Multithreading (Module 10)
g++ -std=c++17 -pthread file.cpp -o file
# For Graphics/SFML (Module 10)
sudo apt install libsfml-dev
g++ -std=c++17 file.cpp -lsfml-graphics -lsfml-window -lsfml-system -o file
# For Unit Testing with Google Test (Module 11)
g++ -std=c++17 file.cpp -lgtest -lgtest_main -pthread -o test
# For C++20/23 features (Module 9)
g++ -std=c++20 file.cpp -o file
g++ -std=c++23 file.cpp -o file # Requires GCC 13+ or Clang 17+
π Progress Tracker
- Module 1: Foundations (7 topics)
- Module 2: Working With Data (5 topics)
- Module 3: Functions (5 topics)
- Module 4: Pointers & Memory (4 topics)
- Module 5: OOP Basics (7 topics)
- Module 6: Advanced OOP (3 topics)
- Module 7: Templates (3 topics)
- Module 8: STL (3 topics)
- Module 9: Advanced Topics (3 topics)
- Module 10: Expert Topics (4 topics)
- Module 11: Build Tools & Testing (3 topics)
Total: 11 Modules, 47 Topics
πΊοΈ Visual Learning Path
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β C++ LEARNING ROADMAP β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β BEGINNER INTERMEDIATE ADVANCED β
β ββββββββ ββββββββββββ ββββββββ β
β β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β βModule 1 β βModule 5 β βModule 9 β β
β βFoundationsββββββββββββΊβOOP BasicsββββββββββββΊβModern C++β β
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ β
β β β β β
β βΌ βΌ βΌ β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β βModule 2 β βModule 6 β βModule 10 β β
β βData TypesββββββββββββΊβAdv. OOP ββββββββββββΊβExpert β β
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ β
β β β β β
β βΌ βΌ βΌ β
β ββββββββββββ ββββββββββββ ββββββββββββ β
β βModule 3 β βModule 7 β βModule 11 β β
β βFunctions ββββββββββββΊβTemplates ββββββββββββΊβBuild/Testβ β
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββββββββ β
β β β β
β βΌ βΌ β
β ββββββββββββ ββββββββββββ β
β βModule 4 β βModule 8 β β
β βPointers ββββββββββββΊβSTL β β
β ββββββββββββ ββββββββββββ β
β β
β Estimated Time: 20-24 weeks (part-time study) β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Let's begin your C++ journey! Start with 01_Foundations/01_Introduction/
Happy Coding! π