195913

Математика для программиста: советы, разделы, литература

Наверняка вы задумывались над вопросом: нужна ли математика программисту? И если нужна, то как "приручить" эту самую математику?

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

Человек, которому никогда прежде не приходилось сталкиваться с математическими рассуждениями, может испытывать некоторые трудности с решением задач, восприятием фактов. Ему трудно отличить истинные утверждения от ложных, понять, какие следствия вытекают из того или иного утверждения.

"Незнание математики грозит кашей в голове."

- А. Савватеев, доктор физико-математических наук, эксперт отдела теоретических и прикладных разработок компании Яндекс, научный руководитель Лаборатории социального анализа при Университете Дмитрия Пожарского.

Статья разделена на несколько частей:

  • советы;
  • основные разделы математики для программиста;
  • список полезной литературы.

Советы

  1. Осознайте и примите тот факт, что хорошим математиком по одному желанию и щелчку пальцев стать невозможно. Все люди, добившиеся успехов в этом предмете, потратили на него часы упорного и напряжённого труда. Если вы встречаете человека, который решает математические задачи гораздо лучше вас, не стоит упрекать себя в отсутствии способностей к предмету или в отсутствии знаний.
  2. Занимайтесь там, где вас ничто не может отвлекать; отключите телефон, выйдите из соц. сетей и проявите силу воли.
  3. Занимайтесь ежедневно. Занимайтесь всегда и везде, где только возможно. Уберите из своих привычек бесцельный просмотр соцсетей, телевизора, увлечение видеоиграми и т. п. Вы сразу же ощутите, сколько свободного времени у вас появится. Используйте его с толком.
  4. Не занимайтесь слишком долго. Делайте перерывы. Не засиживайтесь над одной задачей часами напролёт, это может привести к стрессу. Иногда полезно менять деятельность на день-два, чтобы отдохнуть, но не слишком часто.
  5. Изучение нового в математике построено на уже приобретенных знаниях, поэтому все время повторяйте пройденное и упражняйтесь в решении задач. Если у вас есть пробелы в математике по программе пятого класса (да, бывает и такое), начните изучение с программы пятого класса. В этом нет ничего постыдного.
  6. Обязательно заведите две тетради: одну для теории, другую для практики. Пронумеруйте каждый лист. На заднем листе тетради с теорией составьте оглавление (тема - страница). В будущем это вам очень пригодится.
  7. Если в задаче у вас выходит неверный ответ, решите её ещё раз. Не надо придумывать себе оправдания и откладывать повторное решение. В таких ситуациях важно не просто найти правильный ответ, но и понять, почему в прошлый раз вы решили задачу неверно. Помните, что задача стоит потраченного времени.
  8. Не стесняйтесь просить помощи у человека, разбирающегося в предмете. Идеальным вариантом будут платные занятия с высококвалифицированным репетитором, если у вас есть такая возможность.

Математика для программиста: основные разделы

  • Логика и дискретная математика.Тут же основы теории множеств, теории чисел, теории графов. Базовые вещи начинают изучать ещё в школе.
  • Математический анализ. С одной стороны, он демонстрирует всю красоту и мощь математики, а с другой – агонию математического образования. Раздел сложен в плане понимания, так что тут без посторонней помощи не обойтись. Необходим людям, собирающимся в Computer Science.
  • Линейная алгебра. Необходимость освоения раздела зависит от будущих целей. Если вы хотите пойти в GameDev, VR, графику и проч. – линейная алгебра обязательна. Развивает абстрактное мышление, что важно в программировании в целом. Представлять себе многомерные структуры и их взаимосвязь: это очень круто.
  • Статистика и комбинаторика. Базовый раздел, который начинают изучать ещё в школе. Темы из этого курса в работе программиста встречаются практически ежедневно.
  • Теория алгоритмов. В русском языке принято такое название, однако оно не очень удачное. В оригинале это звучит как “Theory of Computation”. Для изучения потребуется основной мат. аппарат, поэтому начинать с этого раздела не рекомендуется. Зато после изучения вы понимаете, почему алгоритмы выполняются, и компьютеры на самом деле работают всегда.

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

Школьная программа:

  • Сборник задач по алгебре. 8 - 9 класс. М.Л. Галицкий, А.М. Гольдман. Создан для учащихся в классах физико-математического профиля.
  • Алгебра и начала математического анализа. 10 класс. В 2 ч. Ч.1. Учебник (профильный уровень) Мордкович А.Г., Семенов П.В. (2009, 424с.)
  • Алгебра и начала математического анализа. 10 класс. В 2 ч. Ч.2. Задачник (профильный уровень). Мордкович А.Г. и др. (2009, 343с.
  • Алгебра и начала математического анализа. 11 класс. Учебник. (базовый и углублённый уровни). Мордкович А.Г., Семенов П.В. (2014, 311с.)
  • Алгебра и начала математического анализа. 11 класс. Задачник. (базовый и углублённый уровни). Мордкович А.Г. и др. (2014, 264с.)

Вузовская математика:

Наша статья с подборкой материалов по вузовской математике.

  • Задачник Смирнов Ю.М. Сборник задач по аналитической геометрии и линейной алгебре: учеб. пособие для студентов ун-тов, обучающихся по специальностям ''Математика'' и ''Приклад. математика''
  • Основы высшей алгебры - Сушкевич А. К. (1937 г.)
  • Путь в современную математику - Сойер У. У. (1972 г.)
  • Курс математического анализа. - Кудрявцев Л.Д.

Комбинаторика:

  • Популярная комбинаторика - Н. Я. Виленкин (1975 г.)
  • Статистика. Вероятность. Комбинаторика - Я. С. Бродский
  • Комбинаторика для программистов - В. Липский
  • Комбинаторика - М. Холл (1970 г.)
  • Введение в комбинаторный анализ - Дж. Риордан (1963 г.)

Дискретная математика:

  • Введение в дискретную математику - С. В. Яблонский
  • Графы и их применение - Л. Ю. Березина
  • Дискретная математика - Горбатов В.А., Горбатов А.В., Горбатова М.В. (2006 г.)

Видеокурс "Основы линейной алгебры" 

Видеокурс по алгоритмам

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
08 октября 2017

13 ресурсов, чтобы выучить математику

Среди разработчиков часто возникают споры о том, необходимо ли изучать мате...