One month ago, I presented "My Mentoring Program "Fundamentals for C++ Professionals". I'm overwhelmed by how my people want to participate in this first iteration of my mentoring program. What should I say? Today, I want to give you more details.
Here is only a short reminder about my program. For more details, read my previous article, "My Mentoring Program "Fundamentals for C++ Professionals". Additionally, my new mentoring program is hosted here: https://www.modernescpp.org/. The page and the course https://www.modernescpp.org/courses/fundamentals-for-c-professionals/ are still under construction, but you get a concrete idea of the 28 steps to master C++.
For completeness, here are the 28 steps:
- Types: enumerations, pointer, references, and casts
- Types: type deduction with
- Values: initialization, conversion,
- Values: move semantics and perfect forwarding
- Classes: attributes and constructors
- Classes: initialization, destructors, and member functions
delete, operator overloading, explicit, access rights, friends, and structs
- Inheritance: abstract base classes, access rights, constructors, base class initializers
- Inheritance: destructor, virtuality,
final, and multiple inheritances
- Templates: functions and classes
- Templates: parameters and arguments
- Template Specialization
- Type Traits
- Smart Pointers
- STL: General Ideas (containers, algorithms, iterators, callables, range-based)
- STL: Common Interface of the Containers
- STL: sequential containers and associative containers
- STL: algorithms
- Strings including string views
- Regular Expressions
- In- and Output
- Threads: creation, data sharing, mutexes, and locks
- Threads: thread-local data, thread-safe initialization, condition variables
Today, I want to present you the 6th step. This 6th step is about move semantics and perfect forwarding. This step exemplifies one typical week in my mentoring program.
6th Week: Move Semantics and Perfect Forwarding
The 6th week consists of five lessons:
Each lesson consist of a few tasks. Here are all lessons expanded.
Let's have a closer look inside the first lesson:
It consists of the topics Details, two examples, one exercise, and further information.
The topic "Details" contains a video lecture and the slides used in this video lecture.
The topic "Example" contains a video lecture explaining the example, and the source code example.
The topic "Exercise" contains two video lectures. One explains the exercise, including the slides; one explains the solution of the exercise and the source code for the solution.
Further information provides you with additional information that is not required to master a lesson. This information includes typically more details on cppreference.com, highly valuable articles in the internet, posts on my blog Modernes C++, and often presentations from conferences about the specific topic. For example, here is the topic "Further Information" about the lesson "
delete" and also about the lesson "Copy versus Move Semantics":
I end each week with a live Q&A session of about an hour or more if necessary. In the Q&A session, I answer all questions about the concrete week. I record the Q&A session and publish them later. Additionally, you can write me an e-mail at any time if you have a question.
Let me say a few words about the state of my mentoring program and a few technical details.
State of the Mentoring Program
So far, the videos that you saw in my previous screenshots are only placeholders. I will replace them with video lectures in the next two months and during the mentoring if necessary. Although I'm quite happy with the precious content I already have, I will add more "Further information" material in the following months and improve my mentoring page https://www.modernescpp.org/.
- Course start: My goal is to launch this course in April.
- Course size: At least 105 hours, 17.5 training days, or 3 1/2 typical 3-days training.
- Registration: I open the registration window four weeks before the course starts and close it one week before it starts.
- Price: Due to this first installment of my mentoring program(and some improvisation), the price of the program is drastically reduced by roughly 50%: about 250 €/month.
What are the next steps?
- Beginning of March: online information sessions about my mentoring program, where you can ask your specific questions
- Middle of March: my mentoring program opens for registration
- April: the registration for the mentoring program closes, and the mentoring program starts
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, Animus24, Jozo Leko, John Breland, Venkat Nandam, Jose Francisco, Douglas Tinkham, Kuchlong Kuchlong, Robert Blanch, Truels Wissneth, Kris Kafka, 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, Matthieu Bolt, Stephen Kelley, Kyle Dean, Tusar Palauri, Dmitry Farberov, Juan Dent, George Liao, Daniel Ceperley, Jon T Hess, Stephen Totten, Wolfgang Fütterer, Matthias Grün, Phillip Diekmann, Ben Atakora, and Ann Shatoff.
Thanks in particular to Jon Hess, Lakshman, Christian Wittenhorst, Sherhy Pyton, Dendi Suhubdy, Sudhakar Belagurusamy, Richard Sargeant, Rusty Fleming, John Nebel, Mipko, Alicja Kaminska, and Slavko Radman.
My special thanks to Embarcadero
My special thanks to PVS-Studio
My special thanks to Tipi.build
I'm happy to give online seminars or face-to-face seminars worldwide. Please call me if you have any questions.
Standard Seminars (English/German)
Here is a compilation of my standard seminars. These seminars are only meant to give you a first orientation.
- C++ - The Core Language
- C++ - The Standard Library
- C++ - Compact
- C++11 and C++14
- Concurrency with Modern C++
- Design Pattern and Architectural Pattern with C++
- Embedded Programming with Modern C++
- Generic Programming (Templates) with C++
- Clean Code with Modern C++
- Phone: +49 7472 917441
- Mobil:: +49 176 5506 5086
- German Seminar Page: www.ModernesCpp.de
- Mentoring Page: www.ModernesCpp.org