Сразу оговорюсь: все, что я ниже пишу - моё личное мнение и я не собираюсь что-то кому-то доказывать. И еще: это мнение ориентировано на массовость, а не на отдельных гениев и вундеркиндов, которые всегда были, есть и будут исключением и нельзя их ставить в обычные рамки.
Когда у меня спрашивают, какой язык программирования я бы посоветовал изучать, я задаю встречный вопрос: “Для каких целей?”. Если это первый язык и он нужен как подручное средство для записи и отладки изучаемых алгоритмов - это одно. А если это язык “для инвестиций”, т.е. человек хочет впоследствии устроится на работу и работать с этим языком - это совсем другое. Кому-то просто хочется “быть лучшим” на олимпиадах - и это третье.
“Первый язык программирования” должен быть ёмким, простым в изучении, дающим “быстрый старт” и вызывающим желание с ним работать. Он должен иметь четкие и простые синтаксические конструкции, но в то же время обладать большой мощностью. Всеми этими свойствами язык С++, увы, не обладает. Без “ручного” подключения большого числа библиотек для новичка он вообще сродни “большому ассемблеру”. Трудоемкость освоения С++ оценивается, как 5 из 5 - это язык для системного программирования, а не для обучения программированию. Для успешной работы с С++ нужно овладеть многими концепциями, что для новичка зачастую неподъёмно. Что мы имеем в итоге для тех учебных заведений, в которых С++ принят в качестве первого языка? Им нормально овладевают единицы, а основная масса остается “тёмной” и не может подняться выше уровня блок-схем. У этого большинства обучающихся не вырабатываются навыки “глобального” алгоритмического мышления, они не готовы идти в среду ООП (куда уж там начатки функционального программирования), потому что благодаря С++ видят задачу, как что-то размельченное на ячейки памяти, элементарные циклы и ветвления. Я беседовал с такими школьниками и это “печальное, душераздирающее зрелище” (с). Спрашиваешь об общем подходе к задаче, в ответ тебе что-то “вот тут сумма, значит, цикл пишем…”. Строка для них - однозначно массив символов; говорить о каком-то манипулировании на уровне слов текста - это что-то заоблочное. Я неправ? Ну что же, значит Вы беседовали лишь с теми немногими, кто выбрал программирование своей профессией, кому эта дисциплина интересна и он активно занимается в ней самообразованием. Прекрасно, что и такие у нас тоже есть.
Изучать язык, владея которым можно с бОльшим шансом устроиться на работу? Давайте посмотрим рейтинг востребованности специалистов с порталов России, ориентированных на поиск вакансий.
12.7 тыс запросов на PHP, 12.6 тыс - Java, 8.9 тыс - Objective C (Apple), 5.1 тыс. - SQL, 3.9 тыс. - Ruby, 3.7 тыс. - JavaScript, 3.5 тыс. - C#, 1.9 тыс. - С++, 1.6 тыс. - Python.
Место С++ все увидели? Так так стоит ли ПОГОЛОВНО внедрять, что называется “от горшка”, С++ еще в школах в качестве первого языка, чтобы в результате прийти к ситуации, когда подавляющее большинство школьников вообще не поймут программирования, а понявшие потом не найдут себе работы? К чему трата таких огромных усилий? Чтобы писать олимпиады на радость господам из СибГУ? А не пошли бы они… (простите мне мой плохой французский!).