Нет. Программист ОЧЕНЬ хорошо разбирается например в математике. Не всякий выпускник ВУЗа так может. Но одна математика программиста не делает. Он же программирует не для себя, а для решения каких то задач. Разных задач, из разных наук и областей знания. И во всех этих науках и областях надо как минимум разбираться. Не обязательно знать досконально (хотя это, конечно, лучше)) но разбираться что к чему. Так что для успеха надо как минимум красный диплом. А лучше не один.
Те, кто по настоящему добиваются успеха, примерно с 15 лет до 35 пашут, не подымая головы. Стараются сократить сон, чтобы побольше освободить времени для учебы и работы. Не шляются по клубам, пати и кабакам. Вообще. Никогда. Только учеба и работа...