C++
Full course · 21 lessonsC++ is a systems programming language that gives you complete control over memory and hardware. It powers game engines, browsers (Chrome), operating systems, embedded devices, and high-frequency trading. These are the definitive free resources — vetted, current, and complete.
Getting Started with C++
Set up a C++ toolchain with g++, compile/run, namespaces, and I/O streams.
Variables and Fundamental Types
Fundamental types, const/constexpr, auto deduction, fixed-width integers.
Operators and Expressions
Arithmetic, comparison, logical, bitwise operators, precedence.
Control Flow
if/else, switch, loops, range-based for, and jump statements.
Functions and Overloading
Declarations vs definitions, overloading, default arguments, const references.
Arrays, Strings, and Vectors
C arrays, std::string, std::vector, and multi-dimensional arrays.
Pointers and References
Pointer vs reference semantics, pointer arithmetic, nullptr.
Classes and Objects
Class definitions, access specifiers, constructors, static members, this.
Constructors, Destructors, and Copy Semantics
RAII, copy constructors, move semantics, rule of three.
Operator Overloading
Overload operators, comparison operators, increment/decrement.
Inheritance and Polymorphism
Base/derived classes, virtual functions, abstract classes.
Interfaces and Abstract Classes
Abstract classes as interfaces, multiple inheritance, polymorphic collections.
Templates
Function templates, class templates, concepts, variadic templates.
STL Containers
vector, map, unordered_map, set, deque, queue, stack.
STL Algorithms and Iterators
sort, reverse, find, count_if, accumulate, lower_bound, binary_search.
Smart Pointers
unique_ptr, shared_ptr, weak_ptr, ownership semantics.
Exception Handling and RAII
try/catch, throwing, custom exceptions, RAII cleanup.
Move Semantics and Rvalue References
std::move, rvalue references, perfect forwarding, move constructors.
Lambdas and Functional Programming
Lambda expressions, captures, std::function, higher-order patterns.
Concurrency
std::thread, mutex, lock_guard, async/future, condition_variable.
Modern C++: C++17/20 Features
constexpr, structured bindings, variant, optional, modern idioms.
Free Books
Official Documentation
cppreference.com
The definitive exhaustive technical reference for the C++ language and Standard Library, updated for C++20/23/26.
isocpp.org
The central hub for standard C++ with FAQ, committee updates, and ISO standard announcements.
C++ Standard Proposals
Track the evolution of C++ through ISO committee papers and feature proposals.
Interactive Courses
Video Courses
Practice & Challenges
Exercism — C++ Track
100 structured coding exercises across 19 concepts designed to teach idiomatic C++ with free human mentoring.
HackerRank — C++ Domain
Drill specific subdomains like classes, inheritance, strings, and the STL.
Codewars — C++ Kata
Solve community-created challenges across hundreds of difficulty levels.

