По опыту своих знакомых скажу, что реально самостоятельно выучить программирование и даже стать при этом хорошим программистом, а не каким-то быдло-кодером.
Сам же учусь в университете на около программистской специальности и к программированию также имею отношение.
А теперь мое мнение по началу изучения программирования:
Начните с основ, причем не с основ С++ или Java, а с основ архитектуры компьютера, его принципов работы, а также большого математического аппарата, который за всем этим стоит. Обратите внимание на дискретную математику, математическую логику и абстрактную алгебру. Зная три эти категории, даже в ознакомительном варианте, погружаться в такое непростое дело, как программирование, будет гораздо приятнее и интереснее, а также проще.
Перевестись в тех.вуз, в принципе, возможно. Но опять же все зависит от вуза. Более чем уверен, что в моем деканате Вам бы дали отказ — не любят у нас принимать с других вузов.