Нет "лучшего" решения на все случаи.
Хотите работать программист-математиком? Тогда лучше ВУЗ, однако настоятельно рекомендую поспрашивать разные компании, из каких ВУЗов выходят наиболее успешные ребята (идеально, если вы спросите какое-нибудь HR агентство).
Хотите работать инженер-программистом? Тогда можно как через ВУЗ, так и самому. Важно понимать, что если вы решили самостоятельно изучать тему, то сразу после изучения основ ищите компанию, которая возьмет вас к себе в роли Junior разработчика.
Мой опыт показывает, что даже самые именитые и уважаемые факультеты лучших ВУЗов РФ выпускают не только хороших, но и плохих программистов. Ведь что такое ВУЗ? Это возможность получить знания. Но когда мы усваиваем знания? - Когда наша мотивация достаточна.
Помню была на собеседовании девушка из очень хорошего ВУЗа. Когда она провалила всё что только можно, мы спросили - а почему она вообще пошла в такой ВУЗ, заплатила неимоверно много денег за обучение, и ничего от туда не забрала? (мы бы там с удовольствием слушали каждое слово профессоров!, а тут вот такое). Ответ был - "Меня мама туда отправила, сказала, что профессия востребованная".
Словом, важна только ваша мотивация: если вам это нравится и вы безумно хотите стать лучшим из лучших в программировании - ничто вас не остановит, и источник знаний не важен.
Только математика?