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

Показатели профессионализма и развития.

Программа обучения программированию строится вокруг профильного языка и прикладных инструментов. Лишь после трудоустройства вчерашние студенты узнают, что изученные дисциплины — Ð²ÐµÑ€ÑˆÐ¸Ð½Ð° айсберга. Вот 5 наук из мира IT, в которых придется разобраться и веб-разработчику, и кодеру микроконтроллеров.

 

Тестирование

Тестировщик ПО — Ð²Ð¾ÑÑ‚ребованная профессия: только в Москве открыто 529 вакансий. Тем не менее, в малых и средних компаниях, во фрилансе и непрофильных организациях такой позиции нет, а Ð¾Ñ‚ветственность за качество кода лежит на самих разработчиках.

В прошлом году мы публиковали статью “Тестирование кода для чайников”. Там вы найдете основные виды тестов и список must-read книг. Если работодатель потребует от вас больше, например написать программу проверки и сертифицировать её, намекните на необходимость поднять зарплату. Или обратиться к специалистам.

Безопасность

Тестирование кода приведёт вас к Ð² Ð´Ñ€ÑƒÐ³ÑƒÑŽ науку â€” безопасность ÐŸÐž. Обеспечить её Ð½ÑƒÐ¶Ð½Ð¾ при помощи:

  • набору правил по Ð¾Ñ„ормлению кода;
  • модульности;
  • ограничению допуска третьих лиц;
  • тестам для выявления плавающих и ÑÐ»ÑƒÑ‡Ð°Ð¹Ð½Ñ‹Ñ… ошибок.

Разработчик отвечает за Ñ€ÐµÑˆÐµÐ½Ð¸Ðµ первых двух задач, за Ñ€ÐµÑˆÐµÐ½Ð¸Ðµ других â€” специальное ÐŸÐž. Исключение â€” программы с Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð½Ñ‹Ð¼Ð¸ требованиями безопасности, используемые в Ð²Ð¾ÐµÐ½Ð½Ñ‹Ñ… изделиях, общественном транспорте, опасной технике. За Ð±ÐµÐ·Ð¾Ð¿Ð°ÑÐ½Ð¾ÑÑ‚ÑŒ по Ð²ÑÐµÐ¼ пунктам здесь отвечают и Ñ‡ÐµÐ»Ð¾Ð²ÐµÐº, и ÐŸÐž.

Сети

Любой профессиональный программист хоть раз в ÐºÐ°Ñ€ÑŒÐµÑ€Ðµ сталкивается с Ð½ÐµÐ¾Ð±Ñ…одимостью работать с ÑÐµÑ‚ями. Это моя мама может объяснить передачу данных словом Â«Ð¼Ð°Ð³Ð¸ÑÂ», а Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚чик обязан разбираться в Ñ‚еме и Ð·Ð½Ð°Ñ‚ÑŒ, какие могут быть проблемы.

Каждая область IT диктует свои требования к ÑÐµÑ‚евой роли программиста. В Ð²ÐµÐ±Ðµ он Ð¾Ñ‚вечает на Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑ‚вие Â«ÐºÐ»Ð¸ÐµÐ½Ñ‚-сервер», в Ñ€Ð°Ð±Ð¾Ñ‚е с Ð¼Ð¸ÐºÑ€Ð¾ÐºÐ¾Ð½Ñ‚роллерами â€” за Ð½Ð°ÑÑ‚ройку протоколов передачи, а ÑÐ¸ÑÑ‚емный администратор должен понимать сети на Ð²ÑÐµÑ… уровнях. Вот и получается, что без чтения книг по этой теме никуда.

Железо

Программисты не Ð»ÑŽÐ±ÑÑ‚, когда их Ð¿ÑƒÑ‚ают с ÑÐ¸ÑÑ‚емщиками или электронщиками, просят что-то собрать или подключить. Тем не Ð¼ÐµÐ½ÐµÐµ, они должны разбираться в Ð¶ÐµÐ»ÐµÐ·Ðµ и ÐµÐ³Ð¾ характеристиках. Простой пример: представьте статический веб-сайт, привязанный к Ñ…арактеристикам монитора разработчика. Это означает, что результат будет непредсказуем, если открыть его при другом разрешении, в Ð¾ÐºÐ½Ðµ, на ÑÐ¼Ð°Ñ€Ñ‚фоне или компьютере с Ð¼ÐµÐ½ÑŒÑˆÐµÐ¹ производительностью.

Разработчик всегда должен помнить о Ð´Ð²ÑƒÑ… параметрах: быстродействии и ÑƒÐ´Ð¾Ð±Ð½Ð¾Ð¼ интерфейсе. Только в ÑÑ‚ом случае пользователь захочет оценить функционал и ÐºÐ°Ñ‡ÐµÑÑ‚во программы. Код, не Ð¿Ñ€Ð¸Ð²ÑÐ·Ð°Ð½Ð½Ñ‹Ð¹ к Ð¶ÐµÐ»ÐµÐ·Ñƒ, заданных условий не Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ð¸Ñ‚.

Тайм-менеджмент

Тайм-менеджмент для айтишника отличается от Ñ‚айм-менеджмента продавца или юриста. Во Ð²Ñ‚ором случае это самоорганизация, позволяющая запихнуть в Ñ€Ð°ÑÐ¿Ð¸ÑÐ°Ð½Ð¸Ðµ максимальное количество дел. В ÑÐ»ÑƒÑ‡Ð°Ðµ с Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸ÑÑ‚ами тайм-менеджмент â€” это скорее логика, где во Ð³Ð»Ð°Ð²Ñƒ угла ставится профессиональная деятельность. Причина â€” работа с ÐºÐ¾Ð´Ð¾Ð¼, требующая знаний, бодрости, концентрации и Ñ‚ворческого подхода. Исходя из ÑÑ‚ого строится режим отдыха, питания, физических нагрузок и ÑÐ°Ð¼Ð¾Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ, остальное â€” если останется время.

Программист должен уметь распоряжаться своим временем не Ð´Ð»Ñ карьеры или решения текущих задач. Это дисциплина, которая поможет получать удовольствие от Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹, достижения целей и Ñ€ÐµÑˆÐµÐ½Ð¸Ñ локальных задач.

Удовольствие, которое когда-то привело вас в Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ðµ.

Илья Бубнов