Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Modern C++: From First Program to Concurrency and Templates
Rating: 4.3 out of 5(17 ratings)
217 students

Modern C++: From First Program to Concurrency and Templates

Master C++17/20 with RAII, move semantics, the STL, concepts, ranges, threads, and the zero-overhead principle
Last updated 6/2026
English

What you'll learn

  • Write idiomatic modern C++ using auto, range-based for, and structured bindings from day one
  • Master the STL containers, iterators, and algorithms that solve 90 percent of real problems
  • Apply RAII and smart pointers to manage memory and resources without leaks or double-frees
  • Use move semantics, perfect forwarding, and value categories to write cost-aware code
  • Build generic components with templates, concepts, and compile-time evaluation via constexpr
  • Write safe concurrent programs with threads, mutexes, atomics, std::async, and futures
  • Compose data pipelines using C++20 ranges, std::variant, and std::optional
  • Reason about the stack, the heap, object lifetimes, and the zero-overhead principle
  • Read and debug existing C++ codebases across embedded, game, and systems domains
  • Navigate the toolchain — compilers, standards, and ISO C++ — with practical confidence

Course content

11 sections70 lectures5h 18m total length
  • From C With Classes to ISO C++4:45

    You'll trace the story of C++ from Bjarne Stroustrup's 1979 "C with Classes" experiments at Bell Labs through Cfront, the 1998 ISO standard, and the modern cadence of C++11 through C++23. You'll see each milestone as an answer to a real engineering pressure of its time, leaving with a feel for C++ as a living language shaped by decades of trade-offs between performance, abstraction, and backward compatibility.

  • Hello, World and the Anatomy of a Translation Unit6:06

    You'll write the smallest possible C++ program — an iostream include, a main function, and a single std::cout line — and run it to see your message appear in the console. Along the way you'll learn what every token is doing for you: the preprocessor, the std namespace, main as the entry point, and the return value that main hands back to the operating system.

  • Variables, Initialization, and the Auto Keyword6:25

    You'll declare variables in all three styles modern C++ supports — copy, direct, and uniform brace initialization — and let the auto keyword deduce types for you. You'll see brace initialization catch a narrowing conversion that the older syntaxes would silently swallow, and learn to predict exactly which type the compiler picks behind auto.

  • The Fundamental Types and Their Sizes4:19

    You'll run a program that prints the sizeof and numeric limits for int, long, float, double, char, and bool, making "fixed-width" concrete on your own machine. You'll also meet the fixed-size aliases like int16_t and uint32_t from cstdint that production C++ code reaches for instead of the built-in types.

  • Arithmetic, Comparison, and Logical Operators7:01

    You'll put two numbers through every arithmetic, relational, and logical operator and print human-readable verdicts from the results. You'll learn a classic trap along the way: why integer division truncates, and how division and the modulo operator behave when numbers don't split evenly.

Requirements

  • Basic programming experience in any language (variables, loops, functions)
  • A computer running Windows, macOS, or Linux with at least 4 GB of RAM
  • Willingness to install a modern C++ compiler such as GCC, Clang, or MSVC
  • Comfort with using a terminal or command prompt for build commands
  • No prior C or C++ knowledge required — we build everything from first principles

Description

This course contains the use of artificial intelligence.

C++ runs the world you do not see. The game engine rendering your favorite title, the high-frequency trading platform clearing billions in trades before lunch, the browser tab you are reading this in, the firmware in your car's brake system, the database holding your bank balance, the rocket guidance computer that just landed a booster on a barge — all of it is C++. Half a century after Bjarne Stroustrup glued classes onto C, the language is not just alive; it is the quiet giant of modern computing, the one we reach for when nanoseconds matter and abstraction must cost zero. Learning it well is one of the highest-leverage skills a programmer can acquire.

This course takes you from your very first translation unit to the modern C++20 toolkit across six focused sections, without skipping the parts that actually matter. Each coding section opens with a short concept lecture — the history, the big picture, the "why" behind the feature — and then drops you straight into hands-on coding that puts the idea to work. You will write output, variables, the fundamental types, and the operators that bind them, then move through control flow, functions, lambdas, and the STL containers that every working C++ engineer uses daily. You will write your own threads, mutexes, atomics, smart pointers, and exception-safe code, build generic components with templates and concepts, and compose data with ranges, std::variant, std::optional, and constexpr. The course then closes with a run of deeper conceptual lectures — RAII, templates and compile-time computation, move semantics, design patterns reimagined in modern C++, and the specialized domains C++ dominates — that tie everything you have built back to the one question that defines the language: what does this actually cost at runtime?

This course is built for programmers who want C++ as a serious professional tool — career switchers from Python or Java, CS students whose courses skimmed the modern features, embedded and game developers leveling up, and self-taught coders ready for the language that powers infrastructure. You need basic programming familiarity in any language; no prior C or C++ experience is assumed. By the end you will read modern C++ codebases fluently, write idiomatic RAII-driven code, reason about ownership and lifetimes, use templates and concepts without fear, and ship concurrent programs that do not crash at 3 a.m.

What sets this course apart is its refusal to teach C++ as a museum piece. We do not start with raw pointers and char arrays and apologize for them later; we start with auto, vectors, range-based for, and smart pointers, then peel back layers to show what is underneath and why it matters. You will learn the language as it is written in 2026 production code, with the historical context to understand the footguns and the engineering judgment to avoid them. Enroll now and start writing C++ the way the people who maintain compilers, kernels, and trading systems actually write it.

Who this course is for:

  • Python, Java, or JavaScript developers adding a systems language to their toolkit
  • Computer science students whose coursework skipped modern C++ features
  • Embedded, robotics, and firmware engineers ready to move beyond C
  • Game developers, graphics programmers, and engine contributors leveling up
  • Self-taught programmers preparing for backend, HFT, or systems interviews