Нужно коснуться до всего слегка с ученым видом знатока.
Но это, кажется, не моя мысль.
Математику нужно любить и иметь десяток хороших учебников. Тогда любую программу написать не проблема.
Ну да. Если программа - это утилитка в пару сотен строк, а не приложение в пару сотен тысяч :)
Хороший программист в первую очередь должен
хорошо решать поставленную перед ним задачу. Соответственно, и знать он
должен только то, что необходимо ему для хорошего решения задачи.
Поэтому, как уже написали выше - должен знать математику, используемую в его работе. Иначе, "должен" - это как требовать от плотника умения декламировать стихи.
Вообще, по этой теме обычно радуют комментарии дяденек, сидящих по 20 лет в НИИ и занимающихся какой-нибудь ОЧЕНЬ ускоспециализированной штукой. Узнаёшь много интересного. Даёшь почитать тимлиду - тот тоже узнаёт много интересного.