C++ SELF
Become an in-demand C++ developer — from your first program to professional projects. 72 levels of practice: memory management, multithreading, metaprogramming, C++20/23. 1000+ tasks with auto-validation. Gamedev, systems programming, embedded, finance — C++ opens doors to high-paying development!
- Level 1
Unavailable Web-IDE and First Program - Level 2
Unavailable Integers, Strings, and Input - Level 3
Unavailable Conditional Statements and Logic - Level 4
Unavailable Loops, break/continue - Level 5
Unavailable IDE Setup and First Project - Level 6
Unavailable Variables, Types, and Expressions - Level 7
Unavailable Initialization and Literals - Level 8
Unavailable Numeric Types and Overflows - Level 9
Unavailable Strings and Basic Parsing - Level 10
Unavailable Floating-Point Numbers and Formatting - Level 11
Unavailable Arrays and std::array - Level 12
Unavailable std::vector and Iteration - Level 13
Unavailable Iteration and Iterators - Level 14
Unavailable Functions and Signatures - Level 15
Unavailable Function Parameters and Return Values - Level 16
Unavailable Recursion and Call Stack - Level 17
Unavailable String Parsing - Level 18
Unavailable View Types (string_view, span) - Level 19
Unavailable Structures and Enumerations - Level 20
Unavailable Input Error Handling - Level 21
Unavailable Basic STL Algorithms - Level 22
Unavailable Lambda Expressions - Level 23
Unavailable variant, expected, and Error Policies - Level 24
Unavailable Modifying Collections - Level 25
Unavailable Associative Containers - Level 26
Unavailable Translation Units and namespace - Level 27
Unavailable Header Files - Level 28
Unavailable Preprocessor and Macros - Level 29
Unavailable ODR and Linkage - Level 30
Unavailable Build Stages and Diagnostics - Level 31
Unavailable CMake Basics - Level 32
Unavailable Build Configurations - Level 33
Unavailable CLI Build - Level 34
Unavailable Debugger - Level 35
Unavailable Sanitizers and assert - Level 36
Unavailable Git and GitHub - Level 37
Unavailable Unit Tests and CI - Level 38
Unavailable Memory Models and lifetime - Level 39
Unavailable Pointers - Level 40
Unavailable References and const - Level 41
Unavailable Managing Pointers in Collections - Level 42
Unavailable RAII Principle - Level 43
Unavailable Smart Pointer unique_ptr - Level 44
Unavailable Smart Pointers shared_ptr and weak_ptr - Level 45
Unavailable Copy Management (Rule of Zero/Five) - Level 46
Unavailable Move Semantics - Level 47
Unavailable Optimization and Memory Safety - Level 48
Unavailable Classes and Interfaces - Level 49
Unavailable Constructors and Operators - Level 50
Unavailable Composition and Architecture - Level 51
Unavailable Inheritance and Polymorphism - Level 52
Unavailable Abstract Classes and Interfaces - Level 53
Unavailable Exceptions - Level 54
Unavailable Exception Safety - Level 55
Unavailable Error Handling Policy - Level 56
Unavailable Template Basics - Level 57
Unavailable Type Deduction (CTAD, auto, decltype) - Level 58
Unavailable Concepts - Level 59
Unavailable Advanced Iterators - Level 60
Unavailable Containers and Adapters - Level 61
Unavailable Advanced Algorithms - Level 62
Unavailable std::ranges and views - Level 63
Unavailable File and Stream Operations - Level 64
Unavailable std::filesystem Library - Level 65
Unavailable Working with JSON - Level 66
Unavailable Time and std::chrono - Level 67
Unavailable CLI Arguments and Logging - Level 68
Unavailable Thread Basics (std::thread) - Level 69
Unavailable std::jthread and Safe Cancellation - Level 70
Unavailable Synchronization (mutex) - Level 71
Unavailable Condition Variables (condition_variable) - Level 72
Unavailable Asynchrony and Atomic Operations - Level 73
Unavailable Final Project