Кто такой мидл разработчик

Заходят как-то в бар «джун», «мидл» и «сеньор»: чем отличаются уровни программистов

Кто такой мидл разработчик. Смотреть фото Кто такой мидл разработчик. Смотреть картинку Кто такой мидл разработчик. Картинка про Кто такой мидл разработчик. Фото Кто такой мидл разработчик

В IT-среде принято маркировать уровень специалиста словами «джуниор», «мидл» и «сеньор». Но как понять, на какой вы ступени, и чем вообще эти уровни отличаются? Разбираемся, что на практике ждут работодатели и можно ли прийти устраиваться на должность джуна, а стать мидлом?

Зачем нужна классификация

Деление айтишников, да и не только, на джунов, мидлов и сеньоров — международная традиция. Поскольку в той или иной степени знать английский язык все равно нужно, у нас в IT-среде не стремятся заменять уже привычные для индустрии маркеры на какие-то свои.

В основе классификации — опыт и навыки. Иногда между делом подразумеваются и софт-скиллы. База — единая для всех, хотя в разных компаниях могут быть отхождения из-за специфики отрасли и устройства команды.

Кто такой мидл разработчик. Смотреть фото Кто такой мидл разработчик. Смотреть картинку Кто такой мидл разработчик. Картинка про Кто такой мидл разработчик. Фото Кто такой мидл разработчик

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

• Год-полтора в профессии или делал только учебные проекты.

• Использует один-два метода для решения задач, остальные не пробовал или не разбирается в них.

• Не ориентируется или слабо понимает, как решать нестандартные задачи.

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

Игорь Фонин (тимлид команды frontend-разработки, МегаФон):
Джуны выполняют разные функции в зависимости от направления, в котором работают. Например, в кодовом направлении обязанности будут отличаться от команды к команде. А во фронтэнде плюс-минус одинаковые: маленькие задачи для получения опыта, фикс багов, маленькие компоненты на странице. Если джун с этими задачами справляется, получает более сложные. Ему нужен постоянный надзор старшего — мидла или сеньора, тимлида.

Анна Гуминская (тимлид команды backend-разработки, МегаФон):
Обязанности джуниоров чаще всего ограничены определенным набором задач. Поэтому они не видят картину целиком и работают в основном как исполнители. Чтобы понимать, какое решение лучше принять в той или иной ситуации, нужно набраться опыта. Это главная задача любого джуна, если он хочет дорасти до мидла.

На что обращают внимание рекрутеры при подборе

1. Минимальные курсы или образование по специальности. Логично, что для работы программистом на Python нужно знать этот язык.

2. Знание английского. Требуемый уровень зависит от специфики вакансии. Например, в МегаФоне язык потребуется не только чтобы писать код, но и для коммуникации.

3. Софт-скиллы. Навык аналитической работы желателен почти на всех IT-специальностях. Но ключевым для джуниора станет способность к обучению.

Как только джуниор набрался опыта и научился принимать правильные решения в работе над проектом, он переходит на уровень «мидл».

Кто такой мидл разработчик. Смотреть фото Кто такой мидл разработчик. Смотреть картинку Кто такой мидл разработчик. Картинка про Кто такой мидл разработчик. Фото Кто такой мидл разработчик

С английского — середина. Специалист уровня мидл — следующая ступень эволюции джуна.

• Ориентируется в методах решения задач и подбирает оптимальные.

• Умеет писать код аккуратно.

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

• С уверенностью берется за нестандартные задачи.

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

Игорь Фонин (тимлид команды frontend-разработки, МегаФон):
Мидлы — это ребята, способные выполнять любой спектр задач от технических до тех, что улучшают проект. Мидлы создают новые страницы, а при принятии решения советуются с сеньором или тимлидом. Но не всегда мидлам доступны архитектурные задачи — за ними нужен контроль.

На что обращают внимание рекрутеры при подборе

1. Портфолио и реальные проекты.

2. Знания (измеряются количеством языков, протоколов и систем, которые освоены на практике);

3. Менеджерские качества — например, в МегаФоне смотрят на понимание культуры Agile.

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

Кто такой мидл разработчик. Смотреть фото Кто такой мидл разработчик. Смотреть картинку Кто такой мидл разработчик. Картинка про Кто такой мидл разработчик. Фото Кто такой мидл разработчик

С английского — старший. Это либо гуру в своем направлении, либо тимлид и руководитель отдела.

• Глубоко знает направление, в котором работает, и в достаточной мере прокачан в смежных сферах.

• Набил массу шишек и все их превратил в полезный опыт.

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

• Обладает хорошими коммуникативными навыками и тем, что принято называть «эмоциональным интеллектом».

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

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

Игорь Фонин (тимлид команды frontend-разработки, МегаФон):
Сеньор — человек с развитыми софт-скиллами. Он помогает младшим коллегам, оценивает сложность задач и выступает лидером своей команды в техническом плане. К лиду в основном обращается по поводу того, как лучше сделать, или за мнением со стороны.

На что обращают внимание рекрутеры при подборе

1. Софт-скиллы и образ мышления.

2. Уровень экспертизы.

Пути эволюции мидла

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

1. Разработчик-эксперт. Если специалист не хочет бросать код, он волен остановиться и не идти дальше по карьерной лестнице. В этом случае он станет сеньором, который пишет код, развивает свои навыки и углубляет знания. Рост в этом пути развития — это увеличение стоимости компетенций.

2. Техлид (в дальнейшем архитектор). Этот путь выбирают те, кто хочет сконцентрироваться на технической части: придумывать комплексные решения и системы, смотреть на всю картину целиком и решать интересные задачи. Архитектор уже не занимается кодом, а проектирует и продумывает решения.

3. Тимлид (в дальнейшем руководитель разработки). Та самая управленческая должность. Это кардинальная смена деятельности. Вместо кода тимлид занимается мотивацией своей команды, оценкой эффективности и следит за тем, чтобы все процессы работали. Часто бывает, что техлид и тимлид — это один и тот же человек. Он видит общую картину, принимает решения и при этом руководит командой.

Кто такой мидл разработчик. Смотреть фото Кто такой мидл разработчик. Смотреть картинку Кто такой мидл разработчик. Картинка про Кто такой мидл разработчик. Фото Кто такой мидл разработчик

Классифицикация по трем уровням скиллов разработчиков — чисто прикладной инструмент. Он упрощает процесс отбора и помогает обозначить компетенции и требуемый опыт. Но каждый случай индивидуален. В МегаФоне нацелены на быстрое развитие сотрудников и помогают развивать их навыки.

Сергей Кузин (менеджер по подбору персонала, МегаФон):
Рост от джуна до мидла и до синьора сейчас может быть очень стремительным. Многое зависит от инициативы самого разработчика. В МегаФоне для таких переходов есть практически неограниченные возможности по изучению современных технологий и языков и плотная работа с наставниками.

IT в МегаФоне очень разнородно, мы много чем интересным занимаемся. В большей степени команды фокусируются вокруг наших продуктов: есть ребята, которые занимаются мобильным приложением, сайтом. Есть те, кто разрабатывает и поддерживает продукты для корпоративных клиентов (от умных производств, видеоаналитики до крупных проектов безопасных городов и так далее). Есть и те, кто сфокусирован на счастье внутренних сотрудников и делают жизнь каждого из нас — в офисе или на удаленке, — проще и удобнее. Продуктовый подход в разработке позволяет нам быть быстрее и делать действительно важные вещи.

В МегаФоне предлагают конкурентные по рынку вилки зарплат для соискателей с разным уровнем экспертизы. А переход между позициями джуна и мидла или мидла и сеньора в компании происходит за счет обучения и поддержки менторов. В МегаФоне не обязательно идти по дороге «стажер — тимлид», можно двигаться между проектами и находить для себя более интересные задачи.

Атмосфера в МегаФоне, возможность учиться внутри компании и обмен опытом между отделами помогают быстро вырасти с джуна до мидла, а с мидла до сеньора, если у сотрудника есть такое желание. Митапы, мастер-классы и конференции в профессиональной сфере дадут значительный буст навыкам.

