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

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

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

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

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

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

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

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

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

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

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

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

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

Базы данных

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

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

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

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

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

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

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

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

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

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

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

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

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