Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
09 Авг 2022
7 мин
8381

Насколько программисту необходима математика для успешной работы

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

Математика прокачивает личностные качества: развивает память, мышление, улучшает концентрацию и интуицию. Поэтому ее стоит изучать не столько ради кода, сколько для развития.

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

Хорошо тренируют концентрацию математические задачи. Приходится держать в уме цифры, формулы, переменные. А еще возвращаться в начало уравнения и делать промежуточные расчеты. Стоит отвлечься — и вылезет ошибка. 

Терпение и настойчивость. Нужны при поиске ошибок в программе. Иногда приходится тестировать код раз за разом. Если уже через пару часов работы хочется всё бросить — скорее всего, с терпением беда. Его надо тренировать.

В математике решение тоже не всегда приходит с первого раза. А бывает, решаешь-решаешь, а в конце — тупик: всё неверно. Надо перечеркнуть и начать с начала. Но чем больше практики, тем проще относишься к таким ситуациям.

Оперативная память. По-другому — умение держать в голове много разной информации. 

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

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

Интуиция. Люди, которые постоянно решают математические задачи, учатся находить закономерности. В дальнейшем, даже если попадется новая задача, чутье подскажет, как ее решить.

В IT интуиция нужна, когда ищешь решение задачи. Например, чтобы разработать алгоритм сортировки данных. Если чутье развито, не придется тратить часы, чтобы опробовать все возможные варианты.

Какую математику нужно знать программисту и для каких задач

Математика — это не один большой раздел науки, а несколько. Какие-то простые, их используются все — например, когда складывают или вычитают. Другие — сложные и нужные только узким спецам.

♟ Логика. Базовые знания логики — так называемую булеву алгебру — используют почти все программисты. Но это несложный раздел математики, изучить его можно самостоятельно.

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

Еще продвинутые разделы нужны спецам, которые работают с базами данных — хранилищами информации. Чтобы вытащить конкретные данные, их надо отсортировать. Это делают через язык запросов SQL. 

Узнайте, как решать бизнес-задачи с помощью SQL, на курсе Skypro. За два месяца научитесь извлекать информацию из баз данных и глубже анализировать поведение пользователей, проводить аналитические исследования и находить инсайты. Поймете, как улучшить сайт или приложение через грамотную работу с базами данных. 

На час теории — пять часов практики. С начала курса будете решать задачи в популярном интерпретаторе Jupyter Notebook. Это настоящая среда разработки, которую вы сможете использовать и для своей работы.

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

Дискретная математика нужна, чтобы писать базы данных и создавать поисковые системы. Еще — для логистики и построения маршрутов.

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

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

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

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

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

Криптография. Она помогает шифровать данные. В IT используют не саму криптографию, а криптографические алгоритмы. С ними работают спецы, которые защищают данные от атак, иначе говоря — занимаются кибербезопасностью. Через криптографические алгоритмы программисты создают специальные протоколы и мешают мошенникам перехватить данные.

«Если говорить про направления в программировании, то для фронтендера математика нужна. Как минимум для верстки. Для бэкендера тоже — где-то в меньшей степени, где-то в большей.
Например, в веб-разработке математика помогает работать с ресурсами системы: распределять нагрузку, выстраивать аналитику. В геймдев-разработке математика очень нужна для описания алгоритмов искусственного интеллекта, для работы с графикой, окружением.
Думаю, что потребность в математике определяется больше спецификой команды и ее задачами, нежели чем-то еще, но она есть практически везде»

Мнение практикующего разработчика

Кому вовсе не обязательна математика

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

💼 Руководитель проектов. Организует команду так, чтобы работа над проектом двигалась и всё завершалось в срок. 

Сильные качества — умение находить подход к людям и принимать решения в сложных ситуациях. Например, когда дедлайн близко, а главный разработчик свалился с температурой. 

Математика руководителю проекта особо не нужна, разве что общие школьные навыки. Допустим, чтобы посчитать, сколько процентов задачи выполнено.

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

Главные скилы продуктолога — умение строить гипотезы и принимать решения на основе данных, находить контакт с командой. А вот углубленную математику знать не надо, хватит и школьных знаний.

🛒 Маркетолог. Привлекает внимание потенциальных покупателей и превращает их в реальных. Специалист должен хорошо понимать, как люди выбирают продукт, на что обращают внимание. Еще анализировать конкурентов — видеть их недостатки и преимущества.

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

📝Технический писатель. Составляет инженерную документацию, инструкции, технические задания. 

Среди главных скиллов — умение собрать различную информацию, проанализировать ее, осмыслить и написать текст понятным языком. Математика ему в этом совсем не нужна, даже школьная базовая.

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

Ребята, у которых я учился, были круты в математике. Но они говорили, что им для 95% задач она не нужна. Но для 5% всё же важна»

Мнение практикующего разработчика
Курс «Менеджер проектов»
Получите одну из самых востребованных профессий в 2024 году
Подробнее
Курс «Менеджер проектов»

Полезная литература по математике

📚 По дискретной математике

Род Хаггарти «‎‎Дискретная математика для программистов‎»‎ 

Фёдор Новиков «‎Дискретная математика‎»‎

Иосиф Романовский «‎‎Дискретный анализ»

Фундаментальные знания — логика, множества, графы, отношения, базовые функции. Информация подана доступно, подойдет даже школьникам. Много практических примеров.

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

Основана на лекциях для студентов математико-механического факультета. Большое внимание уделяется дискретному анализу в современной информатике.

Род Хаггарти ‎‎Дискретная математика для программистов‎ Фёдор Новиков Дискретная математика‎ Иосиф Романовский ‎‎Дискретный анализ

📚 По математической логике

Игорь Лавров «Математическая логика»

Владимир Игошин «Математическая логика и теория алгоритмов»

Эллиот Мендельсон «Введение в математическую логику»

Содержит практически все теоремы в области математической логики, теории моделей и теории алгоритмов. Есть упражнения, чтобы было проще усвоить материал.

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

Полное изложение основных разделов математической логики и ее приложений. Много примеров и упражнений.

Игорь Лавров «Математическая логика» Владимир Игошин «Математическая логика и теория алгоритмов» Наум Кремер «Теория вероятностей и математическая статистика»

📚 По статистике

Михаил Лагутин «‎Наглядная математическая статистика‎»‎

Владимир Гмурман «Теория вероятностей и математическая статистика»

Наум Кремер «Теория вероятностей и математическая статистика»

Написана доступным языком, много вопросов и задач с ответами.

Полный университетский материал по теории вероятностей и математической статистике. В конце каждой главы есть задачи.

Учебный материал с руководством по решению задач. Много примеров и вопросов с ответами. 

Михаил Лагутин «‎Наглядная математическая статистика‎»‎ Владимир Гмурман «Теория вероятностей и математическая статистика» Наум Кремер «Теория вероятностей и математическая статистика»

Главное: нужна ли математика в программировании

  • Некоторые программисты, например веб-разработчики, обходятся базовой школьной математикой. Другим нужны узкоспециализированные разделы дискретной математики. Примеры таких профессий — дата-сайентист, специалист по машинному обучению, разработчик искусственного интеллекта и нейронных сетей.
  • В IT работают не только программисты, но и руководители проектов, менеджеры по продукту, маркетологи, технические писатели и многие другие. Они тоже создают и продают IT-продукты, но их задачи не связаны с кодом. Поэтому математикой они почти не пользуются.
  • Даже если математика не нужна в рабочих задачах, она пригодится, чтобы развить личностные качества. Например, концентрацию и оперативную память. Эти качества помогают и в работе, поэтому есть смысл заняться математикой как хобби.

Добавить комментарий