Что случится с Джуном в кресле Сеньора?
Давайте так: вселенная не схлопнется, но ряд проблем точно свалится на Junior-программиста, который решил скосплеить Сеньора. И вот каких.
7К открытий7К показов
Если Junior занял место Senior-разработчика без спроса, то случится увольнение. Вот и отсекли один сценарий.
А теперь серьёзно. Многие младшие разработчики спят и видят, как стремительно делают карьеру, быстро поднимаясь по лесенке Джуниор-Мидл-Сеньор-Лид. Но не всегда отдают себе отчёт в знаниях, навыках и зонах ответственности. Поговорим о том, с чем столкнётся среднестатистический программист Джуниор на позиции Сеньор программиста, чтобы «младшенькие» точно знали, к чему готовиться.
Кирилл Титов
руководителя команды разработки Distillery
Вчём разница между JuniorиSenior?
В плане знаний языка и другой теории, разницы между джуном и сеньором может и не быть. А вот практические навыки, опыт применения своих знаний при решении различных рабочих задач у джуниоров могут полностью отсутствовать. Поэтому джуниору ставится задача и даются подробные объяснения, как её нужно сделать. Результаты работы джуна также проверяются более опытными коллегами: сеньор-программистом или тимлидом.
Как правило, задача проходит несколько итераций, в ходе которых джун переписывает и улучшает свой код. Когда разработчик-джун научится работать самостоятельно, он может претендовать на переход в мидлы. Работу мидл-специалистов уже не нужно контролировать, но они всё ещё нуждаются в объяснениях, как сделать ту или иную задачу.
Сеньор-разработчик отлично разбирается в своей части проекта. Он понимает, что и почему нужно делать в данный момент, видит ошибки и знает, как их можно исправить. В отличие от джуна, он умеет общаться с коллегами, объяснить им, что, как и зачем нужно делать в проекте. Словом, сеньор работает на высоком уровне абстракции и видит всю картину в целом.
Зоныответственности JuniorиSeniorразработчиков
Задача джуна — писать код, а задачи сеньора — всё остальное, связанное с реализацией проекта. Сеньор помогает коллегам и может руководить работой подразделения. Он должен уметь решать все возникающие перед командой задачи, выбирать подходы и понимать, как будет реализован конкретный этап проекта.
Как правило, джун ответственен за небольшие части функционала, а сеньор может отвечать за весь продукт.
Что запорет Джун, сидя в кресле Сеньора?
Из-за отсутствия опыта джун запорет всё, что можно запороть. Просто потому, что не знает, где именно ямы на бильярдном столе. Код самостоятельно джун писать не умеет, проекта глубоко не знает, командами управлять не может. Поэтому с одинаковой вероятностью он провалит любой сектор ответственности сеньор-программиста.
Анатолий Кабанов
Software Engineer, Perforce
Отличие в мышлении и представлении того, как всё устроено:
- Junior, скорее, работает над локальной задачей, его/её знания часто не позволяют использовать тот функционал который находится в библиотеках проекта.
- Джуны нередко реализовывают функциональность с излишним дублированием кода, зачастую выбирают неподходящую структуру данных. Взаимодействие с другими частями проекта или с другими проектными решениями вызывают затруднения.
- Коммуникация джуниора может хромать, так как присутствует неуверенность в том, когда и что нужно спрашивать, чтобы в каком-то смысле не показывать неполноту своих знаний.
Junior больше сосредоточен на выполнении своих задач, часто работает над исправлением дефектов, мало влияет на развитие проекта, больше коммуницирует с другими разработчиками.
Senior же способен самостоятельно выполнять задания, помогает менее опытным сотрудникам, способен проанализировать задачу и предоставить варианты решения с развёрнутым выводом преимуществ и недостатков каждого из решений.
Артём Сутулов
Software Engineer (Backend), Revolut
Прежде чем обсуждать разницу между должностями, стоит взять в расчёт, что от компании к компании понятие «Senior» может сильно отличаться. Если речь о небольшой компании, где стандарты и требования разработки на невысоком уровне, то, по сути, Junior может быть на позиции Middle или даже Senior. Но если речь о компании другого уровня, например Yandex, то таких прецедентов там не допускают.
У меня был опыт, когда я после получения диплома и переезда в Москву устроился на позицию Senior, хотя до этого работал на позиции Junior. Получилось так из-за того, что эта компания была интегратором и завышала должности разработчикам, чтобы продать их услуги по более выгодной цене. Senior разработчиками же, по факту, являлись люди уровня архитектора.
Главные отличия позиций
Если рассмотреть вопрос на уровне мирового рынка, то разница существенная. Junior — это такой же разработчик, как и Senior: это не стажёр, а человек, который может выполнять ту же работу, но с другой эффективностью. Также у него нет годов опыта и ответов на многие вопросы, из-за чего постоянно нужно корректировать работу и помогать ему разобраться в общепринятых практиках.
Зоны ответственности Junior и Senior программистов
Зоны ответственности Junior и Senior отличаются гораздо сильнее, чем навыки. Обычно Senior решает архитектурные вопросы, берёт на себя переговоры и декомпозирует, распределяет работу. Junior же занимается задачей и постоянным самообразованием.
Что случится с Джуном на месте Сеньора?
Если предположить, что Junior оказался в кресле Senior, то с огромной вероятностью упадёт эффективность всей команды, так как коммуникация, переговоры не будут проходить столь эффективно. Также замысловатые технические задачи вряд ли будут выполнены корректно, и это повлечёт за собой проблемы. В целом, такая смена кресел происходит редко, и если происходит, то с супервизией от старших коллег.
7К открытий7К показов