Действительно ли программисту нужна математика? Сейчас разберемся...

569 прочитали

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

Прежде чем разобрать этот вопрос надо подробно объяснить, где, для чего и как используется математика. Например, если мы возьмем программиста 1С, а что ему достаточно знать? Бухгалтерский учет, логику, ну и вообще владеть приложением 1С, эти ребята в основном разбирают базы данных, работаю с графиками, инфографиками, огромными объемами данных, здесь в принципе математики нужно минимум, счет и немного арифметических операций. Тут не сложно.

Стажер 1С в среднем получает от 25к, но это ступенька будет пройдена относительно быстро, если вы смышленный

Программист 1С ( от 1 до 3 лет опыта) от 50к, это люди на ведущих должностях, основа компании и проектов, за ними ведется основная деятельность, тут придется попахать года 2-3.

Ведущий разработчик 1С от 70к, эти ребята можно сказать на высших должностях, руководители проектов и те, у кого под управлением может быть от нескольких групп программистов, в основном управление и менеджмент, переговоры с заказчиками

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

С 1С мы разобрались, тут математики нужно минимум, ну а например, если вы хотите пойти в игровую разработку, как быть?

Программисты Java, C++, Python, Cи Шарп, Си, Руби, js и т.д знать математику обязаны, с плюсами я бы вообще сказал тут без нее никуда, здесь и дискретная математика, теория чисел и множеств, без теории алгоритмов вообще не обойтись, булева алгебра нужна, но я бы не сказал что везде.

Математика является тем каркасом, на который нанизываются все прочие знания. Увы, многие начинают осваивать профессию с конца. Программист, изучивший языки программирования, инструменты разработки, различные технологии и паттерны, но не освоивший математические основы, напоминает художника, научившегося в совершенстве разбираться в красках и кистях, освоившего множество приёмов, но при этом не знающего композиции, перспективы, анатомии и прочих основ. У него может быть много гениальных мыслей, но выразить их он не сможет, и всё, на что ему остаётся рассчитывать – это работа ассистентом или раскрашивание чужих картин. Изредка незнание основ формирует новые стили, как, например, в случае с Ван Гогом (к его чести нужно сказать, что он осознавал свои проблемы и брал уроки живописи у профессионалов), но чаще становится препятствием в творчестве. И если в искусстве это ещё можно оправдать тем, что автор так видит, то в промышленности неправильный алгоритм генерации случайных чисел, приведший к тому, что миллионы долларов честных налогоплательщиков промахнулись мимо цели, не оправдан ничем.

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

Вы наверняка слышали про такие школы, как SkillBox, GeekBrains, SkillFactory, HTML Academy и прочие, эти ребята лучшие в СНГ я считаю по IT, не брал у них ни одного курса, но на форумах - сливах просматривал данную тему, преподаватели у них лучшие из лучших, это ни сколько не реклама, но я считаю что в IT очень сложно начать без наставника, это как раз та сфера, где учитель необходим, ошибки вы здесь будете допускать постоянно, а вечно обращаться к видео, к форумам или сидеть в беседах вк и докучать вопросами профи айтишников желания особого не возникает. Но естественно если вы хотите начать с IT, советую начать с изучения математики, если вы конечно не захотите изучать 1С, подробнее об этом языке вы можете прочитать в интернете, тут расписывать про него не буду, но вот перечень того, что должен знать каждый начинающий программист:

Теория графов

Если вы занимаетесь алгоритмами поиска или планируете это делать – вам понадобится дискретная математика, в частности, теория графов. Практически все алгоритмы поиска и сортировки основаны на деревьях.

Математическая логика

Математическая логика нередко используется в кодинге, начиная незамысловатыми условиями if/else и заканчивая работой с БД, так как любой SQL предполагает оперирование с множествами.

Чаще всего нужна булева алгебра. Изучите и поймите правила преобразования логических выражений: это поможет в понимании логики работы условий и при построении алгоритмов.

Теория вероятностей и математическая статистика

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

Вот примерный список разделов программирования, где помогут эти две дисциплины:

— Компьютерное зрение.
— Биржевые торговые роботы.
— Data mining.
— Системы принятия решений и нейросети.
— Алгоритмы шифрования и крипто-анализ.
— Предсказание процессов, системы анализа вероятностей.
— Распределенные вычислительные системы.
— Анализ производительности распределенных вычислительных систем.

Базы данных

Обработка и хранение данных – это важная часть рабочего процесса огромной части программистов. Базы данных используются и в вебе и в системном программировании.

Теория алгоритмов

Этот раздел математики поможет не только в создании алгоритмов при разработке программ, она научит вас оценивать сложность того или иного алгоритма и целесообразность его применения в программе.

Моделирование

Моделирование – описание реальных объектов и процессов в формальных терминах. В общем случае программист без профильного образования сможет лучше понимать не только процессы объектно-ориентированного программирования, изучив математическое моделирование.

Защита компьютерной информации

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

Для определения защиты информации в России даже существует свой ГОСТ (Р 5092296), который определяет компоненты информационной защиты, а также то, как они должны быть защищены.

Микропроцессорные системы

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

Операционные системы

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

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

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