В порядке важности я бы сказал:
- Алгебра
- комбинаторика
- Статистика и вероятность
- Vector Math
- Matrix Math
- Исчисление
На мой взгляд, алгебра необходима для любого порядочного программиста, поскольку она формирует основу для представления переменных и вычисления выражений (функций, коммутативности и транзитивности операций и т. Д.).
Комбинаторика необходима для всех видов графовых алгоритмов (обход всех узлов графа, поиск кратчайших путей и т. Д.). Умение разбираться в комбинациях и перестановках жизненно важно практически в любом контексте программирования.
Следующая в очереди статистика, особенно если вы хотите заняться искусственным интеллектом или машинным обучением. Stats, пожалуй, самая большая область математических знаний для программистов. В большинстве случаев вам не нужно вдаваться в тяжелые вещи, такие как многовариантные регрессии. Просто знание того, как (и при каких обстоятельствах) быстро рассчитать среднее значение, медиану, режим, стандартное отклонение, предел погрешности, доверительный интервал и условные вероятности, чрезвычайно полезно для многих приложений машинного обучения.
Векторная математика важна в различных приложениях для информационного моделирования (n-мерные модели векторного пространства являются очень удобным способом рассуждать о семантике документов), а также для всех видов приложений для трехмерной графики.
Матричная математика во многом схожа с векторной математикой с точки зрения ее приложений (ИИ, информационные модели, 3D и т. Д.), Но немного сложнее, поскольку добавляет еще одно измерение. (Математическая математика - это моя собственная ахиллесова пята; я определенно мог бы использовать кисть.)
И исчисление необходимо всем, кто занимается научными вычислениями и симуляциями.
Веселись!
В режиме редактирования:
Я думаю, что лучший способ освежить свои математические знания - это работать над проектом, который использует эти знания. Если, например, вы хотите изучить некоторую статистику (например, ДЕЙСТВИТЕЛЬНО изучать ее, чтобы можно было набрать все формулы, не просматривая их), то вам может быть интересно проанализировать набор данных из Netflix Prize конкурс.
Набор данных включает в себя более 100 миллионов записей из пользовательской базы данных Netflix и предоставляет огромную возможность попробовать свои силы при реализации некоторых из этих сложных математических алгоритмов.
Что касается реальных справочных материалов, я обнаружил, что википедия более чем адекватна. Например, в моем недавнем проекте я неоднократно ссылался на некоторые из его статей по оценкам плотности ядра и векторных полей .
Пугающая вещь (для меня) в хардкорной математике (поскольку я почти полностью самоучка) - это нотация. Все эти греческие буквы слегка закружили мою голову. Но если вы прочитаете статьи несколько раз (и в Google найдете такие фразы, как «символ математической сигмы»), то не составит труда собрать воедино то, о чем они говорят.