I'll go for a point-by-point critique.<p>Point 1 tacitly assumes that learning C++ not only teaches you a common subset of many other popular languages, but also is the easiest way to learn said subset. This is wrong: a lot of simpler languages can teach you the same, e.g. JavaScript or pre-1.5 Java.<p>Point 3 says a given code sample in the wild has higher probability of being in C++ than any other language. This clashes with my impressions.<p>Point 4 assumes that the main difficulty of C++ is due to pointers and manual memory management, and that knowing your way around those issues will help you in other programming areas anyway. This sounds wrong to me: C shares those "difficulties" with C++ and isn't generally regarded as a hard language. The difficulty of C++ mostly stems from design decisions unique to C++ and useless elsewhere, like template metaprogramming or the dangerous combination of manual memory management with exception handling.<p>Point 5 implies that C++ invented parametric polymorphism and that this facility is essential to make algorithms work on a variety of data types. Wrong on both counts: ML and Ada generics predate C++, and Smalltalk-like dynamically typed languages solve the same problem without type parameterization.<p>Point 6 assumes more libraries have C++ interfaces than C interfaces, which is wrong by an order of magnitude at least.<p>Point 9 assumes most programmers are more interested in performance-oriented and algorithmically complex projects. Can't give statistics here, but I'm a data point to the contrary: I love UI and frontend work.<p>Point 10 is valid.<p>My own reasons for knowing C++ are a combination of point 10 and the need to muck around with <a href="http://mapnik.org" rel="nofollow">http://mapnik.org</a> - the only C++ library I ever found useful. And its code sucks, I'd kill for a C/Python alternative.