Sorry, this page is no longer available
Sorry, this page is no longer available
Sorry, this page is no longer available
Sorry, this page is no longer available
Sorry, this page is no longer available
Sorry, this page is no longer available
Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Pearson
Enroll now

Here's a deal for you

Save money when you learn with a deal that may be relevant to this course.
All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Syllabus

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Activities

Coming soon We're preparing activities for What's New in Modern C++. These are activities you can do either before, during, or after a course.

Career center

Learners who complete What's New in Modern C++ will develop knowledge and skills that may be useful to these careers:
High Frequency Trading Developer
A High Frequency Trading Developer designs and implements ultra-low-latency trading systems that execute orders in milliseconds. This course is exceptionally well-suited for an aspiring High Frequency Trading Developer, where every nanosecond counts. The deep dive into modern C++ features, with a strong focus on writing efficient and high-performance code, is directly applicable. Mastery of multithreading techniques, along with performance-critical concepts like move semantics and smart pointers for granular memory control, is non-negotiable in this field. Understanding advanced features such as variadic templates and concepts further helps in developing highly optimized and sophisticated trading algorithms, providing a critical competitive edge in a demanding environment.
embedded systems developer
An Embedded Systems Developer creates software for specialized computer systems found within larger devices, often with strict resource constraints and real-time requirements. This course is highly relevant for becoming a successful Embedded Systems Developer, as it emphasizes writing efficient and high-performance C++ code. The exploration of move semantics, smart pointers, and memory management techniques is crucial for optimizing code footprint and execution speed, which are critical in embedded environments. Furthermore, understanding multithreading and advanced C++ features allows for the development of responsive and robust real-time applications. This practical knowledge is key for building reliable and performant systems in diverse embedded applications.
Operating System Developer
An Operating System Developer designs, implements, and maintains the core software that manages computer hardware and software resources. This course is exceptionally well-suited for an Operating System Developer, where deep system-level understanding and maximum performance are paramount. The curriculum’s focus on efficient coding, memory management, and advanced C++ features like move semantics, smart pointers, and multithreading is directly applicable to developing robust and performant kernel components, device drivers, and system utilities. Practical knowledge of new C++ syntax and library improvements helps build a foundation for creating safer, more expressive, and high-performance system-level code, which is critical for system stability and responsiveness. This role typically requires an advanced degree.
Compiler Engineer
A Compiler Engineer designs, implements, and optimizes compilers and related tools that translate source code into executable programs. This course is profoundly relevant for an aspiring Compiler Engineer, as it delves into the latest intricacies of the C++ language itself. Understanding modern C++ features such as variadic templates, concepts, and modules provides critical insight into how language constructs are designed and implemented. The focus on writing efficient and high-performance code, alongside exploring new programming paradigms, helps build a foundation for developing robust and optimized compilation pipelines. This deep knowledge of language enhancements is invaluable for improving compiler performance and supporting cutting-edge C++ features. This role typically requires an advanced degree.
Game Developer
A Game Developer is responsible for designing and implementing video games, from core engine architecture to gameplay mechanics. This course offers significant advantages for a Game Developer, as C++ remains the industry standard for high-performance game development. The emphasis on writing efficient and modern C++ code, including critical topics like move semantics, smart pointers, and multithreading, directly translates to creating smooth, responsive, and visually stunning gaming experiences. Understanding memory management and leveraging new language features helps build a foundation for optimizing game engines, rendering pipelines, and complex physics simulations, ensuring games run flawlessly across various platforms and hardware.
Quantitative Developer
A Quantitative Developer designs, implements, and optimizes financial models and trading strategies, often requiring high-performance computing. This course provides a robust foundation for a Quantitative Developer, particularly in fields demanding computational efficiency and precision. The focus on writing efficient and modern C++ code, including the application of multithreading and advanced memory management with smart pointers, directly supports the development of complex analytical tools and simulation engines. Understanding functional programming techniques and new C++ syntax helps in translating intricate mathematical models into production-ready code, ensuring both accuracy and speed. This expertise is crucial for building cutting-edge financial systems.
Driver Developer
A Driver Developer writes software that enables operating systems to interact with hardware devices, requiring deep system-level understanding. This course is highly beneficial for a Driver Developer, as it focuses on the core principles of writing efficient and high-performance C++ code, which is critical for low-level hardware interaction. The curriculum's exploration of memory management, smart pointers, and value categories is essential for handling device memory and resources safely and effectively. Understanding modern C++ features helps build a foundation for creating robust, performant, and reliable device drivers that interface seamlessly with hardware, ensuring optimal system functionality and stability. This role typically requires an advanced degree.
Library Developer
A Library Developer specializes in designing, implementing, and maintaining reusable software components and frameworks that other developers can utilize. This course is incredibly valuable for a Library Developer, as it directly addresses the best practices and advanced features essential for creating robust, efficient, and modern C++ libraries. Mastery of move semantics, smart pointers for resource management, functional programming techniques, and multithreading ensures that the libraries are high-performance and thread-safe. Understanding features like variadic templates, concepts, and modules helps build a foundation for designing flexible, expressive, and future-proof APIs that adhere to the latest C++ standards, fostering wide adoption and ease of use.
Robotics Software Engineer
A Robotics Software Engineer develops the software that controls robots, from low-level hardware interaction to high-level autonomous decision-making. This course is highly beneficial for a Robotics Software Engineer, as C++ is widely used for its performance and control capabilities in robotics applications. The focus on writing efficient and high-performance C++ code, understanding multithreading for real-time operations, and mastering memory management with smart pointers, is critical for developing responsive and reliable robotic systems. Practical insights into new C++ standards and best practices help build a foundation for integrating sensors, controlling actuators, and implementing complex algorithms with precision and speed, ensuring robust robotic performance.
Software Engineer
A Software Engineer designs, develops, and maintains software applications and systems across various domains. This course is exceptionally valuable for an aspiring Software Engineer, particularly one aiming for roles where performance, reliability, and advanced programming techniques are paramount. By mastering the key enhancements in modern C++ such as move semantics, smart pointers, and multithreading, learners will be equipped to write high-performance, robust code. The focus on efficient coding and memory management, alongside adopting best practices like functional programming with lambdas, directly supports the creation of sophisticated and maintainable software solutions. This comprehensive understanding helps build a foundation for developing complex systems efficiently.
Backend Developer
A Backend Developer builds and maintains the server-side logic, databases, and APIs that power web and mobile applications. This course is highly relevant for a Backend Developer, especially when working on systems requiring high throughput, low latency, or direct hardware interaction. The emphasis on modern C++ features like multithreading, efficient memory management with smart pointers, and functional programming techniques equips learners to develop resilient and scalable backend services. The practical insights into writing high-performance code and adopting best practices help build a foundation for creating robust server architectures, ensuring optimal resource utilization and responsiveness for demanding applications.
Scientific Software Engineer
A Scientific Software Engineer develops and optimizes software for scientific research, data analysis, and high-performance computing simulations. This course is very relevant for a Scientific Software Engineer, as C++ is a cornerstone language for computationally intensive tasks in various scientific domains. The course's emphasis on writing efficient and high-performance C++ code, along with topics like multithreading and memory management with smart pointers, is directly applicable to accelerating complex simulations and processing vast datasets. Understanding modern C++ features and programming paradigms helps build a foundation for creating robust, scalable, and numerically accurate scientific applications, crucial for cutting-edge research and innovation.
Graphics Programmer
A Graphics Programmer specializes in developing software that generates and renders visual content, often for games, simulations, or scientific visualization. This course offers significant benefits for a Graphics Programmer, as C++ is the predominant language for high-performance graphics engines and real-time rendering. The emphasis on writing efficient C++ code, including techniques for memory management with smart pointers and leveraging multithreading for parallel processing, is crucial for achieving smooth frame rates and complex visual effects. Understanding modern C++ features helps build a foundation for optimizing rendering pipelines, managing large data sets, and implementing advanced shading techniques, ensuring visually stunning and performant applications.
Network Programmer
A Network Programmer designs and implements software for network communication, including protocols, server applications, and client-side networking. This course is valuable for a Network Programmer, particularly when developing high-performance, low-latency network services where C++ is often chosen for its efficiency. The course's coverage of multithreading is directly applicable to handling concurrent network connections and ensuring responsiveness. Additionally, principles of efficient coding, memory management with smart pointers, and adopting modern C++ best practices help in building reliable and scalable network infrastructure. This knowledge helps build a foundation for developing robust network applications that can handle demanding communication loads efficiently.
Audio Software Engineer
An Audio Software Engineer develops applications for digital audio processing, synthesis, and production, often requiring low latency and high performance. This course is valuable for an Audio Software Engineer, as C++ is frequently employed in demanding audio applications where processing speed and efficiency are paramount. The exploration of multithreading techniques, efficient memory management with smart pointers, and modern C++ features directly helps in developing high-performance audio engines, plugins, and digital signal processing algorithms. Adopting best practices for writing expressive and high-performance code, as covered in the course, helps build a foundation for creating responsive and stable audio software that meets the stringent requirements of professional audio environments.

