В моём вузе программирования было очень мало, и оно было сильно оторвано от повседневных задач. Слышал что в остальных вузах такая же проблема. Если вы хотите именно научиться программированию (а не, скажем, стать инженером), то вуз -- плохой выбор.
Мне ни разу не доводилось посещать курсы именно по программированию, но я приблизительно представляю как они выглядят.
Я бы рекомендовал рассматривать курсы как возможность социализации, возможность познакомиться с другими (начинающими) программистами. Возможность найти себе товарищей, с кем можно было бы разбираться в дисциплине вместе, обмениваться опытом.
Однако курсы это лишь следование по нарисованной преподавателями дорожке. Вспомогательные костыли для тех кто пока совсем ходить не может. Они хороши как стартовый пинок, чтобы влиться в среду, но никак не способ обрести твёрдые знания и опыт.
Твёрдые знания и опыт можно получить исключительно занимась самостоятельно. Придумайте себе интересные задачи и попытайтесь их решить. Попробуйте разобраться как работает та или иная вещь. Общайтесь с другими программистами. Участвуйте в чужих проектах, хоть на каких-нибудь началах -- всё опыт.
Короче: самостоятельная работа + курсы (вспомогательный пинок, социализация)
Я всегда считал, что программированию можно научиться самостоятельно. А что делать с математикой? Она ведь тоже нужна.
Математическая подготовка нужна если ты хочешь не просто уметь программировать, а стать хорошим программистом и создавать новые и сложные вещи. И да, такую математику лучше изучать в вузе.
А для того чтобы просто научиться программировать никаких особых знаний математики не нужно.
Курсы+самообразование+репетитор(делательно из крупной компании) и вы станете суперпрограммистом. А еще лучше валите в сша или японию. Там из вас в тамошних вузах суперпрограммиста сделают.