Чето холивар затих, подолью масла...
Если кто спрашивает как учиться/учить программированию, всегда отвечаю:
0. BASIC (лучше в своей самой первой ипостаси)
1. asm (кстате x86 не самый хороший вариант ибо сборник костылей)
2. C без плюсов
3. Посмотреть на Паскаль (чтоб потом в возненавидеть все паскалеподобные языки

)
4. C++ (как язык который вобрал и продолжает вбирать в себя все что изобретено в программировании)
5. Начинаем работать на языке, который больше всего понравится.
После чего в принципе человек готов к практической работе на любом языке, после ознакомления с его стандартными библиотеками. Есть еще функциональщина, но до нее надо дорости мозгами, иначе кроме бардака в мозгах ничего не будет. Путь 0-4 позволяет не просто научиться программировать, но и проектировать (причем на интуитивном уровне) программы, тестировать (и понимать зачем это надо), понимать архитектуру машины, периферии, ОС что значительно ценнее, чем кодить на любом языке, будь ты хоть трижды сеньйор девелопер.
Что касается языков "более высокого уровня", то человек не освоивший умных указателей в плюсах, пускай пополняет стройные ряды горе - шарпа|делфи|ява|(супер язык(и) года через 2) (нужное подчеркнуть) и кодят. Ну а позже если их творения будут кому нибудь нужны, мне заплатят деньги, чтоб все переписать на плюсах

.