МегаФон ищет в свою IT-команду QA-тестировщика, Java, iOS и React разработчиков. И прямо сейчас у вас есть возможность получить приглашение на собеседование без лишних тестовых работ. Если вы в поиске вакансии, выбирайте свою специализацию и пройдите наш Пиратский квест.

Источник

16 вопросов мидлу: что должен знать Middle-разработчик

Авторизуйтесь

16 вопросов мидлу: что должен знать Middle-разработчик

Что должен знать Middle-разработчик? Этот вопрос актуален как для тех, кто претендует на вакансию мидла, так и для тех, кто посматривает в сторону продвижения.

Стоит отметить, что несмотря на то что в IT выработана шкала для оценки программистов (trainee, junior, middle, senior, lead), с которой более или менее все согласны, с точным определением каждого уровня общего мнения среди компаний пока нет. Поэтому каждая компания устанавливает внутренние требования к навыкам каждого уровня.

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

Позиция Middle-разработчика предполагает не только уверенное знание языка программирования, но и широчайшие познания в смежных технологиях. Позиция Middle накладывает на специалиста ответственность не только программировать «всё что угодно», но и обучать, оптимизировать код, разбирать и поддерживать чужой код, как будто родной. Фактически сейчас для вакансий Middle-разработчика предъявляются требования, как несколько лет назад для Senior.

Мы выяснили, что должен знать Middle-программист в 2020 году, и собрали общие вопросы с собеседований, по ответам на которые работодатели определяют, «дорос» кандидат до мидла или нет.

Hard skills

Каков ваш уровень владения языком программирования и сопутствующими инструментами?

От программиста-джуна ожидается знание всех конструкций языка, знание большей части стандартной библиотеки. Знакомство с фреймворками (хотя бы с одним), инструментами коллективной разработки (систем контроля версий, таск- и баг- трекеров, естественно, IDE и др.). Требования к мидлам существенно выше. Как правило, ожидается доскональное знание базы (в том числе синтаксиса используемых языков), опыт работы и уверенные теоретические знания стандартных библиотек, необходимых фреймворков и инструментов.

В каких проектах вы участвовали? Сколько из них вели сами?

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

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

Каков ваш навык работы с базами данных?

Работаете с бэкендом? В таком случае вы должны свободно обращаться к базам данных, иметь навыки работы с одной или несколькими СУБД.

Знать и уметь строить оптимальную архитектуру БД. БД зачастую является самым узким местом производительности проекта. Менять архитектуру БД на живом проекте очень проблематично и дорого.

Это основное из того, что должен знать Middle-разработчик. Не стоит забывать и о нормализации, денормализации и характеристиках каждой нормальной формы.

Расскажите о своём уровне владения выбранной IDE

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

Другие технические навыки

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

Что касается технических навыков Middle-разработчика по frontend JavaScript, то специалист такого уровня должен:

Также есть дополнительные навыки, которые дают преимущества. Большим плюсом в работе будут:

Самое важное для мидла, это знать, как изнутри работает используемая тобой технология, твой фреймворк. Не то, как он производит рендер (с помощью VDOM и т. п.), а как код написан, как происходит магия. Открой GitHub, посмотри исходники React, как, например, this.setState заставляет компонент делать рендер.

Какие методологии разработки вы знаете? По каким из них работали?

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

Что ещё должен знать Middle-разработчик

Soft skills

Насколько вы коммуникабельны?

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

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

Несмотря на это, во многих компаниях перед мидлом часто ставится задача самостоятельно разобраться, чего хочет заказчик, как решить его проблему и какую архитектуру построить. На базе этих сведений формируется полноценное ТЗ, которое затем передаётся команде разработчиков.

Ваши навыки работы в команде

С точки зрения soft скиллов Middle-разработчику, конечно, нужно осваивать компетенции: ведение переговоров, общение с командой, иметь представление об управлении командой. Эти навыки пригодятся в дальнейшем карьерном росте.

Умеете ли вы разрешать конфликты?

Этот навык также является частью коммуникации. Разногласия могут возникнуть и с заказчиком, и внутри команды. Если вам поручили роль наставника над младшими специалистами в проекте — в обязанности войдёт и урегулирование конфликтов.

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

Каков ваш уровень английского языка?

Уровень владения английским языком Middle-программиста должен быть не ниже Upper-Intermediate, так как этот специалист постоянно участвует в созвонах, конференциях, должен свободно читать и составлять техническую документацию.

Способны ли вы доступно доносить свои идеи, убеждать в их правильности?

Что касается «софтскиллс», они необходимы для выполнения многочисленных ролей в команде — разработчик, ментор, докладчик, тимлид и другие. Что для этого понадобится специалисту? Убеждать коллег и клиентов. Иногда даже продавать — идеи, решения, преимущества. Презентовать свои идеи. Обучать. Планировать свою деятельность, ставить задачи перед подчинёнными, контролировать их выполнение. Для этого и много другого нужно развивать соответствующие навыки.

Можно ли вас охарактеризовать, как внимательного человека?

Очень хорошее качество, которое надо развивать разработчику, — это внимательность. Она позволит вовремя заметить, что с «канарейкой» что-то не то. Грамотный Middle-разработчик должен непрерывно отслеживать «жизненные показатели» проекта, чтобы вовремя понять, что «чирикает» после недавнего коммита он уже не так бодро.

Если возникла проблема, как вы будете её решать?

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

На первом месте здесь стоит умение искать информацию. Перед собеседованием вспомните основные источники информации, к которым вы обращаетесь в первую очередь (после документации, разумеется).

Можете ли вы оценить время выполнения задачи?

Это то, что должен уметь Middle-разработчик, особенно если речь идёт о работе в команде: в этом случае необходимо оценить время, исходя из знаний и навыков каждого участника проекта. Следует учиться правильно определять сроки выполнения работы.

Мидл уже имеет достаточный опыт работы, что позволяет ему декомпозировать задачи более-менее правильно. Мидл умеет декомпозировать, а значит он может точнее оценивать задачи. Он должен уметь соблюдать сроки. Это умение нельзя переоценить.

Планируете ли вы развиваться до сеньора или тимлида?

Плох тот солдат, что не мечтает стать генералом. Перефразируем: плох тот мидл, что не мечтает стать сеньором/архитектором/тимлидом. Мидл должен всегда хотеть развиваться. Жажда саморазвития будет вытаскивать мидла из его рутины (а у него будет рутина) и отправлять развиваться дальше.

Выводы

Так завышены ли сегодня требования к мидлам? На этот счёт мнения расходятся, но почти все специалисты сходятся во мнении, что каждая компания диктует свои правила, и то, что должен знать Middle-разработчик, будет напрямую зависеть в том числе от должности, на которую он претендует.

Не завышены ли требования к мидлам? Возможно, кто-то из IT-специалистов сталкивался с тем, что, уже несколько лет будучи мидлом, на собеседовании в какой-либо компании его оценивают как джуниора. Связано это, как правило, с двумя факторами: первое — разные требования в разных компаниях. Второе — часто в уровень квалификации, кроме перечисленных выше hard и soft skills, ещё включают погружённость сотрудника в предметную область, знание специфики бизнеса. Эти знания делают сотрудника ценным для текущей организации, но могут значить меньше в новой для него организации.

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

Источник

Кто такой мидл и как им стать

Если вы это читаете, у вас больше шансов, чем у остальных.

Послушать аудиоверсию этой статьи (6 минут):

Чем мидл отличается от джуниора

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

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

Мидл по сути и есть программист в общепринятом смысле, самостоятельный и квалифицированный. Он сам ищет ответы, сам следит за новыми решениями в отрасли и сам понимает, когда стоит дополнительно чему-то научиться.

В чём сила мидла

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

Джуниоры обычно решают задачу «сделать так, чтобы код работал», а мидлы — «сделать так, чтобы код не только работал, но и был понятен остальным программистам». Чтобы так уметь, нужны опыт, квалификация и отличное владение инструментами.

Почти весь основной код в каждом проекте написан мидлами.

Как им стать

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

Например, если это фронтенд, то мидл должен отлично знать HTML, CSS, JavaScript, PHP, уметь работать с препроцессорами, базами данных и знать отличия в отображении страниц в разных браузерах. А если мы говорим про бэкенд-разработчика, то к этому добавится Python, API нужных сервисов, фреймворки для решения разных задач и знание серверных приложений.

