I am one of those embedded software developers who had always worked with C as main language for embedded development, until my current project which heavily uses C++14/17. The switch was not easy for me as C++’s abstractions bothered me to a great extent. I have tried multiple sources, books, blogs(including Rainer’s Modernes CPP), video courses etc. to learn the language at a deeper/lower level. But I found the mentorship program “Fundamentals for C++ Professionals” to be the most unique and fruitful of all.
The layout of the program introduces you to each topic in at least three levels: basic theory, example to demonstrate how it looks in code, and the most useful level(in my opinion) “Further Information” where Rainer lists out fantastic materials, including his spectacularly exhaustive blog posts. These present you with further deeper aspects of the topics, knowledge of edge cases, cpp best practices and sometimes CPPCon videos where you watch other experts share their knowledge. The articles on best practices are also extremely useful, as you get to know best practices of each topic(e.g. class design, template programming etc.) while you are studying it. This helps to incorporate good coding style right from the start. There are also exercises in most of the units. The exercises are very well designed to bring out a specific “thing” that Rainer wants you to learn, notice or appreciate. These kind of exercises sticks to your memory and helps further critically analyze and appreciate the language elements.
I have already gained a lot of insight and valuable understanding that helps me everyday when I read my colleagues’ code, do code reviews, implement my own features that too in the embedded world, where there are further restrictions to tackle. I would definitely recommend Rainer’s mentorship program to anyone who wants to tame this difficult, wild language called C++ and truly appreciate how powerful it is.
Mukherjee Debasish
Produktsoftware Entwickler at Bosch