"Должен" ли он? Если честно, вряд ли. Разработка ПО как таковая, сам процесс написания и структурирования исходного кода программы, не требует знания математики, ни школьной, ни университетской. Всё зависит от задач, которые вы решаете. Понятное дело, если вы пишете физический движок для моделирования уравнений Навье-Стокса, то вам понадобится чуток больше и совсем других математических знаний, чем если бы вы занимались штамповкой продающих лэндингов на заказ и генерацией воронок продаж с них.
Если открыть книги безусловно продвинутых программистов - Мартина Фаулера, банды четырёх, Роберта Мартина, Джоэла Спольски, Эндрю Ханта и Дэвида Томаса, Кента Бека, Эрика Эванса и других - то мы не увидим в них математики. Самое большее, какие-то элементарные арифметические знания на бытовом уровне. Дроби, проценты, вероятности.
Однако, я могу осторожно предположить, что "продвинутый программист" ассоциируется с фразой "понимает в математике", потому что так получилось и потому что книги по алгоритмизации ассоциируются с математикой. Продвинутый разработчик ПО, безусловно, должен знать алгоритмизацию и структуры данных, а это относят к дискретной математике.
Опять же, "понимать в математике" - что это значит? Уметь самостоятельно вывести доказательство какого-то математического результата? Нафиг не надо. Уметь самостоятельно прочитать монографию по Банаховым пространствам, которые векторные нормированные, полные по метрике, порождённой нормой? Вообще не в кассу. Решать дифференциальные уравнения, вычислять криволинейные интегралы? Всё это уже один раз было решено, насмерть оптимизировано и больше с нуля выводить не рекомендуется.
Традиционно к математике, желательной в компьютерных науках, относят дискретку - булеву алгебру, теорию графов, теорию множеств - и теорию алгоритмов, которая к математике относится примерно так же, как химия относится к физике.
Я из своего университетского курса прикладной математики, который прошёл в 2006-2011 годах, сказал бы, что мне каждый день пригождается как раз булева алгебра, теория графов и теория множеств. Теория вероятности и матстат пригодились вообще в целом для общего развития, ну да их теперь аж в средней школе читают. И правильно делают.
В геймдеве, безусловно, очень нужна векторная алгебра и матрицы. Для некоторых специфических задач мне были бы полезны вещи из теории игр и динамического программирования, но мне не ставят такие задачи, а теория игр к математике относится примерно так же, как к теоретической физике относится сопромат.
То, что ожидается от действительно продвинутого программиста, отлично написано в Code Complete МакКоннелла, "Идеальном программисте" и "Чистом коде" Мартина, и в The Pragmatic Programmer Ханта и Томаса. Первые две книги есть на русском.
Чистая математика, полезная для алгоритмиста, собрана в книге Concrete Mathematics, которую составили Грэхэм и Кнут, на минуточку, автор буквально легендарного The Art of Computer Programming. TAoCP тоже включает в себя главу с перечислением необходимых, по мнению Кнута, математических знаний для программиста.