2020-06-25

Q&A: Определяем свой уровень

Не знаю, как определить свой уровень. Я джуниор, миддл или сеньор? Что должен знать программист на каждом уровне? Джуниор - это "Hello world" или знание, как запилить production-ready сервис с нуля? Я вот не знаю многих фич, таких как, авторизация/ аутентификация, прочее security, профайлинг - нет опыта работы с этим от слова вообще. Могу я считать себя мидлом, если умею декомпозировать задачи, участвовать в процессе (митинги и код ревью), самостоятельно имплементировать фичи, делать пулреквесты, заполнять джиру и тд? Также не могу понять, как продавать себя на собеседованиях - я не "крутой" специалист, который на профессиональном уровне рылся сразу в железе, сетях и облачной инфраструктуре, я просто умею хорошо кодить. Такое ощущение, что всем нужны идеальные кандидаты, которые знают вообще все, хоть я и пытаюсь учиться новому каждый день, на собеседованиях мне все равно отказывают. В итоге не знаю, как себя позиционировать и на что претендовать. Понятно, что хочется среднюю мидловскую зарплату, но не уверен, что это то, чего я заслуживаю.

Ох уж эти уровни.

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

Собственно, тебе нужно понять в каких условиях ты находишься. Если есть формальные описания, то сравни свою работу с этим описанием. Поймёшь на каком уровне ты сейчас и что нужно делать для роста. В противном случае тебе придётся поговорить с руководителем и узнать, что они думают про тебя. Вот так прямо и спроси: я бы хотел развиваться в компании, приносить больше пользы. А для этого я хотел бы узнать, как вы оцениваете мою работу, что нравится? а что бы вы посоветовали улучшить? а что в компании "болит"? какие из этих проблем я мог бы решить?

Адекватный руководитель будет только рад.

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

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

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

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

Можно даже на собеседовании задать простые вопросы: опишите кого вы ищете? какие задачи нужно будет решать?

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