Азы линейной алгебры, дискретную логику, и аналитическую геометрию знать обязаны
Из постоянно нужного: статистика (на хорошем углублённом уровне), численные методы.
Это подъёмно изучить за 1-2 месяца. А далее сами разберётесь — по необходимости
Если вы в ладах с матаном — учите оценку сложности алгоритмов. Это настоящий третий глаз для программиста. Если с матаном не в ладах — учите матан :)
Специальные теории вроде теории графов, теории алгоритмов или нейронных сетей — не так эффективны при изучении без знаний математики
А для программирования — учите программирование.