Найти тему

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

Оглавление

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

Прежде чем разобрать этот вопрос надо подробно объяснить, где, для чего и как используется математика. Например, если мы возьмем программиста 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), который определяет компоненты информационной защиты, а также то, как они должны быть защищены.

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

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

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

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

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