Карьера в IT #гайд

Как junior-разработчику найти первую работу в IT-компании

11 июня 2022 Читать ~ 10 минут

Программисты востребованы и обычно получают много предложений о работе. Но это относится к опытным специалистам, уровня middle и senior, а для junior-разработчиков вакансий намного меньше. Не все IT-компании готовы брать на работу начинающих программистов, ведь придется инвестировать в их обучение. Тем не менее все cеньоры когда-то были джунами. В этой статье мы ответим на вопросы, которые беспокоят новичков, расскажем, что должен уметь junior-разработчик, что показать вместо коммерческих проектов на интервью и какие задачи ему доверят на проекте.

Содержание:

1. Что должен уметь junior-разработчик

2. Чем заполнить резюме и портфолио, если нет опыта

3. Как искать первую работу

4. Что спрашивают на собеседовании

5. Какие задачи доверяют на проекте

6. Сколько времени нужно, чтобы стать middle-разработчиком

Что должен уметь junior-разработчик

Junior-разработчик – это начинающий специалист и стартовая позиция в карьере программиста. На нее претендуют, как правило, выпускники вузов или курсов. При поиске работы наличие профильного высшего образования значительной роли не сыграет. Однако и устроиться программистом в IT-компанию после 2-3-х месячных курсов вряд ли получится – это слишком короткий срок для освоения языка программирования. Если же обучение проходит 9-12 месяцев, то в течение этого времени можно получить необходимые базовые знания.

В каждой IT-компании будут свои представления, что должен уметь junior-разработчик. Для продуктовой компании важнее знание конкретной технологии или ее аспектов, а для аутсорсинговой может потребоваться более широкий стек. Но обычно от джуна ждут знаний именно по языку программирования, считает Python-разработчик Николай Навныко:

Junior-разработчик должен хорошо знать свой язык программирования: конструкции языка, структуры данных, управление памятью, особенности и отличия от других языков и прочее. Также нужно знать основы баз данных, уметь строить схему БД, таблицы​,связи и составить SQL-запрос. Будут плюсом базовые знания какого-либо веб-фреймворка – можно изучить основы самого популярного.

Junior-разработчику будет полезно уметь работать с системой контроля версий (например, Git). К техническим навыкам стоит добавить знание английского языка – это особенно важно для аутсорсинговых IT-компаний. Также нужно понимать, как проходит процесс коммерческой разработки, из каких циклов состоит, какие роли есть на проекте.

Чем заполнить резюме и портфолио, если нет опыта

Резюме должно быть кратким и структурированным, чтобы рекрутеру было проще оценить, соответствует ли оно вакансии. Не стоит перечислять технологии, которые не относятся к вашему стеку или к позиции, на которую претендуете. Старайтесь указывать только релевантный опыт работы. Специалистам, которые перешли в программирование из других сфер, можно подать предыдущий опыт как бэкграунд в каком-либо домене (например, банковской сфере или логистике). Под каждую вакансию и компанию нужно обновлять резюме.

Среди конкурентов ваше резюме выделит ссылка на портфолио. Обычно разработчики используют профиль на GitHub, где в репозитории хранится код, демонстрирующий технические навыки. Если нет опыта в коммерческой разработке, то для портфолио подойдут любые проекты, в которых вы участвовали или лично написали. Вы можете придумать, как самостоятельно применить знания на практике, говорит Николай Навныко:

Чтобы получить опыт (пусть и не продакшн), можно решить какую-либо проблему для себя: сделать сайт с расписанием режима дня, электронный дневник прогресса в тренажерном зале, напоминалку для выгула собачки. Это может быть что угодно – главное, чтобы вы понимали, как работает ваш код в каждом случае.

Еще один вариант попрактиковаться и пополнить портфолио – участвовать в open source проектах. Это возможность поработать над созданием реальных продуктов в команде с другими специалистами, научиться читать чужой код, вести документацию и получить фидбэк от коллег. Искать такие варианты можно на GitHub. Выбирайте проект, который будет вам по силам и с активным комьюнити, чтобы быстрее получать обратную связь.

