Что следует знать каждому разработчику

30.08.2016

Часто мне приходится сталкиваться с тем, что новички, набравшись поверхностных знаний и считая себя при этом способными без особых трудностей разработать приложение, надолго погружаются в решение первой же вставшей перед ними проблемы. Такая излишняя самоуверенность может затормозить работу всей команды. И следует из отсутствия базовых и фундаментальных знаний для разработчика:

Устройство и принципы работы операционной системы

Любым прикладным приложением управляет операционная система. Она предоставляет основные ресурсы для его работы: и процессорное время, и управление памятью, и возможности для работы с потоками и примитивы их синхронизации. На основе прав доступа приложение может получить доступ к возможностям операционной системы, а не наоборот. Поэтому знания об операционной системе — база, без которой я не позволяю стажерам браться за реализацию прикладных проектов.

Знания о структурах данных и базовых алгоритмах

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

Глубокие знания о сетевой инфраструктуре

Как компьютер может взаимодействовать с другими компьютерами? Что такое сетевой протокол? Как устроены наиболее часто используемые протоколы? Чем отличается транспортный протокол от прикладного? Что такое «порты» и какую функцию они выполняют?

Основные подходы к разработке настольных и веб-приложений и различия между ними (в исполнении и требованиях к ресурсам)

Каждый разработчик должен уметь их перечислить даже в ночи: книги Банды Четырех и Мартина Фаулера — настольные руководства, друзья и товарищи. Знание основ проектирования приложений, паттернов и антипаттернов позволяет заложить расширяемые каркас приложения и необходимую гибкость в изменении или добавлении новых функций.

Понимание принципов и видов тестирования

Это обязательный этап, когда из приложения появляется продукт, относительно которого нельзя уверенно сказать, какие элементы работают при каких условиях. Знание способов выявления дефектов, принципов и правил использования юнит-тестирования, интеграционного тестирования позволит писать приложения с необходимым качеством и всегда иметь ответ на вопрос «Готов ли продукт к релизу?»

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

Читайте полную версию статьи на geekbrains.ru

Gartner включил Navicon в список поставщиков CRM для фармацевтических и биотехнологических компаний

Navicon стал «Партнёром года» Microsoft в России

Navicon и Original Group помогут российским фармкомпаниям вовремя внедрить систему маркировки лекарств

Navicon разработал портал регистрации продукции для STIHL

Navicon представил обновлённый стек ИТ-решений для фармацевтики