Вот что ещё может делать мидл в компании:

Самое главное — мидл понимает, почему он делает именно так и почему это будет оптимальное решение для проекта.

Сколько зарабатывает мидл

Мы посмотрели зарплаты мидлов разных направлений на Хабр Карьере за второе полугодие 2019 года:

Это в полтора-два раза выше, чем у джуниоров.

Что дальше

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

О том, кто такие сеньоры — в следующей статье.

Источник

Разница между «джуном», «мидлом» и «сеньором». И что делать, чтобы перейти на уровень выше

Кто такой мидл разработчик. Смотреть фото Кто такой мидл разработчик. Смотреть картинку Кто такой мидл разработчик. Картинка про Кто такой мидл разработчик. Фото Кто такой мидл разработчик

Уровень разработчика не обязательно определяется многолетним опытом программирования: «джун» вполне может быть старше «сеньора», — всё сводится к профессиональным навыкам. Это не означает, что старший разработчик должен быть специалистом во всём, но можно с уверенностью сказать, что навыки у него гораздо более развиты, чем у разработчиков младшего и среднего уровня.

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

Знания

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

Важно знать, как должно создаваться программное обеспечение. Но просто знать всё это — не значит быть разработчиком более высокого уровня. Знания — это не ключевое отличие, а лишь один из факторов.

Кто такой мидл разработчик. Смотреть фото Кто такой мидл разработчик. Смотреть картинку Кто такой мидл разработчик. Картинка про Кто такой мидл разработчик. Фото Кто такой мидл разработчик
Фото — Clem Onojeghuo, площадка Unsplash

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

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

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

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

Как вычислить «джуна»

Младшие разработчики неопытны: иногда это выпускники, которые только начинают работать на полную ставку. В их голове основная задача — заставить код работать. Если приложение работает — значит, оно хорошее.

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

Младшие разработчики сосредотачиваются на «компьютерной» части кода, упуская из виду «человеческую».

Как пишут код «сеньоры»

Глядя на код старшего разработчика, можно подумать: и это всё? А где остальное? Достаточно опытный разработчик пишет простой, понятный и, возможно, местами даже чересчур прямолинейный код — и это одно из самых важных качеств, если говорить о программировании. «Сеньор» следует принципу KISS, гласящему, что код должен быть простым и понятным: «Keep it simple, stupid»

Поэтому у старшего разработчика совершенно другой подход к написанию кода: он учитывает удобство дальнейшей поддержки и масштабируемость. Это совершенно не похоже на мышление младшего разработчика: «сеньор» думает о тех, кто будет работать с кодом, а «джуну» важно в первую очередь заставить код работать.

Не программированием единым

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

Младшие разработчики, как правило, выполняют самые простые и не самые важные задачи; они не занимаются разработкой архитектуры. Разработчики среднего уровня тоже не разрабатывают решения, а просто выполняют задачи, однако их меньше контролируют — если задание довольно типовое. А вот «сеньоры» могут разработать приложение совершенно самостоятельно.

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

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

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

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

А вот в случае «джунов» не следует ожидать, что они смогут задавать нужные вопросы: у них недостаточно практики, поэтому ими должны руководить более опытные коллеги. Младшего разработчика следует обеспечить необходимыми ресурсами или хорошенько подтолкнуть в правильном направлении.

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

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

От «джуна» — к «мидлу»

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

Что касается программирования — следует научиться писать простой код: представьте, что после вас над проектом будет работать другой человек. Кроме того, придется научиться заниматься отладкой — это углубит понимание того, что происходит во время работы программы.

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

От «мидла» — к «сеньору»

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

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

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

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

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

Заключение

Разница между «джуном», «мидлом» и «сеньором» заключается не только в многолетнем опыте. Да, можно с уверенностью сказать, что у последнего навыки гораздо более развиты, чем у разработчиков младшего и среднего уровня. Но знание — не самый важный фактор.

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

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

Напоследок процитирую Мартина Фаулера:

«Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку»

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *