Книги по математике для программистов?

Часто возникают проблемы из-за моих пробелов в математике ещё со школы, но к сожалению осознал её необходимость лишь в ВУЗе. Какие бы вы посоветовали книги, где доступно и емко описывались бы основные математические примеры, задачи и прочее?
  • Вопрос задан
  • 46389 просмотров
Пригласить эксперта
Ответы на вопрос 5
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Всё сложно.

Если кратко: обязательно Кнут и Кормен, остальное по желанию. Первую надо иметь как набор настольных томиков, читать не обязательно =) Я серьёзно, одна из немногих книг, что просто лежа рядом на столе повышает интеллект на 10. Кормен, ну, он другой. Его надо вдумчиво читать и выполнять упражнения. Все. То есть желательно, можно выборочно, структура книги весьма и весьма это позволяет. Математики почти нет, зато есть именно алгоритмы и структуры. Собственно, то, что программисту и надо. Выполнение всех упражнений повышает интеллект на 100500, так что этот вариант явно предпочтительнее, однако банальное наличие этой книги интеллект не повысит =)

Из чисто математических ресурсов очень рекомендую khan academy - нашикарнейший портал невыносимо крутых знаний. Но самое крутое, что я там пока вижу - это ответ на мой вопрос. Там всё очень упорядочено, от правила Бернулли — Лопиталя до закона Чебышева, от начал Аль-Хорезми, до проблем тысячелетия. В общем, очень круто, очень структурировано и очень... Просто очень. Хотя надо уточнить - он не чисто математический, у него есть чисто математический раздел.

UPD.
Dmitry напомнил мне про Кнута, Грэхема с Поташниковым. Мало того, что личности сами по себе довольно интересные, так ещё и книга поистине получилась замечательная. И хотя можно долго спорить о необходимости программисту иметь определённые познания в математике - лично я почувствовал определённое просвещение, прочитав эту книгу.
Ответ написан
@Gabriel_vs
I'm a Scientist in Data Analysis / programmar.
Читать обо всем подряд в математике будет крайне не продуктивно. Надо отталкиваться от задачи, или хотя бы от направления, в котором придётся заниматься. Математика для разработчика шейдеров или библиотек в компьютерной графике мало пригодится для разработчика в области анализа данных (например в области Информационного поиска). Как писалось выше, действительно правильно было бы направить свои усилия на алгоритмы (не полениться досконально разобраться даже в элементарных алгоритмах). Если есть ощущение, что Кормен или Кнут тяжело идут и есть пробелы (а они наверняка будут), то можно на вооружение взять книгу Ахо, Построение и анализ вычислительных алгоритмов.

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

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

Если есть желание направить свои силы на изучение математики в области информационного поиска, то можно почитать книгу Маннинга, Введение в информационный поиск. Там множество отсылок к конкретным математическим пластам.

Но алгоритмы и их хорошее понимание (включая асимптотику) является хорошим примером (началом) изучения математики отталкиваясь от задачи.
Ответ написан
Комментировать
globuzer
@globuzer
gezgrouvingus progreszive ombusgrander greyderzux
Книги по математике для программистов...
Широкое понятие и того и другого...
Математика - большая наука, в ней много разделов.
Программисты тоже бывают разные.
Как наиболее востебованные для людей, в той или иной степени связанных с программированием можно определить следующие подразделы по математике и анализу:
алгебра, анализ данных, булевы алгебры, временные ряды, численные методы, графы, дискретная математика, дисперсионный анализ, комбинаторика, криптография, линейная алгебра, математический анализ, математическая логика, теория алгоритмов, числа, нейронные сети, нечеткая логика, погрешности, принятие решений, прогнозирование, распознование образов, рекурсия, системный анализ, статистика, теория вероятностей, игр, множеств, эконометрика и другие...
Если взять каждое из приведенных слов как ключевое, ввести в поисковике, задав критерии с тегами "литература", "книги", "основы", то можно получить большое количество хорошей информации полезной для любого программиста, ну и просто для общего развития, прокачки естественно-аналитических и математических способностей.
Как наиболее в последнее время мне попадавшиеся книги по математике, которые могут вам пригодиться, приведу несколько, но это не панацея:
Ван дер Варден. Алгебра.
Шафаревич. Основные понятия алгебры.
Курош. Общая алгебра.
Барсегян. Технологии анализа данных.
Эсбенсен. Анализ многомерных данных.
Подзоров.Булевы алгебры.
Кук. Компьютерная математика.
Алексеев. Графы. Модели вычислений. Структуры данных.
Басакер. Конечные графы и сети.
Зубов. Справочник программиста. Базовые методы решения графовых задач и сортировки.
Кристофидес. Теория графов. Алгоритмический подход.
Бессонова. Основы дискретной математики.
Иванов. Дискретная математика. Алгоритмы и программы.
Виленкин. Комбинаторика.
Ахо. Структуры данных и алгоритмы.
Гильберт. Основания математики.
Кнут. Искусство программирования.
Рояк. Математическая логика.
Горбань. Нейронные сети.
Тэрано. Прикладные нечеткие системы.
Мальцев. Алгоритмы и рекурсивные функции.
Афифи. Статистический анализ.
Феллер. Введение теорию вероятностей ее приложения.
Хассе. Лекции по теории чисел.
Ой, ну это только единицы из всей многотысячной библиотеки книг по математике. Также не забывайте изучать зарубежные труды, так как иностранная литература, периодика очень часто бывает на шаг впереди российской, особенно в этих отраслях. Определите в какой области вам придется работать, что там более применимо, что необходимо, на такую литературу и ориентируйтесь. Но основы и вообще основные понятия по математике должен знать каждый уважающий себя программист, да и вообще просто образованный человек, инженер, специалист, менеджер, аналитик...
Ответ написан
Комментировать
@kstyle
Крамор
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы