evgeniy8705
@evgeniy8705
Повелитель вселенной

В каком порядке изучать математические дисциплины?

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

Понимаю что для разных областей программирования необходимы какие то конкретные, определенные разделы, но думаю что есть общая какая то программа, которую освоить не помешает любому программисту.
В общем подскажите пожалуйста хотя бы список разделов математики, которые желательно изучить. Учебные пособия думаю смогу подобрать. Мне главное узнать последовательность, от простого к сложному.
  • Вопрос задан
  • 13500 просмотров
Пригласить эксперта
Ответы на вопрос 8
@rebovetew
В ВУЗе подскажут.
Если ты самоучка - то не нужны тебе математические дисциплины для того, чтобы программировать.
Нужно будет только под конкретную задачу что-то прочитать. Возможно.
А скорее всего - и не понадобится.

Получать же универсальное математическое образование - лучше в ВУЗе.
Ответ написан
@yceg
База
Математическая логика - особое внимание: теория множеств, для общего образования (понимание некоторых процессов): вычислимость, логики первого и высшего порядков
Дискретная математика - особое внимание: теория графов, комбинаторика, для общего образования: теория автоматов
Теория игр - тут все очень специфично
Остальное, как заметили выше, зависит от конкретных задач (то же треклятое интегральное исчисление все же имеет применение, но оочень узкое и 99.99% не особо нужное)
Ответ написан
Комментировать
@Klass
web developer
Некая математическая база у Вас уже имеется (школу уж все заканчивали). Первое с чем знакомят в ВУЗах по специальности программирование - это основы логики(конъюнкция, дизъюнкция, предикаты, графы). Далее дискретная математика: нужно знать как думает машина. Следующим шагом будет Теория алгоритмов: сложность алгоритма, рекурсия, итерация, системы счисления, деревья, стеки и тп. Если хотите углубляться в математику изучите матанализ - очень хороший инструмент + дает ясность во все математическом хаосе. Если хотите работать с графикой делайте уклон в геометрию. Основа же формируется из первых трех дисциплин.
Ответ написан
Комментировать
@hatiko
Смотря зачем.
Для того, чем занимаются почти все программисты, то есть веб-сайтики и Андроид - высшая математика не нужна, от слова "вообще".
Если вы хотите серьезно заморочиться с 3D графикой, то прочитайте вводный курс по линейной алгебре, этого достаточно.

Типичный пример - какой минимальный уровень знаний по высшей математике нужен практикующему инженеру-программисту.
https://habrahabr.ru/company/yandex/blog/311806/
Тут только умножение матриц. Математическое обоснование надежности решения - лежит за пределами работы программистов.
Ответ написан
Комментировать
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Стандартный школьный курс математики и физики, затем стандартный ВУЗовский курс математики и физики - это уже по желанию. В типичных случаях школьного курса будет достаточно. А вот например программирование 3D графики уже требует более глубокого понимания математики и физики - да-да, понимание физики и умение решать физические задачи тоже необходимо (например банальный тетрис - там физика есть, хоть и простая, но есть). Тригонометрия, матрицы, кватернионы, графы, теория вероятности - это все есть и используется в 3D графике. А в играх еще и теории ИИ, поиска путей, а в некоторых случаях и многомерные пространства и не-евклидова геометрия. Ну и остальные разделы математики - уже по ситуации. Например в исследовательских приборах или МК тоже часто встречается специфическая математика и физика, которые надо рассчитывать.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Базовые навыки и алгоритмы, необходимые каждому программисту:
1. представление данных (системы счисления, представления чисел и т.д.),
2. арифметические и бинарные операции и их законы зависимостей (формулы)
3. поиск по данным (алгоритмы)
4. сортировка данных (алгоритмы)
5. работа со структурами данных ("деревьями", стеками/очередями, многомерными множествами, и т.д.)
6. бинарные операции над структурами данных
(на первое время - хватит)
Ответ написан
@potan
Функциональный программист
В первую очередь теория множеств и логика. Теория вычислимости тоже полезна. В области разработки микроэлектронных систем, ИИ, верификации программ, рекомендательных системах, проектировании языков программирования этим надо владеть глубоко, в остальных областях достаточно общего знакомства, но на начальном уровне знать надо. Хорошо еще теорию категорий и общую алгебру, но это сложные темы, их стоит поверхностно просмотреть, а потом углубляться по мере возможности и желания.
Чаще всего требуются теория вероятности и статистика (ну и комбинаторика). Особенно в модном нынче анализе данных с машинным обучением.
В машинном обучении очень важна линейная алгебра.
В графике, САПР и робототехнике еще будет полезна дифференциальная геометрия.

Порядок изучения, мне кажется, не должен быть строгим. Лучше изучать по маленьким кусочкам разные дисциплины, иногда возвращаясь к темам для более глубокого изучения.
Ответ написан
@artemt
Full-stack developer
Правильно сказали, что достаточно основ математики и здравого смысла. Но если очень хочется, начни с комбинаторики. Комбинаторика для начинающих. Дальше сам решишь надо ли.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы