Что должен знать программист без профильного образования

4
33531

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

программист без профильного образования

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

Давайте разберемся, что должен знать программист без профильного образования.

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

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

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

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

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

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

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

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

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

Базы данных

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

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

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

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

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

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

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

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

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

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

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

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