Follow this structured 40-day plan to go from C++ beginner to confident programmer. Each day includes learning topics, practice exercises, and project work.
| Day | Topic | Learn | Practice | Key Problems/Projects |
|---|---|---|---|---|
| Week 1: C++ Fundamentals | ||||
| 1 | C++ Basics | 1.5 hrs | 1 hr | Hello World, Namespaces, I/O streams |
| 2 | Variables & Types | 1.5 hrs | 1.5 hrs | Type sizes, auto keyword, type conversions |
| 3 | Operators & Expressions | 1.5 hrs | 1.5 hrs | Operator overloading basics, constexpr |
| 4 | Control Flow | 2 hrs | 2 hrs | Range-based for loops, switch with enums |
| 5 | Functions | 2 hrs | 2 hrs | Function overloading, default args, lambdas |
| 6 | References & Pointers | 2 hrs | 2 hrs | Reference vs pointer, const correctness |
| 7 | Project | 3 hrs | Scientific Calculator | |
| Week 2: OOP Fundamentals | ||||
| 8 | Classes & Objects | 2 hrs | 2 hrs | Class implementation, constructors |
| 9 | Encapsulation | 2 hrs | 2 hrs | Getters/setters, access modifiers |
| 10 | Inheritance | 2.5 hrs | 2.5 hrs | Base/derived classes, protected members |
| 11 | Polymorphism | 2.5 hrs | 2.5 hrs | Virtual functions, abstract classes |
| 12 | Operator Overloading | 2 hrs | 2 hrs | Overloading common operators |
| 13 | Friends & Static | 2 hrs | 2 hrs | Friend functions, static members |
| 14 | Project | 4 hrs | Bank Account System | |
| Week 3: Memory & Advanced OOP | ||||
| 15 | Dynamic Memory | 2 hrs | 2 hrs | new/delete vs malloc/free |
| 16 | Copy Control | 2.5 hrs | 2.5 hrs | Rule of Three/Five |
| 17 | Move Semantics | 2.5 hrs | 2.5 hrs | rvalue references, std::move |
| 18 | Templates | 2.5 hrs | 2.5 hrs | Function/class templates |
| 19 | Exception Handling | 2 hrs | 2 hrs | try-catch blocks, custom exceptions |
| 20 | Multiple Inheritance | 2 hrs | 2 hrs | Virtual inheritance, diamond problem |
| 21 | Project | 4 hrs | Shape Hierarchy with Polymorphism | |
| Week 4: STL & Modern C++ | ||||
| 22 | Containers I | 2 hrs | 2 hrs | vector, list, deque |
| 23 | Containers II | 2 hrs | 2 hrs | map, set, unordered_map |
| 24 | Algorithms | 2.5 hrs | 2.5 hrs | sort, find, transform |
| 25 | Iterators | 2 hrs | 2 hrs | Iterator categories, custom iterators |
| 26 | Smart Pointers | 2.5 hrs | 2.5 hrs | unique_ptr, shared_ptr, weak_ptr |
| 27 | Lambda Expressions | 2 hrs | 2 hrs | Capture clauses, with STL |
| 28 | Project | 4 hrs | Student Database with STL | |
| Week 5: Advanced Topics & Projects | ||||
| 29 | File I/O | 2 hrs | 2 hrs | fstream, serialization |
| 30 | Multithreading | 2.5 hrs | 2.5 hrs | thread, mutex, async |
| 31 | Design Patterns | 2.5 hrs | 2.5 hrs | Singleton, Factory, Observer |
| 32 | Move Semantics II | 2 hrs | 2 hrs | Perfect forwarding, std::forward |
| 33 | Concepts (C++20) | 2 hrs | 2 hrs | Template constraints |
| 34-37 | Final Project | 12 hrs | Inventory Management System | |
| 38-40 | Optimization | 6 hrs | Profiling, constexpr, benchmarking | |