Ответ 1
Одной из областей математики, которая очень полезна для программирования, является дискретная математика. Хорошей ссылкой для этого является курс MIT Open Courseware на тему "Математика для компьютерных наук", которая здесь.
У меня так часто возникает впечатление, что мои знания в области математики (как и в области разработки программного обеспечения) имеют некоторые пробелы. Я образованный человек. У меня есть высшее образование. Мне всегда нравилось учиться, поэтому я хотел бы попытаться заполнить эти пробелы.
Моя работа связана с финансовой отраслью, и я чувствую, что многие из масштабных задач, которые мы делаем, могут быть более эффективными, возможно, если бы я лучше разбирался в математике/логике, которая шла в нее, или понятия, которые можно использовать в качестве ярлыка.
Есть ли у вас предложения? Книги, которые вы нашли, помогли с этим? Видео лекции?
EDIT: Я должен отметить, что моя степень в области компьютерных наук, поэтому я знаком с некоторыми из областей математики, которые актуальны. Я просто не знаю, как лучше на них наброситься или уточнить то, что я уже знаю:)
Одной из областей математики, которая очень полезна для программирования, является дискретная математика. Хорошей ссылкой для этого является курс MIT Open Courseware на тему "Математика для компьютерных наук", которая здесь.
В порядке важности я бы сказал:
По моему мнению, Алгебра необходима для любого достойного программиста, поскольку она формирует основы оценки переменных и выражений (функции, коммутативность и транзитивность операций и т.д.).
Комбинаторика необходима для всех видов алгоритмов графа (перемещение всех узлов в графе, поиск кратчайших путей и т.д.). Знание вашего пути вокруг комбинаций и перестановок жизненно важно практически в любом контексте программирования.
Далее в строке есть статистика, особенно если вы хотите попасть в ИИ или машинное обучение. Статистика, вероятно, самая большая область знаний математики для программистов. В большинстве случаев вам не нужно попадать в тяжелые вещи, например, многомерные регрессии. Просто зная, как (и при каких обстоятельствах) быстро вычислять среднее, медианное, режимное, стандартное отклонение, предел погрешности, доверительный интервал и условные вероятности чрезвычайно полезны для многих приложений машинного обучения.
Векторная математика важна во множестве приложений для моделирования информации (n-мерные модели векторного пространства - очень удобный способ рассуждения о семантике документа), а также для всех видов приложений 3D-графики.
Матричная математика очень похожа на векторную математику с точки зрения ее приложений (AI, информационные модели, 3D и т.д.), но это немного сложнее, поскольку она добавляет другое измерение. (Matrix math - это моя собственная ахиллесная пятка, я определенно мог бы использовать кисть.)
И исчисление важно для тех, кто занимается научными вычислениями и симуляцией.
Удачи!
ON EDIT:
Я думаю, что лучший способ освежить ваши математические знания - это работать над проектом, который использует эти знания. Если, например, вы хотите узнать некоторые статистические данные (например, ДЕЙСТВИТЕЛЬНО изучить его, чтобы вы могли сбивать все формулы, не глядя на них), тогда вам может быть интересно проанализировать набор данных из Конкурс Netflix Prize.
Набор данных содержит более 100 миллионов записей из пользовательской базы данных Netflix и предлагает огромную возможность попробовать свои отбивные при реализации некоторых из этих математических алгоритмов.
Что касается реальных справочных материалов, я нашел википедию более чем достаточной. Например, в недавнем моем проекте я неоднократно упоминал некоторые из своих статей о Оценка плотности ядра и Векторные поля.
Загадочная вещь (для меня) о хардкорной математике (так как я почти полностью самоучка) - это обозначение. Все эти греческие буквы положили мне голову в вихре. Но если вы читаете статьи несколько раз (и google для таких фраз, как "символ математической сигмы" ), тогда не сложно собрать все то, о чем они говорят.
Вы должны знать вероятность и статистика. Я прошел это в своей программе бакалавриата по физике. Стэнфорд предлагает бесплатные лекции по математике и физике, я думаю, что вы можете получить к ним доступ здесь (многие университеты теперь делают это публично видео лекции). И что-то, что только один из создателей этого сайта просто рекомендовал.
Он может не относиться напрямую, но Project Euler отлично подходит для размышлений математически.
Конкретная математика. Это учебник колледжа Кнута, который подчеркивает практическое решение проблем в областях, имеющих отношение к программистам.
Я хотел бы изучить требования к университетам, которые нужны университетам для получения степени "Компьютерные науки". Обычно там правильное сочетание математики.
Почему бы не взять несколько классов в университетском университете? Возможно, некоторые из числа дрожащих выродков в вашей работе могут знать, какие классы вы должны посетить?
Еще один - вот набор видео и аудио лекций из дискретного математического курса Стивена Лёсена. Он известен тем, что был парнем, который написал "Руководство по разработке алгоритмов" (так называемое "Автостопом по алгоритмам" ), и его математический курс тоже неплох.
Как человек, занимающийся математикой, я думаю, что математика лучше всего учится у хорошего учителя, с некоторым давлением на успех (например, плата за обучение). Мне легко учиться вычислять самостоятельно, но математика намного сложнее. Мне до сих пор очень нравится.
Вытащите книгу, например, хороший учебник по дискретному математике, и начинайте выполнять упражнения каждый день. Сделайте все.
Повторите с другой книгой.