Skip to content

Latest commit

 

History

History
22 lines (12 loc) · 2.25 KB

README.md

File metadata and controls

22 lines (12 loc) · 2.25 KB

The Spirit of C++

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.

Overview

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.

TODO

  1. Remove ‘EB Garamond’ and ‘Gabriela’ fonts to generate a slimmer PDF
  • Alternatively, try slimming them down by giving only the needed variants