Переход на middle: почему «ещё год опыта» не работает
Middle — это не «джуниор, который подольше поработал», а другой уровень ответственности. На собеседованиях я регулярно вижу кандидатов с опытом 2–3 года, которые делают задачи, но не переходят на следующий грейд — и почти всегда причина одна: они готовятся не к тем критериям.
Если на junior собеседовании проверяют «можете ли вы писать код», то на middle проверяют другое: можете ли вы принимать решения и отвечать за них. Стаж тут вторичен — известны случаи, когда за год до middle дорастают, и случаи, когда на junior застревают на три года.
В этой статье — критерии перехода, по которым вас реально оценивают: сначала технические, потом нетехнические, а в конце — план, по которому к ним можно подготовиться.
Что на самом деле отличает middle
Самая частая ошибка — сводить грейд к «объёму знаний». Джуниор и мидл могут знать одинаковый набор технологий, но работать по-разному:
- джуниор выполняет задачи, мидл — решает проблемы: «как это сделать» превращается в «что сделать и почему»;
- джуниор спрашивает «как», мидл сам находит варианты и приносит готовое решение с обоснованием;
- джуниор отвечает за свою часть кода, мидл — за результат модуля или экрана целиком;
- джуниору дают архитектуру, мидл участвует в её обсуждении и защищает свои предложения.
Главный критерий — самостоятельность
На собеседовании на middle интервьюер смотрит: сможет ли этот человек взять задачу «сделайте экран заказов» и довести её до конца без детальных инструкций — включая неочевидные вопросы: обработку ошибок, состояния загрузки, edge cases, оценку сроков. Именно это, а не список технологий, отделяет грейды.
Поэтому собеседование на middle редко начинается с «расскажите про жизненный цикл». Оно начинается с «спроектируйте экран», «как вы решили бы эту проблему», «почему вы выбрали такой подход».
Технические критерии: глубина, а не широта
Техническая часть на middle — это не «знаю больше технологий», а «глубже понимаю то, что уже использую». Вот по каким темам проверяют глубину:
Kotlin и Coroutines. От мидла ждут понимания механики, а не синтаксиса: диспетчеры, скоупы, отмена корутин, обработка ошибок в Flow. На этих темах падает большинство кандидатов — разбор типичных промахов есть в отдельной статье.
Архитектура. MVVM, слои приложения, DI, работа с состоянием. Отличие от джуна: вы не просто используете паттерн, а можете объяснить, почему выбрали его и какие есть альтернативы. Официальную позицию Google по слоям архитектуры можно посмотреть в документации — но на собеседовании важнее ваша аргументация, чем цитата из доков.
Компоненты Android. Жизненный цикл на уровне «что произойдёт с ViewModel, Fragment и корутинами при сворачивании приложения», память и утечки, работа с потоками.
Вот типичный пример, на котором видно разницу между уровнями:
fun load() {
viewModelScope.launch(Dispatchers.IO) {
val data = repository.load()
withContext(Dispatchers.Main) {
state.value = data
}
}
}Код рабочий, и джуниор объяснит его примерно так: «запустили в фоне, потом переключились на главный поток и записали данные». Мидл объяснит так же — а потом добавит: почему viewModelScope, а не GlobalScope; почему диспетчер переключают здесь, хотя это обычно делают внутри репозитория; что будет, если repository.load() бросит исключение; как это покрыть тестом. Это и есть глубина — не «как работает», а «что здесь не так и как сделать лучше».
Хороший тест на готовность к middle: возьмите любой файл из своего проекта и ответьте на вопрос «почему здесь именно так?» по каждой строке и каждому решению. Если на половине вопросов ответ «не знаю, так было в примере» — к критериям middle вы пока не готовы, но уже знаете, что закрывать.
Нетехнические критерии: на них проваливаются чаще
Парадокс: большинство кандидатов на middle проваливаются не на технике, а на вопросах, которые к ней не относятся. Интервьюер на позицию middle проверяет четыре вещи:
- Умение защитить решение. «Зачем вы сделали именно так?» — если ответ «так принято» или «ментор так сказал», это красный флаг. От мидла ждут: какие варианты рассматривали, что выбрали, какие компромиссы приняли.
- Оценка сроков. Реалистичная оценка с запасом — признак зрелости. «Сделаю за два дня» без уточнений хуже, чем «два-три дня, плюс день на тесты и ревью».
- Работа с чужим кодом. Мидл регулярно ревьюит чужой код и работает с легаси. Вопросы «как вы будете разбираться в незнакомом модуле» — почти обязательная часть собеседования.
- Приоритизация. Умение сказать «это сделаю, это не буду, потому что не влияет на цель» — вместо того чтобы делать всё подряд.
Нетехническая часть решает чаще, чем кажется
Если кандидат технически силён, но не может объяснить свои решения — интервьюер ставит «не готов». Потому что мидл — это человек, с которым команда обсуждает архитектуру, и невнятная аргументация ломает весь рабочий процесс. Готовить ответы на «почему» так же важно, как закрывать пробелы в Coroutines.
Как это проверяют на собеседовании
Собеседование на middle строится иначе, чем на junior. Вместо вопросов «что такое» — вопросы «как бы вы» и «почему»:
- «Спроектируйте экран каталога: состояния, ошибки, пагинация»;
- «Как бы вы организовали загрузку данных, если сервер иногда отвечает медленно?»;
- «Что будет с корутиной, если пользователь вышел с экрана, и как это обработать?»;
- «Опишите структуру приложения, которое вы сейчас пишете, и объясните каждое решение».
Обратите внимание: правильного ответа на эти вопросы нет. Интервьюер смотрит на ход мысли: как вы рассуждаете, какие вопросы задаёте, где останавливаетесь, что уточняете. Поэтому подготовка к middle — это не зубрёжка ответов, а наработка способа мышления: «сначала требования, потом варианты, потом решение с обоснованием».
План перехода: 4–8 недель
Если вы делаете задачи 1–2 года и хотите на middle, переход — это конкретная работа с началом и концом. Для разработчиков с опытом 1–2 года типичный срок — от месяца до двух плотной работы:
Недель на переход
Для разработчика с опытом 1–2 года закрытие пробелов под собеседование уровня middle при регулярной работе обычно занимает от четырёх до восьми недель. Дальше — самостоятельный рост.
Порядок работы одинаковый, независимо от того, готовитесь вы сами или с ментором:
- Диагностика уровня: честная оценка, где вы сейчас, — по коду, по ответам на вопросы, по резюме.
- Список пробелов: конкретные темы, которых не хватает именно вам, без «учить всё подряд».
- План в порядке приоритета: сначала глубина в Kotlin и Coroutines, потом архитектура, потом подача на собеседовании.
- Практика: не чтение, а код и объяснение решений — каждую тему до уровня «могу защитить».
- Мок-собеседования: тренировка ответов с разбором, что спрашивают в Яндекс, Авито и других сильных компаниях.
- Выход на реальные интервью: собеседования как источник обратной связи, а не экзамен.
Важный момент: не пытайтесь перескочить порядок. Натренировать ответы, не закрыв пробелы, почти всегда проваливается — интервьюер копает глубже, и фальшь видна сразу. Зато когда каждая тема закрыта до уровня «могу объяснить и защитить», собеседование на middle становится формальностью.
Я — Рустем Бикбулатов, senior Android-разработчик, ментор Яндекс Практикума. Провожу технические собеседования и помогаю разработчикам с опытом 1–2 года перейти на middle: закрываю пробелы в Kotlin, Coroutines и архитектуре, тренирую ответы на собеседованиях. За моими плечами больше 100 учеников и разборов — критерии middle и типичные причины провалов я вижу постоянно.
Нужна помощь в переходе на middle?
Бесплатная диагностика: разберу ваши пробелы и составлю план роста за 30–40 минут. Без обязательств — если менторство вам не подойдёт, честно скажу.
Итоги
Переход на middle — это не ожидание «ещё одного года опыта», а работа по конкретным критериям:
- Грейд определяет ответственность и самостоятельность, а не список выученных технологий: умение принимать решения и защищать их.
- Техническая глубина проверяется на Coroutines, архитектуре и жизненном цикле, а нетехническая — на «почему»: аргументация, оценка сроков, работа с чужим кодом.
- Переход занимает 4–8 недель плотной работы, если знать свои пробелы и закрывать их в правильном порядке.
Главное
Мидл отличается от джуна не количеством знаний, а способом мышления: «сначала требования и варианты, потом решение с обоснованием». Если вы уже так рассуждаете о своём коде — до перехода осталось закрыть пару пробелов. Если нет — это навык, который нарабатывается быстрее, чем кажется.
Если не знаете, где ваш уровень на самом деле, — напишите в Telegram, разберём вашу ситуацию: бесплатная диагностика покажет пробелы и даст план перехода на middle.