Advanced C++ 20 Programming / Modern C++ (TTCP2175)

Explore ‘Next-Level’ Modern C++ Skills: SOLID Principles, Object Factory, Lambdas, Templates, Patterns, Threads & More

TTCP2175 / TTCP3100

Intermediate and Beyond

3 Days

Course Overview

Overview

Geared for experienced C++ developers, Advanced C++ 20 Programming / Modern C++ is a three-day hands-on course designed to provide you with skills required to write faster, robust C++ code, enhancing your ability to create performance-critical applications ranging from system software, game development, to real-time systems and AI programming.

Working in a lab-focused learning environment guided by our experienced Instructor, you'll explore a broad spectrum of ‘next-level’ topics such as SOLID design principles, operator overloading, functional programming, and template usage, all aimed at refining your programming craft. The hands-on work will mirror real-world scenarios, including implementing design patterns and managing threads and tasks.  You’ll also discover the realms of multi-threading and asynchronous programming, invaluable skills for creating efficient, high-performance applications. These advanced skills have significant application in industries such as finance for high-frequency trading systems, in gaming for building high-performance game engines, or in tech companies for building large scale distributed systems.

By the end of this unique and intensive course, you will be well-equipped to tackle complex coding challenges, contribute more effectively to your team's projects, and deliver high-quality, efficient applications that meet modern business demands.

 

Learning Objectives

Working in a hands-on learning environment, guided by our expert team you’ll learn to:

  • Become a Pro at SOLID Design: You'll delve into SOLID design principles, mastering how to write clean, maintainable code. By the end, you'll be able to identify and avoid design smells, enhancing the overall quality of your projects.
  • Master the Art of Factory Implementation: Get hands-on with factories in C++. We'll guide you through the basics and options, including Singleton, to help you understand the critical role of factories in object-oriented design.
  • Up Your Game with Operator Overloading: You'll learn about operator overloading and its applications. By understanding how to enhance the readability and flexibility of your code, you'll streamline your programming tasks.
  • Unlock the Power of Templates: We'll dive into the intriguing world of templates, exploring variance, concepts, and the 'auto' keyword. You'll get to implement covariant and contravariant templates, broadening your C++ expertise.
  • Ace Multithreading and Asynchronous Programming: We'll explore the realms of multithreading and asynchronous programming, equipping you with the tools to create efficient, high-performance applications. You'll get to practice with mutexes, semaphores, atomics, and coroutines, gaining invaluable experience for your future projects.

Course Objectives

Learning Objectives

Working in a hands-on learning environment, guided by our expert team you’ll learn to:

  • Become a Pro at SOLID Design: You'll delve into SOLID design principles, mastering how to write clean, maintainable code. By the end, you'll be able to identify and avoid design smells, enhancing the overall quality of your projects.
  • Master the Art of Factory Implementation: Get hands-on with factories in C++. We'll guide you through the basics and options, including Singleton, to help you understand the critical role of factories in object-oriented design.
  • Up Your Game with Operator Overloading: You'll learn about operator overloading and its applications. By understanding how to enhance the readability and flexibility of your code, you'll streamline your programming tasks.
  • Unlock the Power of Templates: We'll dive into the intriguing world of templates, exploring variance, concepts, and the 'auto' keyword. You'll get to implement covariant and contravariant templates, broadening your C++ expertise.
  • Ace Multithreading and Asynchronous Programming: We'll explore the realms of multithreading and asynchronous programming, equipping you with the tools to create efficient, high-performance applications. You'll get to practice with mutexes, semaphores, atomics, and coroutines, gaining invaluable experience for your future projects.

Course Prerequisites

 

Audience & Pre-Requisites

This is an intermediate and beyond level development course designed for developers with prior C++ programming experience.  Students without prior C++ programming background should take the pre-requisite training.

 

Take Before:  Incoming students should have practical skills equivalent to the topics in, or should have recently attended, one of these courses as a prerequisite:

  • TTCP2100     Introduction to C++ Programming / C++ 20

Related Training | C++ Training Series

