I’m proud to present my new mentoring program, “C++20: Get the Details”.

The Mentoring Program

The mentoring program consists of 16 stations. You have to invest at least 3 hours per week for each one. Therefore, you can integrate my program into your workday.

16 Stations

  1. Introduction
    • History
    • C++ Compiler Standard Support
    • Preparation
  2. Concepts
    • Motivation
    • Usage
    • Placeholders
    • Abbreviated Function Templates
  3. Concepts
    • Predefined Concepts
    • Definition of Concepts
    • Requires Expressions
    • User-Defined Concepts
    • An Evolution or a Revolution
  4. Comparison
    • Equality Comparison
    • The Three-Way Comparison Operator
    • Safe Comparison of Integers
  5. Constness
    • consteval
    • constinit
    • std::is_constant_evaluated
    • constexpr Containers and Algorithms
  6. Further Core Language Improvements
    • Designated Initialization
    • Templates
    • Lambdas
  7. The Ranges Library
    • Ranges and Views
    • Characteristics
    • Range Adaptors
    • Comparison of std and std::ranges Algorithms
  8. Modules
    • Advantages
    • Module Interface Unit and Module Implementation Unit
    • Submodules and Module Partitions
    • Guidelines
  9. std::span and New Container Functions
    • std::span
    • Unified Deletion of Elements
    • Uniform Checking of Elements
    • String: starts_with and ends_with
  10. Formatting Library
    • Overview
    • Format String
    • User-Defined Types
  11. Calendar and Time Zones
    • Basic Types
    • Time of Day
    • Calendar Dates
    • Time Zones
  12. Standard Library Utilities
    • Mathematical Constants
    • Midpoint and Linear Interpolation
    • Bit Manipulation
    • std::source_location
  13. Coroutines
    • Characteristics
    • The Framework
    • Awaitables and Awaiters
    • The Workflows
  14. Atomics
    • std::atomic_flag
    • std::atomic
    • std::atomic_ref
  15. Synchronization and Coordination
    • Latches and Barriers
    • Semaphores
    • Synchronized Output Streams
  16. Cooperative Interruption
    • std::jthread 
    • std::condition_variable_any
    • std::stop_source, std::stop_token, and std::stop_callback

One Station

Each station consists of theory, practice, and mentoring:

  • Theory
    • Pure theory with about ten slides (video)
    • Applied theory with about five examples (video)
    • Additional posts and training videos
  • Practice
    • Exercises (video)
    • Sample solutions to the exercises (video)
    • Active C++ community in moderated forums
  • Mentoring
    • Live Q&A session each Friday, in which I address forum questions (recorded)
    • One-to-One mentoring at the end of the mentoring program, if requested

Sample Station

How to Participate?

The mentoring will start on August 11th, 2023. The program takes four months.

Four Easy Steps

Here are the necessary steps:

  1. If you don’t have an account, create it here: ModernesCpp.org,
  2. Buy the course using Stripe or a bank transfer. Find the details here: Payment.
  3. I add you to the mentoring program.
  4. Enter the mentoring program.

My pricing model is based on individual participants. If your company or department wants to participate in this mentoring program, please contact me:  Rainer.Grimm@ModernesCpp.de.

First Installment

This is the first installment of my new mentoring program, “C++20: Get the Details”. This has a few consequences.

  • There may be a few minor issues. Consequentially, I start each week explicitly and offer this mentoring for a reduced price.
  • This first iteration starts in August. Around October 2023, this mentoring is open for additional registration. You can start it self-paced at any time. The final price will be €1800.

The Ideal Mentee

First, you need good C++ knowledge and want to become fluent in C++20. If you don’t consider yourself a good C++ programmer, you should first master my basic mentoring program Fundamentals for C++ Professionals, or a similar program.

What Mentees Say About my Mentoring

Hans-Martin Duringhof

 

