Судя по тому, что таг указан "нейронные сети", в первую очередь требуется линейная алгебра (по моему, хоть это звучит неожиданно, ее проще изучать параллельно с функциональным программированием - это помогает начать думать об векторах, векторных пространствах, отображениях, перестановках, как о цельных объектах, идея карринга позволяет по новому взглянуть на полилинейные отображения - по моим наблюдениям именно эти концепции вызывают трудности у изучающих линейку). Так же нужны матан и функан. Для обработки сигналов полезно знакомство с ТФКП. При работе с данными очень важны тервер и статистика.
В общепрограммистких вопросах полезны дискретная математика, комбинаторика, теория графов, общая алгебра и теория категорий.
Другие разделы математики нужны в отдельных областях - дифгем и топология в 3D-моделировании, дифуры в робототехнике, урчапы в моделировании пространственных явлений.