A presentation for the non-C++ programmer to build a healthy C++ mental model. High-level details are emphasized over low-level ones; it takes the approach that when learning something new, having a high-level and simple view leads to a healthy model.
View it directly in your browser (viewable on a mobile too).
Alternatively, save the presentation as PDF for offline viewing.
C++11 feels like a new language. — Bjarne Stroustrup, Creator of C++
C++ has sort of become an expert-friendly language like its creator acknowledges. With C++11, many changes were made to the original standard (C++03) making the language more high-level, safe and convenient. The last point is essential for beginners who want to learn the language. With later C++ standards (C++11, C++14, C++17, …) making it more high-level, the preferred method of teaching and, more importantly, using C++ is stay at a high-level and go low later, when there’s a necessity:
Experienced C++ programmers as well as C++ novices must learn to use Standard C++ as a new and higher-level language as a matter of course and descend to lower levels of abstraction only where absolutely necessary. — Learning Standard C++ as a New Language, §5 Summary, Bjarne Stroustrup
This presentation tries to use live examples (code with disassembly), data diagrams and lots of code examples to build a healthy C++ mental model. Lot of details, pointers and recommendations are strewn across the presentation (as links) so that an interested learner can go deep and explore more; the hope is that one would. The not-so-interested parties can still get a good overview. When they hit a bottleneck or want to learn that concept they think might be useful in solving their current problem, they’d know where to come and refer.
- Remove ‘EB Garamond’ and ‘Gabriela’ fonts to generate a slimmer PDF
- Alternatively, try slimming them down by giving only the needed variants