Сеньор. Кто он? Можно называть разработчика сеньором, исходя из опыта работы, но спектр навыков программистов настолько широк, что это не всегда отражает истинный профессионализм.

Наличие пяти, десяти или даже пятнадцатилетнего «опыта работы» не гарантирует, что вы эффективный и полезный сеньор или даже заслуживаете этого звания. Конечно, есть такие сеньоры, что создают успешным сеньорам, которые часто старше, плохую репутацию. Молодым сеньорам не легче, но есть знания, которыми обмениваются старшие разработчики. Это не коммерческая тайна, а скорее рецепт из знаний и способов мышления. Вот некоторые черты, помогающие легко отличить настоящего старшего разработчика.

Парадигмы программирования

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

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

Любой может писать код так же, как любой может написать текстовое сообщение или рецензии на книги на Amazon. Но такие тексты не сравнятся с романами Стивена Кинга. Парадигмы выступают как движущая сила в работе старшего разработчика так же, как структуры сюжетов для писателей-фантастов. Все языки состоят из формул, а старшие разработчики понимают их на внутреннем уровне, который ещё предстоит освоить младшим и средним разработчикам.

Способность создавать

Когда мы только осваиваемся в мире циклов for и операторов if, else, мы пытаемся найти ответы в виде готового для копирования и вставки кода. То, как это понимают сеньоры, отличает их мастерство от навыков джуниоров и миддлов.

Сеньоры делают шаг вперед. Они творят как боги в своих песочницах без особой помощи всемогущего банка знаний Google. Они знают, что делают, понимают смысл действий. Они всегда учитывают непредвиденные обстоятельства и понимают, где в коде недочёты и как его можно улучшить. Если в их знаниях есть какие-то пробелы, они копают глубже. Мир кода выглядит иначе для старших разработчиков.

Объективная критика

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

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

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

Хорошее и работающее ПО

Как разработчики мы делаем код, который работает. Некоторые останавливаются на этом. Другие идут дальше и пытаются привести код в порядок. А лучшие переписывают код по мере написания, принимая все свои ошибки и сбои. Их главная цель  —  улучшить код как можно скорее. Они знают разницу между хорошим и просто работающим программным обеспечением.

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

Способность преподавать

«Посредственный учитель рассказывает. Хороший  —  объясняет. Прекрасный  —  демонстрирует. Но великий вдохновляет». — Уильям Артур Уорд

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

У всего есть уровень мастерства, необходимый, чтобы стать учителем. Хотя «опыт» может прийти в форме проектов и продолжительности работы в компаниях, преподавание  —  навык, доступный только тем, кто действительно понимает своё дело.

Заключительные слова

Настоящий старший разработчик  —  многогранное существо, которое иногда маскируется под среднего или даже младшего программиста, работающего в другом направлении, но он имеет прочную основу  —  понимание философии программирования. 

Все названные черты присутствуют в самой личности человека и глубине его знаний. Это даёт преимущество в путешествии по неизвестным областям кода. Они всё понимают быстрее самого крепкого миддла. Сеньоры часто большие мыслители, смотрящие на код широко.

Они пропагандируют привычки чистого написания кода и направляют к этому коллег без предвзятости. Они добры к ошибкам коллег и принимают свои собственные с изяществом, стремясь обучать и обучаться. Они могут быть любого возраста, происхождения, с любым опытом. Они решают проблемы и думают наперёд. Похоже ли это на вас?

Читайте также:


Перевод статьи Aphinya Dechalert: The Marks of a True Senior Developer