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