Tools
- GNU/Linux [Tutorial]
- Filesystem
- Terminal
- standard input/output
- Text Editor
- Configuring
- Terminal
- Compile
- Debug
- Build systems
- #include statements
- headers/sources
- Libraries
- Compilation flags
- CMake
- 3rd party libraries
- Git [Tutorial]
- Homework submissions [Tutorial]
- Gdb [Tutorial]
- Web-based tools
- Quick Bench
- Compiler Explorer
- Cpp insights
- Cppreference.com
- Clang-tools [Tutorial]
- Clang-format
- Clang-tidy
- Clangd
- Cppcheck
- Google test [tutorial]
- OpenCV [tutorial]
Core C++
- C++ basic syntax
- Variables
- Operators
- Scopes
- Built-in types
- Control structures (if, for, while)
- streams
- Input parameters
- C++ strings
- Functions
- Function overloading
- Pass by value / Pass by reference
- Namespaces
- Containers
- Iterators
- STL Algorithms
- Exceptions
- Utilities
- filesystem
- I/O Files
- Classes introduction
Modern C++
- enum classes
- Operator overloading
- Const correctness
- typedef/using
- static variables /methods
- Move Semantics
- Special Functions
- Inheritance
- Function Overriding
- Abstract classes
- Interfaces
- Strategy Pattern
- Singleton Pattern
- Polymorphism
- Typecasting
- Memory management
- Stack vs Heap
- Pointers
- new/delete
- this pointer
- Memory issues
- RAII
- Smart pointers
- Generic programming
- Template functions
- Template classes
- Template argument deduction
- Template partial specialization
- Template parameters
- constexpr
- Static code generation