Отличное видео с CppCon 2015:
http://www.youtube.com/watch?v=YnWhqhNdYyk
Посмотрел первые 20 минут, и я подпишусь под каждым словом, которое она говорит.
Небольшая выдержка:
— при обучении С++, надо учить вещам, которые делают С++ С++
— не надо учить новичков сложным и непонятным вещам, по крайней мере не в 1й день обучения — char*, printf("%s%d%c"), etc
— не надо учить Си, если есть более простые вещи в С++
— можно сразу написать vector<int> v; ...; n = count(v.begin(), v.end(), 42);
новички сразу поймут что это "вектор интов, мы передаем в count начало и конец v".
При этом новичкам не надо знать ни шаблоны, ни объекты, ни итераторы. Просто "начало" и "конец" коллекции — это интуитивно понятно.
— ...