Где я могу найти математические темы и ресурсы для программистов? - PullRequest
7 голосов
/ 24 июля 2009

Вокруг этого вопроса есть несколько вопросов вокруг этого вопроса, но я чувствую, что это достаточно отличается.

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

  1. Какие темы мне следует изучать?
  2. Какие ресурсы вы рекомендуете (блоги / книги / онлайн-лекции ...)?

Я ищу легкие в использовании ресурсы, потому что я буду заниматься этим в свободное время, я не хочу тратить дни на борьбу с плотным текстом, но я хочу стать глубже, чем на поверхности. Я прочитал Yegge статью на эту тему (и большинство комментариев), которая полезна, но я думаю, что система голосования здесь поможет мне сосредоточиться на самых полезных / лучших ресурсах и темах.


Редактировать:

Я хочу создать себе учебный курс, который я буду изучать в течение следующих нескольких лет, я не хочу решать какую-то конкретную проблему, я просто хочу научиться некоторымновые навыки, которые заинтересуют меня и могут пригодиться в моей карьере в будущем.

Ответы [ 11 ]

5 голосов
/ 24 июля 2009

Конкретная математика: основа компьютерных наук будет моим предложением для книги, которая охватывает некоторые сложные темы.

2 голосов
/ 24 июля 2009

Это немного от вашего вопроса, но позвольте мне предложить Принстонский компаньон по математике .

Он дает обзор всей математики, так что это больше, чем просто "математика полезна"программистам ", но его стиль так же легко понять, как он есть, и важные части там.

2 голосов
/ 24 июля 2009

Любой программист преуспел бы, чтобы иметь четкое понимание на уровне бакалавриата следующих математических курсов:

  1. Исчисление (в многопараметрическом расчете)
  2. Дискретная математика (абсолютно необходимо)
  3. Линейная алгебра (необходима для понимания матриц)
  4. Комбинаторика (дальнейшее развитие математики Дикрета)
  5. Введение в абстрактную алгебру (это укрепит ваше понимание числа по модулюсистемы, в частности двоичные, восьмеричные, шестнадцатеричные и т. д.). Это также дает глубокое понимание теории множеств, которая повсеместна в практическом программировании и в научной литературе.

Это основные принципы. Если вы думаете о графике или игровом программировании, то у вас есть целый ряд дополнительных курсов по физике, графике и, возможно, плавной динамике. Кроме того, дифференциальная геометрия необходима для любого реального моделирования движения на изогнутых поверхностях.

2 голосов
/ 24 июля 2009

Для введения в дискретную математику я настоятельно рекомендую это.

Мне очень повезло, что мне предоставили эту книгу из университета

2 голосов
/ 24 июля 2009
  1. Если у вас есть интерес к разработке игр, 3D-графике или к чему-то, что связано с ними, тогда сделайте многомерное исчисление и базовую физику. Это поможет вам лучше понять основные понятия. Кроме того, линейная алгебра очень поможет со всеми матричными / векторными вещами, которые вы будете делать.

    Если вас НЕ интересуют эти темы, я бы все же сказал, изучать исчисление и физику. Почему? Решение проблем исчисления и физики дает вам хороший опыт в решении проблем и тренирует мозг. Программисты должны быть хорошими решениями проблем ... это наша работа. Концепции, которые вы выбираете на этих курсах, - это вещи, которые вы будете держать с собой до конца своей жизни.

  2. MIT и Stanford предлагают по-настоящему хорошие онлайн-курсы по таким темам. Конечно, вы не можете просто перейти к многомерному исчислению без некоторого более базового вычисления, но MIT и Stanford также имеют ресурсы для ваших базовых классов исчисления. Базовую физику будет немного легче подобрать. Опять же, вы можете проверить MIT и Stanford на предмет физики.

MIT OpenCourseWare :

0 голосов
/ 24 июля 2009

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

Факты / Ориентация:

Дональд Кнут - Бронштейн, Semendjajew

Наука программирования- Структуры данных и алгоритмы

Мотивация / Любопытство:

Дорога к реальности - Последняя теорема Ферма - Годель, Эшер, Бах

Также для мотивации с более практической стороны:

projecteuler.net

0 голосов
/ 24 июля 2009

Рассмотрим серию произведений Кнута «Искусство компьютерного программирования». Он может стать плотным, но он даст вам математику, наиболее необходимую для программирования. Я бы посоветовал сразу перейти к доступным брошюрам из 4-го тома. Эти книги не для всех, но если вы найдете их интересными, вы многому научитесь.

Они не научат вас исчислению или геометрии, которые важны во многих аспектах программирования, но, как правило, более специализированы. .

0 голосов
/ 24 июля 2009

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

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

0 голосов
/ 24 июля 2009

Что касается тем, посмотрите на некоторые ответы здесь . Мне трудно дать рекомендуемые ресурсы, я говорю по-немецки. Я бы порекомендовал начать с линейной алгебры и геометрии, которые вы найдете в компьютерной графике. Взгляните на серию математических работ Спрингера для студентов.

0 голосов
/ 24 июля 2009

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

По сути, я бы просто рекомендовал изучать математику по мере необходимости для любого проекта, над которым вы работаете. Если вы хотите дать себе хороший повод изучать новую математику, запустите хобби-программу, которая делает что-то математическое.

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