The following is a small subset of our related courses. Please see our full catalog for a complete list.

  • TTCP2000     Introduction to Programming and C++ Basics for Non-Programmers (TTCODE101-C / TTCP2000)
  • TTCP2100     Introduction to C++ 20 Programming | C++ Essentials
  • TTCP2150     Intermediate C++ 20 Programming | Effective +++ Programming
  • TTCP2175     Advanced C++ 20 Programming
  • TTCP1250     Object Oriented Design Patterns and Best Practices in C++
  • TTCP1270     SOLID Design in C++

Follow On Courses:  Our Skills Academy Developer Tracks include a wide variety of follow-on courses and learning paths for leveraging C++ for next-level development, testing, security and more. Please see our C++ Developer Training Suite & Learning Paths list of courses or inquire for recommendations based on your specific role and goals.

Course Agenda

Course Topics / Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We will work with you to tune this course and level of coverage to target the skills you need most. Course agenda, topics and labs are subject to adjust during live delivery in response to student skill level, interests and participation.

 

  1. C++ Quick Review
  • Modern C++ - an introduction to new features in C++ 11-20
  1. SOLID Design
  • Design Smells
  • Project Overview
  • Single Responsibility
  • Open/Close
  • Liskov’s Substitution
  • Interface Segregation
  • Dependency Inversion
  1. Implementing a Factory in C++
  • Factory Basics
  • Options
  • Singleton
  • A C++ Object Factory
  1. Operator Overloading
  • Commonly Overloaded operators
  • Conversions
  • Constructor Conversions
  • Implicit vs Explicit
  1. Templates
  • Understanding variance
  • Implementing covariant templates
  • Implementing contravariant templates
  • <concepts>
  • auto
  1. Functional Programming
  • Lambda Expressions
  • Functors
  • <functional>
  1. Structural Patterns
  • Adapter
  • Bridge
  • Composite
  • Decorator
  • RAII and Proxy Pattern – Smart Pointers
  • Strategies for Smart Pointers & Raw Pointers
  • Other patterns
  1. Behavioral Patterns
  • Solving common design smells with behavioral patterns
  • Template Method – issues initializing C++ objects
  • State Pattern
  • Strategy Pattern
  • Command Pattern
  • Other behavioral Patterns
  1. Threads, Tasks, Async
  • All about threads
  • Mutex
  • Semaphores
  • Latch & barrier
  • atomics
  • All about Tasks
  • <future>
  • Coroutines (async)

Course Materials

Student Materials: Each participant will receive a digital Student Guide and/or Course Notes, code samples, software tutorials, step-by-step written lab instructions (as applicable), diagrams and related reference materials and resource links. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Hands-On Setup Made Simple! Our dedicated tech team will work with you to ensure our ‘easy-access’ cloud-based course environment, or local installation, is accessible, fully-tested and verified as ready to go well in advance of the course start date, ensuring a smooth start to class and effective learning experience for all participants. In some cases we can also help you install this course locally if preferred. Please inquire for details and options.

Every-Course Extras = High-Value & Long-Term Learning Support! All Public Schedule courses include our unique EveryCourse Extras package (Course Recordings, Live Instructor Follow-on Support, Free *Live* Course Refresh Re-Takes, early access to Special Offers, Free Courses & more). Please inquire for details.

 

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Attend a Course

Please see the current upcoming available open enrollment course dates posted below. Please feel free to Register Online below, or call 844-475-4559 toll free to connect with our Registrar for assistance. If you need additional date options, please contact us for scheduling.

Course Title Days Date Time Price
Advanced C++ 20 Programming / Modern C++ (TTCP2175) 3 Days Jun 26 to Jun 28 10:00 AM to 06:00 PM EST $2,395.00 Enroll
Advanced C++ 20 Programming / Modern C++ (TTCP2175) 3 Days Aug 21 to Aug 23 10:00 AM to 06:00 PM EST $2,395.00 Enroll
Advanced C++ 20 Programming / Modern C++ (TTCP2175) 3 Days Oct 9 to Oct 11 10:00 AM to 06:00 PM EST $2,395.00 Enroll
Advanced C++ 20 Programming / Modern C++ (TTCP2175) 3 Days Dec 11 to Dec 13 10:00 AM to 06:00 PM EST $2,395.00 Enroll

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More