Как я могу лучше всего заполнить пробелы в моих знаниях по математике? - PullRequest
13 голосов
/ 18 ноября 2008

Время от времени у меня складывается впечатление, что мои знания по математике (в области разработки программного обеспечения) имеют пробелы. Я образованный человек. У меня есть высшее образование. Мне всегда нравилось учиться, поэтому я хотел бы попытаться заполнить эти пробелы.

Моя работа связана с финансовой индустрией, и я чувствую, что многие из масштабных задач по вычислению чисел, которые мы выполняем, могли бы быть более эффективными, возможно, если бы я лучше разбирался в математике / логике, которые в нее входят или концепции, которые можно использовать как ярлык.

У вас есть предложения? Книги, которые вы нашли, помогли с этим? Видео лекции?

РЕДАКТИРОВАТЬ: я должен отметить, что моя степень в области компьютерных наук, поэтому я знаком с некоторыми областями математики, которые имеют отношение. Я просто не уверен, как лучше их освежить или уточнить то, что я уже знаю :)

Ответы [ 11 ]

8 голосов
/ 18 ноября 2008

Одной из областей математики, которая очень полезна для программирования, является дискретная математика. Хорошим примером для этого является курс MIT Open Courseware «Математика для информатики», который здесь .

6 голосов
/ 18 ноября 2008

В порядке важности я бы сказал:

  • Алгебра
  • комбинаторика
  • Статистика и вероятность
  • Vector Math
  • Matrix Math
  • Исчисление

На мой взгляд, алгебра необходима для любого порядочного программиста, поскольку она формирует основу для представления переменных и вычисления выражений (функций, коммутативности и транзитивности операций и т. Д.).

Комбинаторика необходима для всех видов графовых алгоритмов (обход всех узлов графа, поиск кратчайших путей и т. Д.). Умение разбираться в комбинациях и перестановках жизненно важно практически в любом контексте программирования.

Следующая в очереди статистика, особенно если вы хотите заняться искусственным интеллектом или машинным обучением. Stats, пожалуй, самая большая область математических знаний для программистов. В большинстве случаев вам не нужно вдаваться в тяжелые вещи, такие как многовариантные регрессии. Просто знание того, как (и при каких обстоятельствах) быстро рассчитать среднее значение, медиану, режим, стандартное отклонение, предел погрешности, доверительный интервал и условные вероятности, чрезвычайно полезно для многих приложений машинного обучения.

Векторная математика важна в различных приложениях для информационного моделирования (n-мерные модели векторного пространства являются очень удобным способом рассуждать о семантике документов), а также для всех видов приложений для трехмерной графики.

Матричная математика во многом схожа с векторной математикой с точки зрения ее приложений (ИИ, информационные модели, 3D и т. Д.), Но немного сложнее, поскольку добавляет еще одно измерение. (Математическая математика - это моя собственная ахиллесова пята; я определенно мог бы использовать кисть.)

И исчисление необходимо всем, кто занимается научными вычислениями и симуляциями.

Веселись!


В режиме редактирования:

Я думаю, что лучший способ освежить свои математические знания - это работать над проектом, который использует эти знания. Если, например, вы хотите изучить некоторую статистику (например, ДЕЙСТВИТЕЛЬНО изучать ее, чтобы можно было набрать все формулы, не просматривая их), то вам может быть интересно проанализировать набор данных из Netflix Prize конкурс.

Набор данных включает в себя более 100 миллионов записей из пользовательской базы данных Netflix и предоставляет огромную возможность попробовать свои силы при реализации некоторых из этих сложных математических алгоритмов.

Что касается реальных справочных материалов, я обнаружил, что википедия более чем адекватна. Например, в моем недавнем проекте я неоднократно ссылался на некоторые из его статей по оценкам плотности ядра и векторных полей .

Пугающая вещь (для меня) в хардкорной математике (поскольку я почти полностью самоучка) - это нотация. Все эти греческие буквы слегка закружили мою голову. Но если вы прочитаете статьи несколько раз (и в Google найдете такие фразы, как «символ математической сигмы»), то не составит труда собрать воедино то, о чем они говорят.

4 голосов
/ 18 ноября 2008

Вы должны знать вероятность и статистику . Я прошел через это в моей программе физики бакалавриата. Стэнфорд предлагает бесплатные лекции по математике и физике, я думаю, что вы можете получить к ним доступ здесь (многие университеты в настоящее время делают эту идею видео лекций ). И что-то , что только что порекомендовал один из создателей этого сайта.

3 голосов
/ 18 ноября 2008

Это может не иметь прямого отношения, но Project Euler замечательно помогает вам мыслить математически.

2 голосов
/ 18 ноября 2008

Конкретная математика. Это учебник для колледжа Кнута, который подчеркивает практическое решение проблем в областях, имеющих отношение к программистам.

1 голос
/ 26 декабря 2008

Еще один - вот набор видео и аудио лекций из дискретного курса математики Стивена Скиены . Он известен как парень, который написал Руководство по разработке алгоритмов (известное как «Руководство по алгоритмам автостопом»), и его курс по математике также неплох.

1 голос
/ 18 ноября 2008

Почему бы не взять несколько классов в местном университете? Возможно, некоторые из тех, кто сходит с ума по вашей работе, могут знать, какие уроки вам следует посещать?

1 голос
/ 18 ноября 2008

Я бы посмотрел требования к курсу, которые нужны крупным университетам для получения степени информатики. Там обычно правильная смесь математики.

1 голос
/ 18 ноября 2008
  • Вернитесь к своим заметкам по математике в колледже. Посмотрите, что вы помните, а что нет. Попробуйте повторить некоторые из ваших заданий.
  • После того, как вы выяснили, какие области необходимо пересмотреть, перейдите оттуда. Используйте OCW или другие бесплатные онлайн-материалы курса, чтобы расширить свои знания.
0 голосов
/ 19 ноября 2008

Достаньте книгу, например, хороший учебник по дискретной математике, и начинайте выполнять упражнения каждый день. Сделай все из них.

Повторите с другой книгой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...