Программист – это человек, который должен не только знать разные языки программирования, но и обладать компетенциями, что позволят ему использовать свои знания на практике. В повседневной работе специалист получает задачу для выполнения (например, решить реальную проблему, когда что-то не работает или реализовать какой-то функционал), после чего должен разработать решение, а затем спроектировать, протестировать и внедрить его. На каждом этапе пригодится умение логически и творчески мыслить, что позволяет найти эффективное решение, даже если поначалу оно кажется абстрактным.
Причинно-следственное мышление, с другой стороны, позволяет предсказать, как реализованные изменения повлияют на работу всего кода, и, таким образом, протестировать только те решения, которые имеют смысл.
Математика в программировании — это вопрос, который беспокоит многих людей, рассматривающих возможность перехода в новую профессию. Подтверждением этого факта может быть популярность поиска в Интернете термина: математика и программирование. Поэтому при ответе на вопрос, нужна ли математика для программирования, следует четко оговорить, что информатику сложно представить без математики, а при обучении программированию следует изучить многие математические вопросы. Однако это не та математика, которую мы знаем из школы. Речь идет не о решении сложных задач или выполнении сложных расчетов, а о понимании определенных элементов математики. Примером могут быть алгоритмы, функции или циклы, т.е. понятия, важные с точки зрения программиста, и в то же время более простые для понимания при знании математики.
Математика в информатике встречается практически везде, но ее знание не является обязательным, ведь в настоящее время можно использовать различные типы приложений или технологических решений, поддерживающих программиста. Однако для каких проектов может понадобиться знание математики? При создании сложных программ может быть полезно знать продвинутую алгебру и арифметику, т.е. области, которые также полезны при выполнении операций над большими базами данных или при тестировании созданных решений. Математика при создании игр полезна, в частности, при проектировании движения персонажей или транспортных средств, поскольку она основана на алгебраических знаниях. Вращение спроектированных объектов в пространстве осуществляется на основе матриц и тригонометрических преобразований. Другим элементом математики, полезным в программировании, является теория графов, которая используется, например, в определении кратчайшего пути в играх или нахождении оптимального решения поставленной задачи.
Зная, что математика тесно связана с информатикой, и многие ее элементы используются в программировании, стоит подумать, какой уровень математических навыков позволит вам работать программистом в будущем.
Нужно понимать, что программирование — это деятельность, которая постоянно развивается, и это связано не только с тем, что разрабатываются новые языки, но и с тем, что требуется всё более быстрая реализация конкретных проектов. В результате разработчики уже используют множество готовых решений, что не только упрощает процесс создания кода, но и ускоряет его. Поэтому программисту, создающему сложные библиотеки, безусловно, потребуются математические навыки, но в случае разработчика, создающего решения для клиентов, однозначно важнее знать доступные технологии или библиотеки и использовать их на практике. Примером может служить тот факт, что разработчики игр сейчас используют готовые графические движки, производительность которых идеально подобрана под приложение, не требующее математических навыков.
Подводя итог, сложно представить программирование без математики. Это не значит, однако, что нельзя быть программистом, не зная математики, ведь многое в данном случае зависит от реализуемых проектов. Немаловажно и то, что в настоящее время разработчики в большинстве случаев полагаются на готовые решения с использованием известных им технологий.