Интервьюера интересует главное — разбираетесь ли вы в системе контроля версий. Даже если вы твёрдо уверены, что никогда не столкнётесь с командной разработкой, поверьте — столкнётесь. Это не то, что обязательно знать Junior-разработчику, но джун разработчик будет плюсом, если вы разбираетесь. Знать, как обращаться к БД, нужно, а вот что касается нормальных форм — это, скорее, плюс, чем необходимость. Будет хорошо, если вы назовёте СУБД, с которыми работали, обозначите их ключевые особенности.
Подразумевается, что он самостоятельно умеет писать код, может справиться с простыми задачами сам, а со средними по сложности задачами — под присмотром ментора». Гуру программистов, старший разработчик или просто синьор. Это человек, который повидал огромную кучу кода, натыкался на множество ошибок и смог их решить. Его основная задача – принимать правильные решения в ходе проекта. То есть те решения, которые приносят максимум пользы с минимальными вложениями. Если Middle-разработчик четко понимает, над чем работают члены команды, то Senior думает о том, какие задачи в глобальном плане сможет решить текущий проект.
В то время как правильный путь — посмотреть разные источники, сравнить, прикинуть, как информация соотносится с твоей задачей. Посоветоваться с теми, кто с подобным уже сталкивался. Начинающий специалист обычно поверхностно знает какой-то язык, может быть знаком с парой фреймворков. А дальше начинается «всё такое интересное, хочу всё попробовать». Этой темы я уже касался в статье «Прекратите изучать фреймворк, станьте JavaScript-разработчиком».
Есть стереотип, что джун — это человек, который ничего не умеет, и пришёл устраиваться вообще без навыков и знаний. Так думают многие, и с этим стереотипом сложно бороться. Система градации и уровни были условно приняты рекрутерами/HR-специалистами и работодателями, чтобы как-то определять стоимость специалиста на рынке труда. Суть заключается в том, что стоимость специалиста зависит от того, какими навыками и в течение какого срока он обладает. Рассмотрим внимательнее специалистов каждого уровня, а затем сопоставим наблюдения.
Так и оказалось – после трудоустройства чел настолько увлёкся, что оставался до девяти вечера, и через пару месяцев уже тянул лямку наравне со всеми. Если что, я против овертаймов и никак человека к этому не подталкивал. Мне всегда казалось, что формальности вроде диплома и «лет опыта» не должны играть существенной роли в найме.
Но в каждой шутке есть только доля шутки, остальное всё правда. Могу предположить, что количество пройденных собеседований перешло в качество. Собеседования тоже нужно научиться проходить, уметь про себя рассказывать, уметь проходить технический скрининг. При этом наш герой параллельно учился, его уровень рос. Целенаправленно к каждому собеседованию я не готовился — просто продолжал учиться в своём обычном режиме.
Компаниям нужны люди, которые могут самостоятельно решать задачи. Джуниор-специалист — ещё ученик, его сначала нужно вырастить до уровня самостоятельной работы, и речь идёт не только о хард, но и о софт скилах. Завершённые проекты можно опубликовать, например, в личном профиле на GitHub или создать сайт-портфолио. На собеседовании вы сможете рассказать, какая перед вами стояла задача, какие технологии вы выбрали и почему.
Алгоритмы и структуры данных (без привязки к языку программирования). Желательно знать, как устроены массивы, связные списки, хеш-таблицы, множества, бинарные деревья поиска, графы. Какая сложность (в O-нотации) основных операций при работе с ними. Например, попросить рассказать про основные алгоритмы сортировки, бинарный поиск или способы обхода графов. Первая задача, которую я ставил одному из джунов — сделать для Rafinad скрипт, который перенесёт данные на локальный сервер.
Перетягивание одеяла на себя может разрушить баланс задач и привести всю команду к плачевному результату. Поэтому не спешите возлагать на себя большую командную роль, пока не поймете, что и как здесь работает, какая у команды динамика. В целом разница между джуном и мидлом не всегда очевидна, особенно в том случае, когда не с кем сравнивать. Особенно такая терминология прижилась в программировании и IT-сфере в целом, но иногда ее используют и в других областях. Система обучения в компании помогает джуну расти быстрее — в среднем начинающие программисты становятся мидлами через год-полтора активной работы.
Python используют при создании веб-приложений, в машинном обучении и Data Science. Разработчики уровня middle (мидлы) — программисты с опытом от 2 до 4 лет. В отличие от джунов, мидлы разрабатывают более крупные части проекта и осознают весь масштаб архитектуры. Знак «+» говорит о том, что у разработчика есть базовые навыки и он может самостоятельно решать простые задачи.
Помимо всего вышесказанного, Middle может рассчитывать на хорошую заработную плату, однако в некоторых компаниях зарплаты джуна и мидла могут быть одинаковыми. Я осваивал платформу .NET и язык C# — это показалось мне логичным, так как на работе я в основном имел дело с компами на Windows. Некоторое время активно кодил свои первые программы и даже учился по книгам и сайтам вроде Metanit и Stack Overflow, смотрел каналы Руслана Шишмарёва и Гоши Дударя. Но потом женился, с головой ушёл в быт и поставил учёбу на стоп. Студент учится ставить задачи, проектировать архитектуру приложения, рисовать интерфейс и верстать, подбирать инструменты. Полученный опыт поможет ему понять, чем занимаются коллеги из других отделов и разговаривать с ними на одном языке.
Но дальше придется учиться самостоятельно управлять собственным расписанием, расставлять приоритеты, оценивать сроки и договариваться с менеджерами. С другой стороны такое отношение имеет определенные основания. У джунов часто завышены представление об идеальном проекте, зарплате и собственной ценности для работодателя. https://deveducation.com/ Из-за этого происходит разочарование даже в классных проектах и постоянная смена работы. Знаю много историй, когда начинающего специалиста с первого дня бросают на задачи, за которые никто не берётся, и ждут, пока новый сотрудник сам «выплывет». А перегорит и уйдёт — значит, просто слабак, который не хочет работать.