Generic Programming (Templates) with C++

Program Overview

I’m happy to provide more details about my mentoring program, “Generic Programming (Templates) with C++”.

Level: Advanced

Program Description

The future of C++ speaks templates. Therefore, solid knowledge of templates is a must for every professional developer.

Each week, I publish a new station. To master a station, you have to invest about three hours. Therefore, you can integrate my program into your workday.

Features

  • 200 video lectures
  • 20 one-hour sessions
  • Plus 50 posts

Extras

  • Q&A LIVE sessions
  • Active C++ community in moderated forums
  • Instant access via E-Mail

Program structure

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

16 Stations

  1. Introduction
    • C++
    • Further Information
  2. Functions and Classes
    • Introduction
    • Function Templates
    • Class Templates
  3. Parameters and Arguments
    • Template Parameters
    • Templates Arguments
  4. Specialization
    • Introduction
    • Partial Template Specialization
    • Full Template Specialization
  5. Instantiation
    • Implicit
    • Explicit
    • Hidden Template Implementation
  6. Variadic Templates
    • Perfect Forwarding
    • Variadic Templates
    • Fold Expressions
  7. Friends and Dependent Names
    • Friends
    • Dependent Names
  8. Automatic Return Type
    • auto and decltype
    • Automatic Return Type
  9. Template Metaprogramming
    • History
    • Meta Data And Meta Functions
    • Type and Value Manipulation
    • Pure Functional Sublanguage
  10. Type Traits
    • Introduction
    • Optimization
    • Correctness
  11. constexpr and constexpr if
    • constexpr
    • constexpr if
  12. Idioms: Polymorphism
    • Dynamic Polymorphism
    • Curiously Recurring Template Pattern (CRTP)
    • Static Polymorphism
    • The Overload Pattern
  13. Idioms: Templates
    • Mixins
    • Expression Templates
    • Substitution Failure is not an Error (SFINAE)
  14. Idioms: Templates
    • Policy
    • Traits
    • Tag Dispatching
    • Type Erasure
  15. Concepts
    • Motivation
    • Usage
    • Placeholders
    • Abbreviated Function Templates
  16. Concepts
    • Predefined Concepts
    • Definition of Concepts
    • Requires Expressions
    • User-Defined Concepts
    • An Evolution or a Revolution

One Station Concept

Each mentoring program consists of 16 to 30 stations you have to master. A station is one week long, and you should invest about three hours/week. Therefore, you can integrate my program into your workday. Each station consists of theory, practice, and mentoring:

Theory

  • Pure theory: 10 slides (video)
  • Applied theory: 5 examples (video)
  • Additional: Posts and Training videos

Practice

  • Practical exercises (videos)
  • Sample solutions to the exercises (video)
  • Active C++ community in moderated forums

Mentoring

  • Each week: Live Q&A session based on Forum questions
  • One-to-one mentoring at the end of the mentoring program if requested

Sample Station

Try out Station 9 of my Mentoring Program “Generic Programming (Templates) with C++”: History, Meta Data and Meta Functions, Type and Value Manipulation, and Pure Functional Sublanguage.

Practice

Please click the button above to go to the LIVE view of my mentoring program.

Practice

Please click the button above to go to the LIVE view of my mentoring program.

Practice

Please click the button above to go to the LIVE view of my mentoring program.

Practice

Please click the button above to go to the LIVE view of my mentoring program.

The Ideal Mentee

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

You have to invest at least three hours a week and can, therefore, integrate my program into your workday. In the ideal case, your company supports you with time and money.

Here are a few participant profiles I have in mind:

  • Professionals who want to master patterns
  • C++ developers who want to make their next career step
  • C++ developers interested in good software design

Mentee Membership and Community Membership

When you master your mentoring program, you can extend your Mentee Membership with a Community Membership.

Mentee Membership

  • Member of a mentoring program
  • Includes the Community Membership

Community Membership

  • Access to the previous mentoring program
  • You cannot participate in the Q&A sessions, but you can watch recorded Q&A sessions
  • Becomes a community member if requested
  • Community Membership is €150 (lifetime)

My other Mentoring Programs

Fundamentals for C++ Professionals

Level: Beginners

Design Patterns and Architectural Patterns with C++

Level: Intermediate

C++20: Get the Details

Level: Intermediate