Программирование типа шахмат, в нём есть что-то от искусства. Я напр., балдею от красивого алгоритма. Вам надо просто потихоньку изучать математику и думать, где это можно применить.
В программировании есть же простые принципы. Напр., "программа это алгоритм и структура данных" (я ещё добавляю - MMI, т.е. интерфейс Человек-машина). Вот и разбирайте разные структуры данных, напр., деревья.
Ещё, принцип структурного программирования: последовательность, развилка, цикл. Разве это сложно?
Многое зависит от сферы задач. Напр., для DirectX (3D) надо знать матрицы. Для обработки данных надо знать статистику. Для функционального стиля (напр., Haskell) нужно понимать абстракции: функтор, монада, моноид... Больше всего математики, наверное, нужно теоретическим физикам.
С другой стороны, в институте нас много учили аналитике интегралов, но в Матлабе оказалось, что компьютер считает численными методами (хотя, при желании можно перейти и к аналитике).