Какой вуз выбрать для того, чтобы стать программистом?
Какое-то время учился в ИТМО и ЛЭТИ, вот что могу сказать по этим вузам:
ЛЭТИ - совсем не советую, программа очень старая, а преподаватели (по крайней мере с теми, с кем сталкивался) боятся сделать от неё любой шаг в сторону, да и отношение к студентам там так себе (хотя исключения есть) , в итоге, если рассматривать полученные знания в совокупности на затраченное время - совершенно того не стоит. Вместо него обрати внимание на СПбГУТ - многие студенты из ЛЭТИ массово бегут туда после первого курса, офигевая от пофигизма и совковости.
ИТМО - совсем другая история: чувствуется, что реально хотят научить чему-то полезному, знакомы с современной разработкой. За время обучения ни разу не сталкивался с хамством или несправедливым отношением, отношение к студентам очень хорошее как со стороны преподов, так и со стороны деканата. Учиться не очень тяжело, вбивать знания насильно не будут, но если хочешь реально учиться - проблем не будет. Порадовала внеурочная деятельность на кафедре, её некоторые преподаватели организовывают сами - на одних из таких удалось поработать с интересным железом, например с терминалами и банкоматами; знаю ребят, которые так же внеурочно в ВУЗе въезжали в Machine Learning.
По факультетам: ИТИП (программная инженерия и инф. системы) готовит преимущественно олимпиадников, считается местной элитой, поступить - сложно, учиться - ещё сложнее, учат алгоритмам и матану, уровень знаний Computer Science на выходе впечатляет, практических навыков будет не так много, но не думаю, что у кого-то из выпускников возникнут проблемы с их получением. КТИУ (где я учился) - вариант попроще и попрактичнее, там больше свободы и меньше адской теории, но "мегамозги" выходят именно с ИТИПа.
Кстати, про практические навыки - в первом же семестре на одном из установочных предметов примерно скажут, что "те, кто на 3-м курсе ещё не будет работать по специальности - рискует получить диплом, который на выходе окажется не особо нужным без доп. знаний", и это очень правдиво - реальный опыт будет куда полезнее на том этапе, да и программа с 3-го курса более лояльна к такому виду деятельности. Совет довольно универсальный для любых универов, как мне кажется.
Теперь не мой личный опыт, а то, что слышал от других: 
СПбГУ: IT-направления похожи на описание ИТИП, много матана и алгоритмов, но точно так же выходят другими людьми оттуда - братья Дуровы как пример. Давнишний конкурент ИТМО на всех международных олимпиадах. Ещё имеет смысл посмотреть там широкие фундаментальные специальности вроде "Математика" - очень сложно, но это 100% первое место по образованию в СПб, и топ-5 по России.
Про политех слышал мало, знакомые учатся там в основном на специальностях связанных с физикой, об особых прорывах в IT не слышал, но сам ВУЗ толковый и негатива о нём нет.
Суммарно по моему мнению:
Если интересует хардкор, алгоритмы, матан и классический Computer Science - ИТМО (ИТИП), СПбГУ.
Оптимально для нежелающих хардкора, но готовых к самообразованию: ИТМО (КТИУ). 
Если не хватает баллов в ИТМО - идти в Политех, если и на него не хватит - в СПбГУТ.
ЛЭТИ обходить стороной.
Coursera + upwork. Кто то может камнями закидать, но н а настоящих знаний в университете вы получите мало, опыта вообще каплю. Ниу итмо первый в приоритете, остальное на запасной вариант