Reading list

We haven't picked any books for this reading list yet.
Provides a quick reference to the C++20 standard library. It useful resource for developers who want to learn about the new features in C++20.
Provides a comprehensive overview of the C++ standard library. It valuable resource for developers who want to learn about the standard library and how to use it effectively.
Teaches modern C++ design techniques, such as generic programming and design patterns. It valuable resource for developers who want to write high-quality, reusable C++ code.
Provides a comprehensive guide to C++ templates. It valuable resource for developers who want to learn about templates and how to use them effectively.
Provides a set of coding standards for C++. It valuable resource for developers who want to write high-quality, maintainable C++ code.
Provides a set of programming puzzles and solutions in C++. It valuable resource for developers who want to improve their C++ skills.
Cornerstone for understanding how to effectively use the features introduced in C++11 and C++14. It provides practical, guideline-based advice that is essential for writing correct, efficient, and maintainable modern C++ code. Widely regarded as a must-read for intermediate to advanced C++ developers, it solidifies understanding of key modern idioms and best practices.
Authored by the creator of C++, this is the definitive and comprehensive reference to the language, updated for C++11. While dense, it provides deep insight into the language's design and features. It is an invaluable resource for gaining a thorough understanding of C++ and is often used as a reference by professionals and in academic settings.
An excellent comprehensive introduction to C++ for beginners and those with some programming experience, covering C++11 features. It provides a solid foundation in the core language and standard library. is widely used as a textbook in universities and is highly recommended for gaining a broad understanding of C++.
Written by Bjarne Stroustrup, this book serves as a general introduction to programming using C++, suitable for beginners with no prior coding experience. The latest edition is updated to cover features from C++20 and C++23. It focuses on fundamental programming principles alongside learning C++.
This concise book provides a quick overview of all of standard C++ for experienced programmers, updated to C++17. It is ideal for getting a high-level understanding of the language's features without delving into exhaustive detail. It serves as a useful starting point or a quick refresher on modern C++.
Is the authoritative guide to the C++ concurrent and parallel programming facilities, covering C++11, C++14, and C++17. It dives deep into threads, mutexes, futures, and other concurrency tools. Essential for anyone writing multithreaded applications in modern C++, it key resource for contemporary C++ development.
A classic in the C++ literature, this book provides 55 essential guidelines for writing better C++ programs. While it primarily covers C++98, the principles and advice on class design, resource management, and efficiency are still highly relevant and foundational for any C++ developer. It's considered a must-read for solidifying C++ fundamentals.
Focuses specifically on the Standard Template Library, providing 50 practical guidelines for using the STL effectively. Although based on C++98, the concepts and advice on containers, iterators, and algorithms remain largely applicable to modern C++. It's an excellent resource for deepening understanding of the STL.
A comprehensive tutorial and reference to the C++ standard library, covering C++11. It provides detailed explanations and examples for the various components of the STL and other library features. is invaluable as a reference for daily C++ programming and for deepening understanding of the tools available in the standard library.
Provides a thorough and detailed exploration of the features introduced in the C++20 standard. It is essential for developers looking to utilize the latest capabilities of the language, including Concepts, Ranges, Coroutines, and Modules. It serves as a comprehensive guide to contemporary C++.
Targeted at professional developers, this book offers broad coverage of C++ and its use in real-world applications, updated for C++23. It includes topics on software design, best practices, and advanced features like concurrency and networking. It's a solid resource for deepening understanding and applying C++ professionally.
Offers a collection of recipes for solving common programming problems using modern C++ features (up to C++20). It's a practical guide for developers looking for solutions and examples for specific tasks. Useful for gaining hands-on experience with modern C++ idioms.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser