Найти тему
Мысли HR фриласеров

«Как распознать джуна в сеньоре» или Штирлиц, который спалился

Оглавление

Принадлежность к Junior, Middle или Senior разработчикам не зависит только от того, сколько лет у вас есть опыта программирования. Junior разработчик может быть даже старше Senior разработчика. Все сводится к навыкам. Это не значит, что Senior разработчик должен быть экспертом во всем, но можно с уверенностью сказать, что Senior разработчики гораздо более квалифицированы, чем Junior и Middle разработчики.

Но не только навыки программирования отличают Senior разработчика от разработчика Middle и Junior уровня. Так в чем же именно заключаются эти различия?

 

Знания

Очевидно, что Senior разработчик имеет гораздо больше знаний, чем Junior и Middle разработчик. Знание паттернов проектированияархитектурыавтоматизации тестированияпроизводительностибезопасности и т.д. - это хороший способ для Junior разработчика сократить разрыв в знаниях с разработчиками Middle и Senior уровня.

Важно знать, как должны выполняться те или иные действия при разработке программного обеспечения. Но простое знание всех этих вещей не делает вас Senior разработчиком. Знания - это не самое большое различие между разработчиками, это лишь один из факторов.

 

Программирование

Несмотря на то, что думает большинство людей, программирование - это не общение с компьютером. Программирование - это общение с людьми и обучение компьютеров. В конечном итоге код компилируется и переводится в нули и единицы.

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

Я опущу в этом сравнении разработчика Middle уровня, потому что разработчик Middle уровня - это своего рода серая зона, когда речь идет о навыках программирования. Очевидно, что он находится где-то между Junior и Senior. Возможно, он больше склоняется к Senior уровню. В основном это связано с опытом, поскольку разработчики Middle уровня, вероятно, прошли через весь цикл разработки, по крайней мере, один раз. Они совершили множество самых простых ошибок и научились на них.

 

Как распознать Junior разработчика?

Junior разработчики неопытны. Некоторые из них только что окончили университет и начинают свою первую постоянную работу. Менталитет Junior разработчика часто заключается в том, чтобы просто заставить код работать. Работающее программное обеспечение и хорошее программное обеспечение считаются одним и тем же.

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

Junior разработчики фокусируются на компьютерной стороне кода в ущерб человеческой.

 

А как насчет Senior разработчика?

Глядя на код Senior разработчика, вы можете подумать: неужели это все? Где остальной код? Senior разработчик пишет простой, понятный и, возможно, даже тупой код. Это одно из самых важных качеств, которым может обладать разработчик, когда речь идет о программировании. Senior разработчик следует принципу KISS: Keep it stupid simple.

Senior разработчик думает о своем коде иначе, чем Junior разработчик. Код, написанный Senior разработчиком, будет написан с учетом удобства обслуживания и масштабируемости. Это совершенно иной образ мышления, чем у Junior разработчика - Senior разработчик думает о людях, которым придется работать с кодом, а Junior - только о том, чтобы он работал на компьютере.

 

Больше, чем просто навыки программирования

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

Junior разработчики, как правило, выполняют самые простые задачи или задачи с низким уровнем воздействия. Они не занимаются проектированием архитектуры. Разработчики Middle уровня также не проектируют решения, они просто выполняют задачи. Разница с Junior разработчиками заключается в том, что они выполняют эти задачи с меньшим контролем, пока им поручают относительно рутинные задачи. Senior разработчики могут разработать приложение полностью самостоятельно.

Это не значит, что у Senior разработчика не возникает вопросов по ходу работы. У каждого разработчика каждый день возникает множество вопросов, и это не изменится. Это не отличается от Senior разработчиков.

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

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

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

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

Переход на следующий уровень

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

 

От Junior до Middle уровня

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

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

Кроме того, вам следует ознакомиться с передовым опытом и узнать об архитектуре, производительности, безопасности и т.д. Ликвидируйте пробел в знаниях, необходимый для перехода на Middle уровень.

 

От Middle уровня к Senior

Перейти от Middle уровня к Senior может быть довольно сложно. Некоторые разработчики остаются на Middle уровне на протяжении всей своей карьеры.

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

Если вы хотите перейти на Senior уровень, вы должны быть готовы взять на себя задачи, которые никто не знает, как решить. Вы должны знать больше, чем просто как выполнить работу.

Как Senior разработчик, вы также должны помогать менее опытным разработчикам. Вы являетесь запасным вариантом для других разработчиков, когда они не знают, как что-то сделать.

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

 

Заключение

Разница между Junior, Middle и Senior разработчиком заключается не только в количестве лет опыта. Конечно, можно с уверенностью сказать, что Senior разработчики более квалифицированы, чем Junior и Middle. Но знания - не самый важный фактор.

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

Чтобы вырасти как Junior разработчик, вы должны сосредоточиться на написании простого кода и пройти через несколько циклов разработки. Чтобы перейти от Middle к Senior разработчику, вам следует сосредоточиться на изучении большего, чем просто исправление рутинных задач. Вы должны быть готовы браться за самые сложные задачи и быть мастером своего технологического стека. Еще одна обязанность Senior разработчика - быть запасным вариантом для менее опытных разработчиков.

Я оставлю вас с цитатой Мартина Фаулера"Любой дурак может написать код, который сможет понять компьютер. Хорошие программисты пишут код, который могут понять люди".

Автор статьи: Daan