C++ High Performance

Are you a legacy C++ developer wanting to learn modern C++? This course comprehensively covers modern C++.

Advanced

174 Lessons

50h

Certificate of Completion

Are you a legacy C++ developer wanting to learn modern C++? This course comprehensively covers modern C++.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

2 Assessments
404 Playgrounds
14 Quizzes

This course includes

2 Assessments
404 Playgrounds
14 Quizzes

Course Overview

This course focuses on one major aspect that distinguishes professional C++ developers from beginners, which is understanding code from top to bottom and comprehending what is truly happening under the hood. Through examples and exercises, we’ll equip you with the skills needed to become a top-tier C++ developer capable of handling even the most demanding performance challenges. The course begins with performance analysis, memory management techniques, efficient concurrency handling, and advanced template...Show More

TAKEAWAY SKILLS

C++

Programming Language

C++ Concepts

C++ Templates

What You'll Learn

Proficiency in identifying and resolving performance bottlenecks in C++ code

Hands-on experience with optimizing memory management and concurrency

Knowledge of modern C++ features and best practices for high performance

Mastery of advanced template usage and parallel algorithms

Practical experience with modern memory management and multithreading techniques

Knowledge of new C++20 features for better performance

What You'll Learn

Proficiency in identifying and resolving performance bottlenecks in C++ code

See more

Course Content

1

Getting Started

This chapter introduces modern C++ for writing efficient apps, covers course content and prerequisites, and explores Google Test and Benchmark libraries.
2

A Brief Introduction to C++

In this chapter, you will explore C++ basics, key features, comparisons with other languages, value semantics, const correctness, and object ownership.
3

Essential C++ Techniques

This chapter covers essential C++ techniques like type deduction, move semantics, error handling, const propagation, lambdas, and resource management.
4

Analyzing and Measuring Performance

In this chapter, you will learn to analyze performance using Big O notation, time complexity, amortized complexity, and microbenchmarking examples.
5

Data Structures

This chapter covers data structures, memory properties, containers, deques, lists, associative containers, hash functions, and performance with parallel arrays.
6

Algorithms

13 Lessons

This chapter teaches you to use C++ standard library algorithms to solve problems, leveraging iterators and ranges, and discover best practices.
7

Ranges and Views

7 Lessons

In this chapter, you will explore the Ranges library, learn about views and their lazy iterations, and understand their use in the Standard Library.
8

Memory Management

14 Lessons

This chapter covers memory management basics, including computer and process memory, object storage, alignment, pointers, and custom allocators.

C++ Essentials Exam

Assessment

9

Compile-Time Programming

14 Lessons

In this chapter, you will learn to use template metaprogramming, type traits, and constant expressions to improve compile-time programming and error-checking.
10

Essential Utilities

11 Lessons

This chapter explores key C++ utilities, including std::optional, tuples, variadic templates, and std::variant, with real-world examples for practical use.
11

Proxy Objects and Lazy Evaluation

8 Lessons

In this chapter, you will discover how to use proxy objects and lazy evaluation to improve performance, including avoiding unnecessary objects and computations.
12

Concurrency

15 Lessons

In this chapter, you will learn about concurrency, covering basics to advanced techniques, error handling, C++20 synchronization, and performance tips.
13

Coroutines and Lazy Generators

12 Lessons

In this chapter, you’ll explore C++ coroutines, stackless vs. stackful types, their execution, and generators, with examples and solutions to issues.
14

Asynchronous Programming with Coroutines

8 Lessons

This chapter covers asynchronous programming with coroutines, including awaitable types, task creation, synchronous waiting, callback wrapping, and Boost.Asio.
15

Parallel Algorithms

13 Lessons

In this chapter, you will learn how to use parallel algorithms to improve performance, including std::transform(), synchronization, and optimization techniques.

C++ Advanced Concepts Exam

Assessment

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor

Looking for something else?

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath