Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

Ultimate C++: Basic Modern C++20 to Advanced Multithreading

via Udemy

Overview

C++20, Classes, Pointers, STL, Templates, Multithreading, Concurrent Design, Lock Free Data structures, Performance Tool

What you'll learn:
  • C++ Fundamentals: Grasp the core concepts including variables, data types, arithmetic operations, and basic I/O.
  • Design Your Own Types: Learn the art of defining custom types using classes, structures, unions, and enumerations.
  • Understanding Modularity: Organize and structure your code effectively using namespaces, source files, and headers. Introduction to C++20 Modules feature.
  • Dive into OOP: Get introduced to the world of Object-Oriented Programming in C++ and understand classes, constructors, member functions, and overloading.
  • Understand Essential Operations: Demystify copy and move semantics and lay the foundation for the Rule of Three/Five.
  • Harness the Power of Templates: Delve into generic programming with C++ templates, ensuring type safety without limitations.
  • Concepts (C++20) and Generic Programming: Dive deeper into ensuring type-safety at compile-time through concepts.
  • Explore the C++ Library: Get familiarized with the C++ Standard Library, from containers and algorithms to a multitude of utilities.
  • Strings and Beyond: Master string operations, string_view(C++17) and harness the power of regular expressions.
  • Familiarize with I/O Streams: Navigate the world of I/O streams for efficient and formatted input-output operations.
  • Container Proficiency: Explore powerful container classes such as vector, list, and map.
  • Algorithmic Prowess: Understand the nuances of how algorithms work with containers and iterators.
  • C++ Utilities: Equip yourself with knowledge on smart pointers, time/date utilities, and more.
  • Concurrency & Parallelism: Get started with the concurrent world of C++, learning about threads, tasks, and synchronization mechanisms.
  • 200+ coding exercises and assignments to immediately apply the learned knowledge.
  • Details of C++ memory model on which atomics are built
  • Concepts of memory barriers and memory order in C++
  • Using Modern C++ to design lock free algorithms with C++ atomics and memory model
  • Importance of sequential consistency in concurrency
  • Getting high performane using C++ memory model
  • External factors influencing performance of atomics
  • Tools to use in production while working with C++ in production

"Ultimate C++: From Basic Modern C++20 to Advanced Multithreading" is your comprehensive pathway to mastering modern C++ development. This expertly crafted, almost 24-hour course transforms foundational knowledge into professional-grade programming skills, featuring cutting-edge C++20 features and industry-standard multithreading practices used by top tech companies.


Master three essential pillars of professional C++ development:


1. Modern C++ Mastery

- Latest C++20 features and best practices

- Powerful object-oriented programming techniques

- Professional-grade STL implementation

- Smart memory management for leak-free code

- Industry-standard error handling strategies


2. Professional Development Skills

- Advanced template programming techniques

- High-performance STL algorithms

- Production-ready I/O handling

- Generic programming for scalable solutions

- Modern string processing and regex mastery


3. Enterprise-Level Threading

- Production-tested multithreading patterns

- Advanced memory models and synchronization

- High-performance lock-free programming

- Thread-safe data structure design

- Performance optimization secrets


What sets this course apart:

- Almost 300 carefully structured video lectures

- 150+Real-world coding exercises

- Strategic knowledge-check quizzes

- Overview of using essential production tools (CMake, Git, debugging) in context of C++

- Aperformance tools overview with demos.

- Industry-relevant project examples


Perfect for ambitious developers with basic programming knowledge, this course requires only a desktop browser - no complex IDE setup is needed!


Whether you're aiming to build high-performance applications, ace technical interviews, or modernize legacy systems, this course delivers the practical skills needed in today's competitive tech landscape. Join thousands of successful students who've transformed their C++ development capabilities through this comprehensive learning journey. (Please watch the course overview for a detailed course roadmap.)


More Details about Intermediate and Advanced Content:

This intermediate-level content covers advanced concurrency and memory models in C++, focusing on writing high-performance concurrent programs. Students will explore the C++ memory model, including Sequential Consistency-Data Race Free (SC-DRF) guarantees, memory barriers, and atomics. The material delves into efficient synchronization mechanisms, lock-free and wait-free algorithms, and techniques for avoiding performance pitfalls like false sharing in caches.

The modules emphasize the practical implementation of concurrent data structures using modern C++20 features, including parallel algorithms, atomic operations, and enhanced memory models. Students will learn to design and implement thread-safe data structures like queues, stacks, hash tables, and trees, while mastering essential performance analysis tools such as perf, Valgrind, Intel Vtune, Google Orbit, and gdb. This content is particularly suited for experienced C++ developers looking to enhance their concurrent programming skills and create scalable applications for multi-core systems.


Note: While accessible to beginners, this course rewards dedicated learners ready to master professional C++ development.

Syllabus

  • Introduction
  • [Absolute Beginner] Getting started with C++ and basic learning online tools
  • Course Project - Start with the bigger picture in mind
  • [Beginner] Basic Features of C++ present in all C++ programs
  • [Beginner] User Defined Types in Modern C++
  • [Beginner] Modularity
  • [Beginner] Error Handling in C++
  • [Beginner] Classes
  • [Beginner] Essential operations with classes necessary to build programs
  • [Intermediate] Templates
  • [Advanced] Concepts ( C++20) and Generic Programming
  • [Beginner] C++ Standard Library Overview
  • [Beginner] Strings and Regular Expressions
  • [Intermediate] Input and Output facilities in C++
  • [Intermediate] Container (STL/ Standard Template Library)
  • [Intermediate] Algorithms (STL/Standard Template Library)
  • [Intermediate] Ranges ( C++20)
  • [Beginner/Intermediate] Pointers and Container (non STL)
  • [Intermediate] Utilities provided by C++ standard library
  • [Intermediate] Numerics in C++ standard library
  • [Beginner] Concurrency / Multithreading from Operating Systems perspective
  • [Intermediate] Introduction to Concurrency and Multithreading using Modern C++20
  • [Intermediate] Managing threads with Modern C++ (C+11 onwards upto C++20)
  • [Intermediate] Synchronization in multhreaded application using C++ concurrency
  • [Intermediate] Futures in multithreading (C++11 onwards)
  • [Intermediate] Mutex and lock for safe multithreading ( C++11 onwards)
  • [Intermediate] Conditional Variables ( C++11 onwards )
  • [Intermediate] Semaphore (C++20 onwards)
  • [Intermediate] Atomics ( C++11 onwards)
  • [Intermediate] Parallel Algorithms ( since C++17)
  • [Advanced] Coroutines feature quick overview ( as shipped in C++20)
  • [Advanced] Modern C++ Memory Model Deep Dive (Features Available since C++11)
  • [Advanced] Code Optimizations: Behind the scenes [C++ Memory Model]
  • [Advanced] Concurreny with Barriers in C++ Memory Model
  • [Advanced] Performance analysis of atomics data types in C++ Memory Model
  • [Advanced] Compare and Swap supported by modern C++ Model
  • [Advanced] Memory ordering in multithreading with Modern C++ memory model
  • [Advanced] Memory Order: Software Design and performance considerations
  • [MUST WATCH DEMOS] Tools to work with concurrency and multithreading in C++
  • [Advanced Multithreading Design] Lock Free C++ Concurrent Data Structure Design
  • [Advanced Multithreading Design] Double Check Locking Deep Dive
  • [Advanced Multithreading] Concurrent Singly Linked List analysis
  • [Advanced Multithreading] ABA problem, RCU, Hazard pointers.
  • [Advanced Multhreading] Design Guidelines for using Modern C++ concurreny tools
  • [Advanced] Testing and Debugging Challenges with Concurrent Data Structures
  • [Beginner] Tools for software engineering with C++ to ship production code
  • [CODING PRACTICE] Coding Exercises to build a muscle for refactoring
  • [CODING PRACTICE] Using STL algorithms and containers in production as default
  • [CODING PRACTICE] C++17 features coding exercises
  • [CODING PRACTICE] C++20 Features coding exercises

Taught by

RougeNeuron Academy

Reviews

4.2 rating at Udemy based on 250 ratings

Start your review of Ultimate C++: Basic Modern C++20 to Advanced Multithreading

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.