Приобрести опыт и заодно завести знакомства в IT-сфере помогут хакатоны и некоммерческие проекты, которым нужны разработчики-волонтеры. Например, в Минске есть инициатива «Фаланстер», которая соединяет IT-волонтеров и различные организации.

Как искать первую работу

Конкуренция на позицию junior-разработчика достаточно высокая. Хотя на сайтах-агрегаторах много вакансий для джунов, большинство из них требует минимум года опыта работы, говорит Junior Python-разработчик Вадим Бардиер.

IT-компаниям выгоднее брать на работу программистов с опытом, которые сразу смогут самостоятельно решать технические задачи. По этой причине часто в вакансиях для джунов требуется наличие коммерческих проектов. В таком случае программистам совсем без опыта, например, сразу после курсов можно начать со стажировки. Стоит написать в IT-компании или обратиться к рекрутерам в соцсетях и спросить, как попасть к ним интерном. Пару месяцев практики не только позволят прокачать навыки, но и  будут тем самым опытом коммерческой разработки, который указывают в вакансиях.

 

Однако есть и такие направления, где специалистов не хватает, поэтому компании сами активно нанимают и обучают новичков. Например, это касается разработки для Salesforce или Microsoft Dynamics 365.

Недостаточно отслеживать вакансии на порталах по поиску работы – лучше идти сразу на сайты IT-компаний и писать напрямую. Рекрутеры обычно сохраняют контакты и могут обратиться к вам, когда появится подходящая позиция. И если вы уже отправляли резюме, то через пару месяцев стоит выслать свежее, чтобы напомнить о себе.

Что спрашивают на собеседовании

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

Я на собеседованиях на junior-позицию больше всего обращаю внимание именно на хорошее знание языка программирования, – рассказывает Николай Навныко, – все остальное можно подтянуть в процессе работы. Вопросы кандидату задаю разные, например, несколько – по структурам данных, управлению памятью и другим аспектам языка. Больше внимания обращаю на понимание вопроса и рассуждения. В ходе собеседования становится понятно, разбирается кандидат в теме или нет.

Вадим Бардиер, прежде чем устроиться в IT-компанию, ходил по собеседованиям 2 месяца. Он говорит, что в основном от junior-программиста ждут хорошего знания синтаксиса языка, понимания ООП, навыков работы с базовыми технологиями и владения английским на достойном уровне. До технического интервью или прямо во время собеседования могут попросить выполнить тестовое задание. Вадим вспоминает, что по сложности задачи были разные: от составления запросов к базе данных и поиска ошибки в коде до написания рабочего кода для решения конкретной задачи.

Какие задачи доверяют на проекте

В первое время за junior-программистом закрепляют ментора – опытного специалиста, который поможет новичку в адаптации и рабочих вопросах.

В первую неделю ментор давал мне разные учебные задачи, контролировал, подсказывал, что да как, – рассказывает Вадим. – После этого меня включили в проект с командой. Задачи по самому проекту – уже более детальные, связанные с разработкой отдельного функционала. Но есть более опытные коллеги, которые проверяют мой код и к которым можно обратиться за помощью, так что напакостить не дадут.

Зачастую первые задачи, которые дают junior-разработчикам, – исправление багов. Это правильное решение с точки зрения входа в проект, считает Николай Навныко:

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

Сколько времени нужно, чтобы стать middle-разработчиком

В IT-компании у junior-программиста есть много возможностей, чтобы наработать профессиональный опыт. Как правило, через 1-2 года начинающий специалист может повысить свой уровень до middle-разработчика. Но для такого быстрого карьерного роста нужно интенсивно учиться и расширять знания, часто придется уделять этому свободное время. Хорошо, если в компании предусмотрены внутреннее обучение и обмен опытом между коллегами. Если такого нет, то старайтесь сами проявлять инициативу и постепенно претендовать на все более сложные и ответственные задачи. Не стесняйтесь просить помощи или совета у опытных коллег и будьте сами открыты для диалога, ведь помимо технических навыков в команде вы можете научиться многим другим вещам, в том числе из других направлений в IT (тестирования, бизнес-анализа, управления проектами и др.), которые пригодятся вам в карьере.