В нашем обществе уже укрепился стереотип о том, что быть программистом без знаний математики практически невозможно. В этой статье мы попытаемся докопаться до истины и узнать, действительно ли это правда.
Начать стоит с того, что программист-слишком расплывчатая формулировка. Я говорю о том, что программист драйверов-это не веб-разработчик. Само по себе программирование подразумевает большое количество направлений, начиная от программирования игр и заканчивая созданием искусственного интеллекта.
Первой под нож пойдёт веб-разработка. Это одно из самых популярных направлений в программировании, ведь веб на сегодняшний день даёт массу возможностей как для разработчиков, так и для бизнеса. Однако математики тут практически нет, ведь веб-приложения-это, в первую очередь, работа с клиент-серверным обменом данными, структурой страницы и базами данных. Сейчас многие могут возразить, что математика нужна для решения ряда задач. И будут абсолютно правы. Но необходимость решения таких задач возникает очень редко. Обычно веб-разработка сводится к созданию одностраничных сайтов-визиток, интернет магазинов и другим задачам, где математика не нужна(или нужна в рамках школьного курса).
Далее идёт разработка мобильных приложений. И в ней так-же не очень нужна математика. Тут дела обстоят так-же, как и в веб-разработке. Математика может понадобиться, но для решения большинства задач она не пригодится.
Настал черёд десктопных приложений. И тут уже всё не так однозначно. Дело в том, что создание программ для десктопов зачастую сводится к созданию профессионального софта, который часто подразумевает использование математики. Многие функции того-же самого фотошопа завязаны на ней. Но при создании более ординарного софта высока вероятность того, что математика не пригодится. Проще говоря, тут всё зависит от проекта.
Переходя от меньшего к большему, мы добрались до первой сферы, в которой математика чуть-ли не жизненно необходима. Я говорю про разработку игр. Дело в том, что это сфера почти всегда подразумевает использование графики. Всё построено на системе координат, а значит, нам постоянно придётся прибегать к геометрии. Однако все должны понимать, что при создании, например, кликера, нам всё это не пригодится, т.к. работа с графикой там минимальна и не требует от разработчика серьёзных знаний.
Посерьёзнее разработки игр, с точки зрения математики, будет программирование виртуальной/дополненной реальности. Однако в данном случае вы всё равно вряд ли выйдете за рамки геометрии. Просто её придётся применять в большем количестве.
Подошёл черёд ИИ и Больших данных. Если рассматривая разработку игр всё почти всегда упирается в геометрию(не считая игровых движков), то при создании алгоритмов искусственного интеллекта вам придётся применять знания из всех областей математики. Разумеется, ИИ бывает разный, и при создании простеньких ботов для игр вам может быть достаточно и геометрии, однако сейчас мы рассматриваем создание наиболее серьёзных проектов, в которых вам скорее всего пригодится и теория больших чисел, и булева алгебра, и теория вероятностей, и многие другие разделы математики. А их использование необходимо, если вы пытаетесь создать что-то стоящее.
В этой статье мы рассмотрели, насколько нужна математика современным программистам из самых популярных направлений. Тут не фигурировали такие направления, как интернет вещей или создание операционных систем, поскольку они являются достаточно узконаправленными.
А как вы считаете, можно ли считать программиста без знаний математики компетентным? Пишите своё мнение в комментарии.