В первую очередь нужно научится "думать как программист"... но это все бредни)
Если хотите реально чему-то научится то стоит начать с основ.
Это
Керниган Ритчи "Язык программирования Си".
С++ не очень сложный язык. Он очень неоднозначный - одна задача может быть решена разными способами и у каждого из них будут свои недостатки. Тем более требует довольно специфических хаков против всяких там SFINAE и constant cast'ов.
Особенно в последнее время стандартов С++ наплодилось...
Учить С++ стоит, но до конца разобраться во всём будет очень сложно.
По минимуму можно прочитать
Герберта Шилдтa
У него есть другие толковые книги по С# и Java - тоже можете глянуть.
Ну и мне нравится
Подбельский.
С++ хорошо подходит для десктопных приложений.
Тут можно почитать
Макса Шлее Qt 4.8
При этом особых сверхъестественных навыков С++ не нужно.
Если хотите ити в "про" уровень - учите коллекцию библиоте boost.
Java в последнее время очень хорошо себя зарекомендовала в вэбе.
Хватит первого тома
Core Java. Из фреймворков могу посоветовать Grails и Play2.
Python / JS можно выучить на курсах
Codecademy за 2-3 недели. Там же можно разгребсти html/css.
Если хотите пойти в вэб...
Желательно разобраться в haml sass compass stylus jade grunt bower yeoman bower angular библиотеках.
Желательно разобраться с
шаблонами проектирования, и почитать
Мартина Фаулера.
Есть ещё книги из серии
Pragmatic Programmer самое интересное что у этого издательства нет ни одной плохой книги.
Вообще по программированию и методологиям в целом стоит почитать
совершенный код.
Можно ещё почитать
чистый код, и
идеальную архитектуру.
Для кроссплатформенных мобильных приложений можно разобраться с Air и Flex.