Rainer D 6 P2 500x500Modernes C++ Mentoring

  • "Fundamentals for C++ Professionals" (open)
  • "Design Patterns and Architectural Patterns with C++" (open)
  • "C++20: Get the Details" (open)
  • "Concurrency with Modern C++" (open)
  • "Generic Programming (Templates) with C++": October 2024
  • "Embedded Programming with Modern C++": October 2024
  • "Clean Code: Best Practices for Modern C++": March 2025
  • Do you want to stay informed: Subscribe.

     

    Senior Software Development Consultant Robotics & Autonomous Driving Movinity.ai

    Diana Ojeda Aristizabal

    Design Engineer Intel

    I took this Mentoring Program to deepen my knowledge about C++. I was stunned by the huge amount of Videos and effort Rainer Grimm put into this program. He does not only provide Videos, Examples and Exercises to explain the different Topics, he also provide further informations regarding those topics (Blog posts, Videos from CppCon etc). One big advantage of the course is that you could wrote questions directly to Rainer Grimm or into the Forum and he will answer and explain also his answer in the weekly Q&A Sessions at the end of each week. I could really recommend this Mentoring to beginners and also to intermediate C++ developers.

    Jan Kevin Dick

    Software Engineer Robert Bosch GmbH

    I was happy to sign up for Fundamentals for C++ Professionals mentoring program to deepen my knowledge of C++ programming. There was a fine mixture of video lessons, presentations and zoom meetings to discuss ongoing lessons and ask questions regarding C++ programming one on one with our mentor. The durations may seem little long, but in my opinion it offers a possibility to get a grip on learning resources offered. I would recommend it to enthusiasts trying to expand their knowledge of modern C++.

    Jozo Leko

    Senior Broker OTP bank Croatia

    Modernes C++ Mentoring,

    Thanks a lot to my Patreon Supporters: Matt Braun, Roman Postanciuc, Tobias Zindl, G Prvulovic, Reinhold Dröge, Abernitzke, Frank Grimm, Sakib, Broeserl, António Pina, Sergey Agafyin, Андрей Бурмистров, Jake, GS, Lawton Shoemake, Jozo Leko, John Breland, Venkat Nandam, Jose Francisco, Douglas Tinkham, Kuchlong Kuchlong, Robert Blanch, Truels Wissneth, Mario Luoni, Friedrich Huber, lennonli, Pramod Tikare Muralidhara, Peter Ware, Daniel Hufschläger, Alessandro Pezzato, Bob Perry, Satish Vangipuram, Andi Ireland, Richard Ohnemus, Michael Dunsky, Leo Goodstadt, John Wiederhirn, Yacob Cohen-Arazi, Florian Tischler, Robin Furness, Michael Young, Holger Detering, Bernd Mühlhaus, Stephen Kelley, Kyle Dean, Tusar Palauri, Juan Dent, George Liao, Daniel Ceperley, Jon T Hess, Stephen Totten, Wolfgang Fütterer, Matthias Grün, Phillip Diekmann, Ben Atakora, Ann Shatoff, Rob North, Bhavith C Achar, Marco Parri Empoli, Philipp Lenk, Charles-Jianye Chen, Keith Jeffery,and Matt Godbolt.

    Thanks, in particular, to Jon Hess, Lakshman, Christian Wittenhorst, Sherhy Pyton, Dendi Suhubdy, Sudhakar Belagurusamy, Richard Sargeant, Rusty Fleming, John Nebel, Mipko, Alicja Kaminska, Slavko Radman, and David Poole.

    My special thanks to Embarcadero
    My special thanks to PVS-Studio
    My special thanks to Tipi.build 
    My special thanks to Take Up Code
    My special thanks to SHAVEDYAKS

    Modernes C++ GmbH

    Modernes C++ Mentoring (English)

    Do you want to stay informed about my mentoring programs? Subscribe Here

    Rainer Grimm
    Yalovastraße 20
    72108 Rottenburg

    Mobil: +49 176 5506 5086
    Mail: schulung@ModernesCpp.de
    Mentoring: www.ModernesCpp.org

    Modernes C++ Mentoring,