5 тем, в которых должен разбираться каждый программист
Программа обучения программированию строится вокруг профильного языка и прикладных инструментов. Лишь после трудоустройства вчерашние студенты узнают, что изученные дисциплины — вершина айсберга. Вот 5 наук из мира IT, в которых придется разобраться и веб-разработчику, и кодеру микроконтроллеров.
Тестирование
Тестировщик ПО — востребованная профессия: только в Москве открыто 529 вакансий. Тем не менее, в малых и средних компаниях, во фрилансе и непрофильных организациях такой позиции нет, а ответственность за качество кода лежит на самих разработчиках.
В прошлом году мы публиковали статью “Тестирование кода для чайников”. Там вы найдете основные виды тестов и список must-read книг. Если работодатель потребует от вас больше, например написать программу проверки и сертифицировать её, намекните на необходимость поднять зарплату. Или обратиться к специалистам.
Безопасность
Тестирование кода приведёт вас в другую науку — безопасность ПО. Обеспечить её нужно при помощи:
- набора правил по оформлению кода;
- модульности;
- ограничения допуска третьих лиц;
- тестов для выявления плавающих и случайных ошибок.
Разработчик отвечает за решение первых двух задач, за решение других — специальное ПО. Исключение — программы с повышенными требованиями безопасности, используемые в военных изделиях, общественном транспорте, опасной технике. За безопасность по всем пунктам здесь отвечают и человек, и ПО.
Сети
Любой профессиональный программист хоть раз в карьере сталкивается с необходимостью работать с сетями. Это моя мама может объяснить передачу данных словом «магия», а разработчик обязан разбираться в теме и знать, какие могут быть проблемы.
Каждая область IT диктует свои требования к сетевой роли программиста. В вебе он отвечает на взаимодействие «клиент-сервер», в работе с микроконтроллерами — за настройку протоколов передачи, а системный администратор должен понимать сети на всех уровнях. Вот и получается, что без чтения книг по этой теме никуда.
Железо
Программисты не любят, когда их путают с системщиками или электронщиками, просят что-то собрать или подключить. Тем не менее, они должны разбираться в железе и его характеристиках. Простой пример: представьте статический веб-сайт, привязанный к характеристикам монитора разработчика. Это означает, что результат будет непредсказуем, если открыть его при другом разрешении, в окне, на смартфоне или компьютере с меньшей производительностью.
Разработчик всегда должен помнить о двух параметрах: быстродействии и удобном интерфейсе. Только в этом случае пользователь захочет оценить функционал и качество программы. Код, не привязанный к железу, заданных условий не выполнит.
Тайм-менеджмент
Тайм-менеджмент для айтишника отличается от тайм-менеджмента продавца или юриста. Во втором случае это самоорганизация, позволяющая запихнуть в расписание максимальное количество дел. В случае с программистами тайм-менеджмент — это скорее логика, где во главу угла ставится профессиональная деятельность. Причина — работа с кодом, требующая знаний, бодрости, концентрации и творческого подхода. Исходя из этого строится режим отдыха, питания, физических нагрузок и самообразования, остальное — если останется время.
Программист должен уметь распоряжаться своим временем не для карьеры или решения текущих задач. Это дисциплина, которая поможет получать удовольствие от работы, достижения целей и решения локальных задач.
Удовольствие, которое когда-то привело вас в программирование.