- Джун, мидл и сеньор: разбираемся, кто есть кто
- Возраст и опыт — далеко не главное
- Так в чём различие?
- Разница только в коде?
- Junior
- Middle
- Senior
- В сухом остатке
- Уровни IT-шности в программировании: Junior, Middle, Senior, Team Lead
- Основные различия между инженерами-программистами, разработчиками и программистами.
Джун, мидл и сеньор: разбираемся, кто есть кто
Деление специалистов на junior, middle и senior хорошо знакомо разработчикам — так обычно определяют уровень компетенций. Но каких требований ожидать от работодателя, если ему нужен «джун», «мидл» или «сеньор»? Попробуем разобраться.
Возраст и опыт — далеко не главное
Человек, который мало знаком с IT, может подумать, что senior — это разработчик, который много лет отдал своей профессии, middle — программист среднего возраста, а junior — вчерашний школьник, который начинает осваивать программирование.
Нельзя сказать, что это полное заблуждение. Нередко джуны действительно молоды, мидлам около 35 лет, а у сеньоров уже седеют волосы. Но не так уж редко встречаются солидные джентльмены, работающие на позиции middle и даже junior под руководством молодого senior-разработчика. Все зависит от компетенций человека, его личностных качеств и, конечно, возраста старта в профессии.
Так в чём различие?
Есть несколько способов понять, кто есть кто, но самый простой и эффективный — посмотреть исходники. Если код сложной программы без труда могут разобрать другие разработчики, у него понятная архитектура и стройная логика — скорее всего, его писал сеньор. И напротив, если код простого продукта получился причудливым, со сложными абстракциями и странными однострочниками — над ним наверняка работал джун.
Сеньоры заботятся о простоте кода — чтобы его легко освоили коллеги, а поддержка не доставила хлопот. Джунам для этого не хватает опыта — они действуют по принципу «Если работает, то всё отлично». До читаемости и чистоты кода руки не доходят.
Если для сравнения взглянуть на код, написанный сеньором, может даже возникнуть недоумение: «Да как так, сложная ведь программа, а так изящно и просто написана!» Этот навык приходит с опытом и далеко не ко всем.
Разница только в коде?
Нет, на этом различия не заканчиваются. Рассмотрим внимательнее специалистов каждого уровня, а затем сопоставим наблюдения.
Junior
В большинстве случаев джуны реализуют простые задачи: например, части проекта, которые затем объединяются. Они делают кирпичики, из которых можно возвести пригодный для жизни дом. При этом джуны зачастую не представляют себе масштабы здания, в постройку которого они вкладываются.
Хорошим джуном считается тот, который может самостоятельно работать над своими «кубиками» — техническими задачами. При этом важно, чтобы его разработки нормально функционировали, когда их встраивают в приложение или сервис.
Скорее всего, на следующий уровень выйдет джун, который:
- стремится развиваться и реализует свои возможности,
- энергичен и целеустремлён,
- умеет с холодной головой воспринимать критику.
Middle
Джун, который набрался опыта, улучшил компетенции и научился чисто выполнять свои задачи, может претендовать на позицию мидла. Буквальный перевод слова middle — «середина», но на самом деле в разработке мидл ближе к сеньору, чем к джуну.
Мидлы осознают масштабы проекта, но тоже разрабатывают только его части, хотя и более крупные. Мидл способен самостоятельно выполнять сложные задачи в рамках проекта, причём не только технические, но и административные. На этом уровне разработчик должен понимать требования бизнеса и уметь реализовывать их на практике.
- они понимают функции и структуру продукта, который разрабатывают, и поэтому их решения эффективны;
- у них есть опыт в разработке приложений и сервисов в нужной отрасли, так что им под силу больше задач;
- мидлы хорошо владеют стандартными инструментами и шаблонами, а также знают, когда и для чего их применять;
- в ходе разработки они учитывают не только свои интересы и предпочтения — мидлы понимают, что работают в команде, и умеют взаимодействовать с коллегами.
Senior
Эта ступень не каждому доступна — многие разработчики остаются на уровне мидла всю карьеру. Чтобы подняться выше, нужны «тонкие» компетенции, которые позволят решать задачи, которые не под силу больше никому. Нужно знать и уметь больше, чем большинство коллег. Например, не просто писать хороший код, а учитывать в нём инструментарий и специфику компании. Сеньоры могут самостоятельно разработать масштабное приложение или сервис с нуля — потому что понимают архитектуру и знают, что и как должно быть создано.
Сеньору требуется не только навык командной работы, как мидлу, но и управленческий опыт. Значит, нужны и коммуникативные навыки. Сеньор может убедительно донести свою точку зрения до команды и руководства, а после реализовать предложенную идею. Он всегда знает, как задать вопрос (и коллеге, и поисковому сервису), чтобы получить нужный ответ. И ещё синьор — это часто ментор: помогает джунам осознать масштабы проекта, правильно работать и развиваться.
Сеньор должен глубоко понимать устройство библиотек, фреймворков, инструментов разработки. Иначе конечный продукт будет вести себя непредсказуемо.
Такой специалист в команде — это фактор стабильности. Он понимает технические риски и знает, как их снизить. Задача сеньора — сделать так, чтобы в коде совсем не было «костылей», которыми грешат джуниоры и мидлы. Без вмешательства опытного руководителя иногда получаются такие продукты, которые ассоциируются разве что с фантастическим гибридом бегемота с носорогом, у которого есть ещё гены утконоса и лотоса. Работает этот монстр Франкенштейна — и ладно.
В сухом остатке
Мы видим, что разница между тремя категориями специалистов — не в возрасте или стаже. Главные различия состоят в отношении к самому процессу разработки, в его понимании и осознании. Об этом и цитата в эпиграфе статьи: она очень точно характеризует новичков и профессионалов.
В GeekBrains мы готовим и джунов, и специалистов уровня middle. Для первых у нас есть короткие курсы — «профессии», а для вторых — более продолжительные программы на факультетах GeekUniversity. Выбирайте сами, по какому маршруту сократить путь до позиции сеньора 🙂
Уровни IT-шности в программировании: Junior, Middle, Senior, Team Lead
Нажимая на кнопку «Отправить», вы даете согласие на обработку своих персональных данных.
- младший (джун от англ. Junior)
- средний (мидл от англ. Middle)
- старший (сеньор от англ. Senior)
- ведущий (главный программист от англ. Team Lead)
Но знаете ли вы, в чем разница между ними? Итак, давайте начнем с того, кто такие разработчики младшего, среднего и старшего уровней и чем они отличаются друг от друга. Уровень знаний разработчиков программного обеспечения подразделяется на четыре упомянутые степени программной инженерии, чтобы определить профессиональные возможности потенциального сотрудника – какую сферу ответственности он может взять на себя, насколько он квалифицирован и насколько способным он может быть в целом, когда дело доходит до стрессовой нагрузки и чрезвычайных рабочих ситуаций. Чёткое определение конкретной роли разработчика в должностной инструкции для заинтересованного специалиста имеет решающее значение.
1) Младший разработчик (Джун или Junior) обладает:
- Опытом до 1,5 лет
- Трудолюбие и старания к обучению
- Готовность к ненормированному графику
- Отличные базовые знания об информационных технологиях как с точки зрения программного, так и аппаратного обеспечения или пройти курс компьютерной грамотности
- Основы компьютерного программирования
- Способность научиться пользоваться инструментами.
- Знание по крайней мере одного языка программирования c++, c, java, python, php, mysql, nodejs, reactjs c со способностью писать базовый программный код
Какие задачи будет решать младший разработчик ?
- Уметь находить и исправлять мелкие, менее важные ошибки
- Работать с внутренними инструментами
- Работать над определенными функциями
- Необходима помощь в первоначальном планировании проекта
- Компетентный младший инженер-программист обычно является помощником, ориентированным на backend или frontend, в процессе развития навыков
Младший разработчик обычно в начале своего пути будет создавать код с ошибками, поэтому ему требуется больше времени на проверку своего кода, не осведомлён или не имеет опыта работы с лучшими практиками и новейшими технологическими концепциями, а в школе программирования для детей «Айтишка» помогут изучить и познакомят вас с самыми последними передовыми практиками программирования в мире!
2) Средний разработчик (middle — мидл) обладает:
- Опытом работы в среднем от двух до 5 лет
- Готов к обучению
- Имеет опыт работы в нескольких проектах
- Может работать в одиночку и в команде
- Могут самостоятельно настроить среду разработки
- Может быть наставником младших разработчиков команды
- Демонстрирует инициативу и способы решения различных задач
Какие задачи решает мидл разработчик ?
- Создаёт программы таким образом, чтобы другие люди могли легко управлять ими
- Код ревью, чтобы сделать его более эффективным
- Структурирование задания
- Составляет планы и графики тестирования
- Детальное изучение кода в программе
- Выполняет несколько задач для нескольких проектов
- Все еще может понадобиться поддержка наставника
Старший разработчик (Senior — сеньор) обладает:
- Имеет не менее от 5 до 8 лет опыта в программировании
- Готов к обучению и саморазвитию
- Экспериментирует и тестирует код, для получения результатов
- Возможность развивать и наставлять разработчиков джунов и мидлов
- Работа с проектами с помощью эффективного делегирования задач
- Обладает глубоким взглядом на развитие проекта и предлагает наилучшие способы развития с учетом конечной рыночной цели
Какие задачи решает старший разработчик ?
- Может выполнять полный рабочий процесс ‘разработка с нуля -> развертывание -> запуск проекта’
- Составляет технические спецификации и техническое задание проекта
- Определяет первоначальные риски при работе над крупными проектами
- Отвечает за наставничество младших и средних членов команды
- Проводите регулярные проверки кода для менее опытных коллег
- Может самостоятельно решать различные проблемы благодаря прошлому опыту
- Может решать сложные проблемы с помощью применения шаблонов проектирования
- Может управлять командой, выполняющих задачи от простого до среднего уровня
Ведущий разработчик (Team lead — тим лид) обладает:
- имеет опыт более 8 лет в программировании
- регулярно участвует в разработке программных продуктов
- понимание процесса построения и создания проектов
- Знания и опыт во всех аспектах разработки программного обеспечения: сбор требований, валидация и управление ими; архитектура/ дизайн; разработка кода; интеграция; и тестирование / контроль качества.
Какие задачи решает ведущий разработчик ?
- Создаёт и адаптирует шаблоны проектирования в проекте
- Решает вопрос правильного построения архитектуры проекта
- Доверяют решать проблемы без определенного подхода
- Доверяют генерировать идеи в проекте
- Создание и умения внедрять систему с нуля
- Полномасштабные архитекторы проектов, чьи навыки разработки программного обеспечения позволяют им работать как над бэкендом, так и над фронтендом
Основные различия между инженерами-программистами, разработчиками и программистами.
Между тем, теперь давайте рассмотрим основные различия между инженерами-программистами, разработчиками и программистами. Люди часто путаются, когда речь заходит о разнице между программистами, инженерами и разработчиками программного обеспечения.
Программист — это скорее техник, который выполняет поставленные задачи без особого участия в других аспектах проекта, плюс-минус. Проще говоря, программисты пишут программный код, и на этом их обязанности могут заканчиваться, можно научится создавать свой код на курсах программирования.
Разработчик программного обеспечения более разнообразен в профессиональном плане – помимо того, что он может писать и просматривать код, ему также поручено создавать техническую документацию, планировать тестирование и профессионально обобщать все циклы разработки.
Инженер — это, как правило, официально квалифицированный, углубленный эксперт со степенью, который не только умеет программировать, но и знает некоторые способы решения сложных проблем программирования и настройки тщательных стратегий разработки с учетом лучших практик.
Однако многие люди по-прежнему рассматривают эти три термина как равные.
Технические навыки, опыт и экспертные знания в программировании можно приобрести с течением времени, чем больше практикуетесь и выполняете заданий по написанию кода, вы будете расти вместе с увеличением сложности ваших проектов и наоборот, если не будете программировать код для усложняющихся проектов с каждым днём ваш процесс повышения квалификации возможно замедлится или же прекратиться.