Программирование - это вообще не про языки, а прежде всего - про умение строить под задачу эффективный и оптимальный алгоритм и писать понятный другим разработчикам и удобный для дальнейшей доработки код. А знание конкретных языков - это уже вторично. Есть хорошее выражение: "Программируйте с использованием языка, а не на языке". Прежде всего стоит стремиться к умению именно программировать. А язык при необходимости освоите любой, если это умение при вас. Из книг, которые учат именно программированию, лично мне нравится "Совершенный код" Макконела. Хотя можно и другие пособия того же плана найти.