Можно ли стать программистом, не зная математики? Можно. А не зная физики? Можно. А не зная геометрии? Можно. А не зная всего перечисленного? Можно. Самое важное — это то, что вы вкладываете в понятие «знать математику, геометрию, физику».
Программирование — это очень широкое поле для деятельности, поэтому в каких-либо областях действительно нужно будет углубленное знание этих предметов, а в других достаточно будет только общего понимания.
Можно ли стать программистом, не зная математики, физики и геометрии?
Вообще, математика в профессии программиста играет довольно важную роль. Потому что она учит основам алгоритмического мышления и оперировать абстрактными понятиями, а это как раз то, что так нужно программисту.
Но уровень понимания математики, физики и геометрии строго пропорционален уровню выполняемой задачи по программированию. Например, чтобы разрабатывать веб-сайт или мобильное приложение, вам не обязательно понимать, что доказал Перельман, помнить все законы Ньютона или уметь применять косинус и синус.
Но при этом банальные расчеты и работы с цифрами остро необходимы. К примеру, разрабатывая сайт, нужно понимать, что сетка Bootstrap состоит из 12 столбцов и что если слева или справа выделить 3 столбца на зону виджетов, то для основного контента останется 9, — такое нужно уметь вычислять. Также нужно понимать физику, например, если вы разрабатываете игрового персонажа и он по сценарию должен прыгнуть на какой-то предмет, то, понимая законы физики, несложно предположить, что на него действует сила притяжения, и если предмет будет какой-то хрупкий, то под тяжестью персонажа он должен будет разрушиться или деформироваться. Таким же образом важна и геометрия. Ведь, разрабатывая 3D-персонажей, вы постоянно будете сталкиваться с такими понятиями, как вершина, ребра, углы, стороны угла, куб, сфера и т. д. Поэтому, не зная этих основ геометрии, работать в 3D-моделировании будет очень сложно.
Нужна ли профильная математика, геометрия или физика программисту
Любая попытка провести четкую зависимость между программированием и этими науками обречена на провал. Программирование и эти науки — абсолютно разные вещи. И если люди отлично разбираются в математике, геометрии или физике, это никак не будет означать, что они смогут отлично программировать. И наоборот, если специалист отлично программирует, это вообще не означает, что он отлично знает математику, геометрию или физику.
В программировании важно алгоритмическое и техническое мышление, а оно как раз вырабатывается при изучении этих наук. Но изучать их нужно не на уровне зубрежки формул, а на уровне понимания — что и как происходит. При этом в некоторых областях программирования действительно нужны будут более глубокие знания в той или иной сфере, например:
при работе с Big Data или машинном обучении сложно будет обойтись без знаний статистики, теории вероятностей и линейной алгебры;
если работать в криптографии, то математика также должна быть на более высоком уровне;
когда программирование касается 3D-технологий и виртуальной реальности, то знания геометрии и физики помогут быстрее с этим разбираться;
и т. д.
Даже в описанных выше ситуациях уровень требуемых знаний будет очень сильно зависеть от выполняемых задач.
Получается, что знания математики, геометрии и физики на высочайшем уровне необходимы будут только в узком сегменте какого-нибудь специфического программирования. Да, такие специалисты хорошо ценятся, но подобные узкие задачи не особо частые. Поэтому бежать и срочно получать знания «высшей математики», чтобы стать крутым и высокооплачиваемым программистом, не стоит. Уж лучше сосредоточиться на качестве своего программирования — в этом случае будет больше шансов получить высокооплачиваемую работу.
Заключение
Можно ли стать программистом, не зная математики, геометрии и физики? Безусловно, можно, потому что есть много областей программирования, где будет хватать основ этих наук, которые вы получили в школе, колледже или вузе. При этом представить человека, который бы вообще не знал эти науки даже в минимальных основах, очень трудно.
Для себя нужно понимать, что данные науки важны для программиста не своими формулами, а лишь той частью, которая учит размышлять, потому что знание формул наизусть только забивает голову ненужной информацией. Поэтому нужна не сама математика, геометрия или физика, а скорее, умение применять эти науки в программировании.
Другое