Грейды в Java-разработке: junior, middle, senior
Какие бывают грейды в Java-разработке? В статье разбираемся, как происходит разделение на грейды, какие навыки нужны для каждого и как перейти из одного грейда в другой.
Евгений Хохлов
Tech Lead в Chatfuel, ex-CTO ICEBERG Sports Analytics
Грейды в разработке – одна из самых противоречивых и субъективных тем. Каждая компания имеет свой набор грейдов, свои правила присвоения и пересмотра. Обычно ваш грейд сильно коррелирует с вашими задачами, зоной ответственности, ожиданиями компании относительно вас и, конечно, зарплатой.
В данной статье мы рассмотрим:
- наиболее частое разделение на грейды в Java-разработке
- ключевые навыки, необходимые для каждого грейда
- на какую зарплату можно рассчитывать в зависимости от грейда
- как перейти из одного грейда в другой
Начнем с разделения. Чаще всего выделяют три основных грейда: Junior (начинающий разработчик), Middle (опытный разработчик), Senior (ведущий разработчик). И именно эти названия вы чаще всего увидите в описаниях вакансий. Это разделение достаточно условно, и разработчик не переходит с одной ступени на другую в одно мгновение (в конкретной компании таких ступеней может быть больше, чем общепризнанных). Обычно любую таблицу грейдов можно привести к обозначенным выше трем позициям.
Чаще всего Junior-разработчик:
- на начальном этапе получает от компании больше, чем приносит пользы
- работает над рутинными, детально проработанными задачами
- требует большого количества внимания более опытных коллег
В силу нехватки опыта Junior-разработчик может на первых порах “брать” от компании больше, чем “отдавать”, однако компании готовы мириться с этим и инвестировать в его развитие, если видят потенциал, так как нередко оказывается, что найти хорошего Middle-разработчика на рынке сложнее, дольше и дороже.
Рассмотрим навыки, необходимые Junior Java-разработчику. Будем разделять навыки на две группы hard skills (технические) и softs kills (коммуникационные)
Hard skills Junior Java-разработчику нужны для решения небольших задач, поэтому понимание структуры проекта и глобальных архитектурных паттернов необязательно. Обычно для решения задач требуются:
- основы объектно-ориентированного программирования
- синтаксис Java
- умение выбирать правильные коллекции для решения задач
- базовые алгоритмы и структуры данных
- базовые знания Git
Soft skills необходимы для быстрой коммуникации с коллегами. Ваш успех на позиции Junior-разработчика напрямую связан с тем, сколько времени опытные коллеги тратят на вас. Поэтому крайне важно:
- четко формулировать свои мысли
- прежде чем задавать вопрос, попытаться найти ответ в открытых источниках (интернет, база знаний компании)
- задавать вопросы по делу, предоставлять всю информацию по вопросу сразу
Как было отмечено выше, основная ценность Junior-разработчика – это его потенциал развития. Поэтому компании проводят тщательный отбор на этой позиции. Чтобы увеличить шансы, часто требуется либо получить коммерческий опыт на стажировке, либо отточить навыки программирования на сайтах вроде leetcode или codewars.
Следующий и наиболее многочисленный грейд: Middle Java-разработчик. Middle-разработчик:
- неплохо ориентируется в коде
- может без поддержки реализовать проработанную и хорошо описанную задачу
- может самостоятельно принимать небольшие проектные решения
- помогает в поддержании документации / базы знаний проекта
Middle Java-разработчик обладает большим набором hard skills:
- хорошо разбирается в основных библиотеках и фреймворках, которые используются в проекте
- работает с инструментами логирования и мониторинга
- настраивает систему сборки (обычно Gradle или Maven), может самостоятельно добавить новую библиотеку или поднять версию текущей
Со стороны soft skills добавляется взаимодействие со смежными командами. Поэтому важно уметь давать и получать конструктивную обратную связь. Уметь находить компромиссы.
Основная задача Middle-разработчика – хорошо реализовать поставленные задачи в срок. Некоторые инженеры всю жизнь живут на этом грейде — им комфортно просто кодить, не занимаясь управлением. Однако хороший Middle-разработчик должен не просто выполнять команды, а понимать, что он разрабатывает и какое влияние это оказывает на бизнес.
Последний грейд – Senior Java-разработчик, требует большого опыта и налагает большую ответственность в принятии решений. Senior:
- уважаем в команде разработки
- может работать над задачей на любом этапе проработки
- продумывает, как реализовать тот или иной запрос от бизнеса
- прививает хорошие практики разработки, развивает команду
Senior-разработчик обладает примерно таким же набором хард скиллов, что и Middle, но обычно гораздо глубже понимает нюансы. Например, знает общепринятые подходы или известные проблемы в библиотеках.
Senior должен также владеть soft skills:
- умеет планировать свое время
- высоко инициативен
- умеет убедить в своем видении
- руководит и помогает развиваться младшим грейдам
Senior-разработчик высококвалифицированный специалист: он не только понимает, какое влияние на бизнес оказывает та или иная фича, но и может критически оценить риски, рассчитать трудозатраты и предложить улучшения.
Как повысить свой грейд?
Перейти с грейда на грейд не самая простая задача, надо приготовиться к тому, что поменяется не только ваша зарплата, но и задачи, которые вы делаете, и зона ответственности.
В любом случае самым лучшим первым шагом будет напрямую рассказать о вашем желании руководителю и составить персональный план развития.
Второй шаг, существенно увеличивающий шансы: начать делать больше, чем от вас ожидается. Если вы Junior разработчик и вы разобрались в сложном месте в проекте – не поленитесь, обновите базу знаний, дополнительно подсветите те вещи, что были непонятны. Если вы Middle-разработчик – дополнительно задумайтесь, а как можно улучшить то, что я делаю, или как реализовать это быстрее.
На какую зарплату можно рассчитывать на каждом грейде?
Зарплата сильно зависит от многих факторов, прежде всего от города и от компании. Конечно, в рамках одной компании и одном городе junior разработчик будет получать заметно ниже, чем middle, а middle будет получать меньше, чем senior.
Но в среднем начинающие специалисты могут получать от 100 тыс. руб, а высококвалифицированные – от 300 тыс. руб.
На какой грейд можно перейти при смене языка программирования?
Если вы не меняете сферу деятельности кардинально, а меняете только язык программирования, то можно перейти на новое место даже без потери грейда. Например если вы Middle Python разработчик, занимаетесь бэкендом и хотите начать писать бэкенд на Java, то скорее всего сможете совершить переход на Middle грейд, особенно, если стек технологий будет знакомый
Грейды – удобный способ обозначить свой опыт и уровень знаний. Однако критерии отличаются в зависимости от компании и сферы реализации. От этого изменяется и заработная плата специалиста. В статье мы рассмотрели примерный уровень ожиданий и навыков для каждого из грейдов.
Полезные материалы
- Канал по аналитике и разработке от ProductStar
- Статья «7 причин стать Java-разработчиком»
- Таблица навыков: Java-разработчик
Заинтересовала статья? Хотели бы стать Java-разработчиком с нуля? Советуем обратить внимание на курс от ProductStar «Профессия: Java-разработчик». На курсе опытные эксперты научат вас необходимым hard skills, менторы всегда будут на связи и смогут ответить на вопросы, вы сможете сделать свой проект и добавить к себе в портфолио, а Центр Карьеры подберет для вас стажировку с гарантированным оффером уже во время обучения.
Программист Java

Программист Java — специалист, который создает приложения разной сложности, используя старейший язык программирования.
средняя зарплата
удовлетворенность
Что делает программист Java
Java платформа позволяет создавать практически все виды приложений, такие как: web сайты, всевозможные серверы, приложения для персональных компьютеров и даже микропрограммы для умных домов и роботов.
Главная задача программиста Java — написать новый код, чтобы мобильное приложение, мессенджер или веб-сайт могли работать, либо же модифицировать уже существующий код. Также эти специалисты сотрудничают с дизайнерами, project-менеджерами, тестировщиками и другими техническими членами команды.
Сколько получает программист Java
Уровень зарплаты Java-программиста зависит от компании, в которой он работает, от заказчиков, которые есть у компании. Уровень самого программиста и опыт его работы также играет не последнюю роль. Junior получает меньше Middle Developer, а тот в свою очередь уступает в зарплате разработчику уровня Senior.
Средняя зарплата
Распределение зарплат
19 000 грн
155 000 грн
В среднем «Программист Java» в Украине зарабатывает 46500 грн. Это медиана заработных плат по данным из 17 вакансий, размещенных на Work.ua с заголовком «Программист Java» и по запросам-синонимам «Java developer», «Java-разработчик», «Java programmer» и др. за последние 3 месяца. Диапазон, который содержит медиану, выделен на графике.
Какие навыки нужны программисту Java
В зависимости от уровня специализации и целей компании отличаются и навыки. Помните: каждая компания может иметь свои требования, которые могут отличаться от нашего списка.
Junior программист Java
- Язык Java (синтаксис, ООП возможности, многопоточность, стандартная библиотека).
- OOP и OOD (парадигмы, основные паттерны проектирования).
- Базы данных (JDBC, язык SQL).
Большим плюсом для Java Junior’а будет знание какой-либо конкретной технологии или фреймворка (например веб-сервисов или Spring).
Middle программист Java
- Хорошее понимание OOP, знание архитектуры MVC.
- Понимание алгоритмов и структуры данных.
- Знание систем управления версиями (GIT).
- Уверенное знание JAVA.
- Опыт работы с сокетами и многопоточностью.
- Умения писать понятный и короткий код (KISS, DRY).
- Опыт использования реляционных баз данных (PostgreSQL или MySql).
- Умение составлять сложные SQL запросы.
- Знание английского.
Senior программист Java
Все навыки из предыдущих пунктов. Отличается уровень и опыт владения сервисами и алгоритмами, которые используются в компании. Опыт проектирования сложных систем и управления командой.
Преимущества и недостатки в работе программиста Java
- Java — один из самых практичных, популярных и высокооплачиваемых языков программирования.
- Есть возможность работать как в офисе, так и удаленно.
- Разработчик Java легко может стать Android-программистом.
- Зарплата значительно выше средней.
- Стать программистом Java можно без высшего образования.
- Язык Java достаточно сложен для изучения.
- Интерес к Java ослабевает из-за появления новых, простых и удобных инструментов на любой вкус и под любую задачу.
- Как ни крути, но разработка — это монотонная сидячая работа за компьютером.
- Facebook share link
- Threads share link
- Вопрос задан более трёх лет назад
- 32091 просмотр
Как сами программисты Java оценивают свою профессию
По данным опроса Work.ua среди зарегистрированных соискателей с опытом работы программистом Java.
Баланс между работой и жизнью
Насколько востребованы программисты Java
Сейчас в Украине есть много компаний, в том числе аутсорсинговых, которые предоставляют услуги по созданию програмного обеспечения. И всем им нужны специалисты, включая программистов Java. Сами же программисты говорят, что даже если Java завтра умрет, то даже через 30 лет будет огромное количество проектов, которые будут требовать доработки, улучшений и даже багфиксов.
вакансий на сайте
Где учиться на программиста Java
Как мы уже говорили, стать программистом Java можно и без высшего образования. Можно всю теорию и практику изучить самостоятельно. Для этого используйте интернет-программы, видеоуроки и учебники. Найдите себе опытного наставника, или учителя.
Однако, если вы хотите получить хорошую базу, выбирайте среди вузов, предлагающих обучение по направлению «Информационные технологии».
Также, чтобы начать работать по специальности, можно закончить курсы «Программист Java».
Будущим абитуриентам, выбирающим профессию и планирующим, где учиться, пригодится подробная пошаговая инструкция «Вступ» от Education.ua. Воспользуйтесь ей, чтобы разобраться с правилами поступления, подготовиться к экзаменам, понять принцип зачисления, собрать все документы и не пропустить сроки их подачи.
Еще больше информации про курсы и учебные заведения.
Международный день программистов
7 января, вторник
Поделитесь этим материалом с друзьями и знакомыми, запостите его у себя в социальных сетях, расскажите про него родственникам, которые не могут определиться с будущей профессией. Ведь каждый достоин получить работу своей мечты!
Другие профессии
Грузчик
Грузчик — это тот, кто перемещает различные грузы на определенные расстояния.
7 критериев оценки Senior-разработчика
GlobalCareer регулярно подбирает разработчиков уровня Senior в крупные финансовые, enterprise и IT-компании. Давайте разберёмся, кто это и по каким критериям их оценивают профессиональные рекрутёры. Правильная оценка на этапе HR-интервью экономит время работодателя на подбор в целом.
Senior-разработчик ― это специалист высокого уровня, обладающие успешным опытом в запуске проектов, умеющие оценивать сроки и инструменты, необходимые для решения поставленных задач.
Каким опытом работы должен обладать Senior-разработчик
Для начала мы уточним информацию о стаже в ИТ. Кандидатом Senior-уровня считается специалист с опытом коммерческой разработки более 4-х лет. Но сразу оговоримся, что такая градация весьма условна и важным здесь будет не только время работы и стек технологий, но и масштаб проектов и их предметная область. Также мы обращаем внимание на то, как часто кандидат меняет место работы. Для адаптации и погружения в продукт требуется время, поэтому предпочтение отдаём специалистам, проработавшим больше года в одной компании.
Сколько реализованных проектов должно быть у Senior-разработчика
Ответ на этот вопрос напрямую связан со стажем работы, но мы выделим его в отдельный пункт. По нашему опыту, высоко ценятся специалисты, которые за 5 лет деятельности смогли вывести в продакшн 6-7 проектов. Заказчиком при этом может выступать как одна компания, так и разные, особенно это касается работы на фрилансе или в ИТ-консалтинге, где за год кандидат может принять участие в разработке 2-4 продуктов или компонентов. Но всегда бывают исключения. Так, у нас был успешный опыт найма Senior-разработчиков, которые более 6 лет работали в одной организации на минимальном количестве проектов.
Чем занимался Senior-разработчик в предыдущем проекте
В каждом отдельном случае всё будет зависеть от задач работодателя. Практически в любом проекте синьор решает сложные и нестандартные задачи, пишет код, который требует нетривиального подхода, следит за качеством всего кода, а также обучает Junior и Middle-специалистов и проводит код-ревью. Здесь важно запомнить вот что: Senior-разработчик ― это специалист, который понимает процессы и с технической точки зрения, и с точки зрения бизнеса, поэтому может придумывать эффективное решение задач клиента через ИТ. Нередко на интервью мы говорим с кандидатами именно про пользу, которую они принесли предыдущим работодателям, какие их проблемы и как именно решили. Часто дело не столько в коде, сколько в идее. Собственно, она и оценивается.
Hard skills Senior-разработчика
Конечно, мы спрашиваем насколько хорошо кандидат владеет всем рабочим стеком проекта, в который его приглашаем. Также для нас важно умеет ли он самостоятельно вести разработку «с нуля», насколько хорошо знает язык разработки и фреймворки для решения каждой поставленной задачи. Но ценнее здесь будет именно понимание того, как работают те или иные технологии, их особенности и концепции, нежели простое владение инструментами. Ведь, если кандидат досконально разобрался в одном фреймворке, то разберётся и в другом.
Качество кода Senior-разработчика
Это очень важный критерий, но оценивается он техническими специалистами на coding-сессии на собеседовании или на основе примеров кода кандидата, которые он выкладывает на тематических ресурсах, например, Github.
Какие soft skills важны для Senior
Senior-разработчик обязательно обладает хорошими коммуникативными навыками. Ведь ему предстоит не только найти верное решение, но и объяснить его команде и заказчику. К тому же, такой специалист будет общаться с большим количеством сотрудников компании, и со всеми он должен наладить коммуникацию. Также для Senior-разработчика важно понимание бизнес-процессов, которые реализуются на проекте. Причём его способность вникнуть в проблему заказчика и готовность найти оптимальное решение может цениться даже выше, чем просто умение писать код.
Должен ли Senior-разработчик обладать опытом наставничества
Такой опыт желателен, но не является обязательным. Большим плюсом будет, если кандидат уже обучал младших разработчиков, проводил с ними интервью, ревьюил их код. Значит, он разбирается в теме и при необходимости сможет ввести в курс новых сотрудников, эффективно объяснит команде выбранный вектор работы и замотивирует на качественное решение поставленных задач.
Senior-разработчики высокооплачиваемые и востребованные специалисты, выросшие до своего уровня благодаря активной работе фултайм. В зависимости от их профессиональных интересов и выбранной специализации, дальше карьера таких кандидатов может развиваться в нескольких направлениях. Есть желание расти в техническом плане – можно стать Teach Lead. Если больше привлекает управление и администрирование, то стоит обратить внимание на вакансии Team Lead. А если разработчик заинтересован в эффективной автоматизации бизнес-процессов, то следующая ступень его карьерной лестницы Архитектор.
В базе GlobalCareer находится более 2 млн резюме IT-специалистов разного уровня и компетенций. Если вам нужен аналитик, тестировщик или разработчик с редким профилем – оставьте заявку, и мы в кратчайшие сроки найдем подходящих кандидатов.
Какой объем знаний должен быть у Senior Java Developer
Всем доброго времени суток! Хотел задать такой вопрос, что должен знать программист по Java, чтоб перейти на уровень Senior Java Developer, а именно в сфере j2ee (конечно, если есть разница в данном уточнении).
Заранее спасибо!
1 комментарий
Оценить 1 комментарий
j2ee была упразднена, эдак, лет 6 назад, когда 1.5 появилась. Теперь это Java EE.
Градация условна, каким уровнем должен обладать Middle, например, в Сиетле и, скажем, в Питере? Две большие разницы, как говорится, так что уточни географию и напиши, что сам думаеш по объему знаний.
Решения вопроса 0
Ответы на вопрос 5
25 star General
ИМХО, Senjor Java Developer — это как ветеран на войне. Его сила не в знаниях, а в опыте. Допустим вы начали новый enterprise java project и наняли трех разработчиков: junior, middle и senjor’а.
Junior — умеет программировать, мало опыта на рельных задачах, знает 10-20% используемых в проекте технологий.
Middle — в состоянии решать сложные задачи самостоятельно, знает 50-60% используемых в проекте технологий.
Senjor — берет на себя ответственность за проект, самостоятельно. Знает более 90% используемых технологий. В состоянии решать «нерешаемые» проблемы. Помогает другим: ставит им задачи, учит. В критических ситуациях берет на себя ответственность и риски.
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
Максим Боговик @maxBogovick Автор вопроса
программист JavaSE/EE
Касательно географии — то это Украина (Одесса, Киев), а что касается объема знаний, то тут нет никаких мыслей, можно перечислить все, например многопоточность, фреймворки по работе с серверной частью, паттерны проектирования, шаблоны построения юзабилити, case и uml средства, а можно упустить главное, вот по этому я и решил спросить.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Мы недавно рассуждали об абстрактном Senior Developer’е и пришли к решению, что Senior (в отличие от Junior) — это тот, кто может может решить поставленную программистскую задачу самостоятельно. Соответственно, Java EE Senior Developer — это разработчик, который самостоятельно может решить задачу, которая связана с разработкой Enterprise приложения.
Конечно есть синтетические тесты для «выявления» Senior’а, но мне кажется, что это всё ерунда — главное решение реальных практических задач.
Ответ написан более трёх лет назад
Нравится 2 3 комментария
Мне кажется любой программист при наличии интернета может решить любую разумную задачу (т.е. не уровня «написать ИИ, проходящий тест Тьюринга») задачу. Вопрос в том, сколько времени это займет.
По своему опыту работы могу сказать следующее: зачастую дипломированные разработчики, нанятые на позицию Senior’ов, показывают результаты хуже, чем новички-джуниоры. Конечно, знание библиотек и наличие опыта — это важные вещи, но они важные только тогда, когда человек знает как их применять.
Про время — это верно подмечено, Senior решает задачи максимально быстро (но опять же скорость складывается не только из самих знаний, а способе их применения). Поэтому я и пишу, что знание ответов на «синтетические» вопросы далеко не самое главное для Senior’а.
Основные знания Senior’а должны включать (по моему мнению):
1. Senior должен знать паттерны программирования и уметь ими пользоваться.
2. Senior должен уметь работать с внешними (по отношению к программированию) тулзами — системы контроля версия, системы автоматической сборки проектов, и т.д.
3. Senior должен иметь хорошее представление о структуре проекта (от макро уровня — взаимодействия модулей до микро уровня — отдельных класов)
4. Senior должен решать задачи максимально быстро и оптимально (имеется ввиду не писать фарш)
В принципе это относится ко всем Senior’ам вне зависимости от ЯП и сферы деятельности. Естественно, в определённой сфере Senior должен иметь специфичные для данной сферы знания: например, при разработке банковских систем Senior должен знать (или хотя бы иметь ввиду) как эти системы устроены, какие бизнес процессы в них протекают и.д., потому как без этих знаний он не сможет выполнить п. 4 (см. выше).
Кстати, поэтому ваш вопрос можно считать не корректным (не указана сфера работы).