Доброго времени суток, Друг!
Если вы давно в IT, то все что ниже, для вас и так очевидно, а для тех, кто только хочет начать свой путь айтишника, надеюсь, будет много полезной информации. Я сам работаю на данный момент в сфере IT на позиции ведущего инженера-программиста в крупной компании и все приведенные в статье этапы прошел сам, причем не один раз. Прошу учесть, что это личное мнение, оно не обязательно правильное!
С чего начать?
Первым верным действием будет выбор направления в котором Вы хотите развиваться и работать. Вариантов большое количество: разработка, тестирование, техническая поддержка и администрирование, аналитика, менеджмент, дизайн, облачная инфраструктура. Причем каждое направление делится на категории. Для простоты восприятия взгляните на диаграмму:
У каждого направления свои требования к навыкам, как техническим, так и гибким (навыки связанные с общением). Стоит отметить, что специалисты в сфере IT делятся на уровни в зависимости от этих требований:
Junior разработчик — обычно это стажеры или сотрудники с отсутствующей квалификацией по определенной технологии. Обычно берут в команду к более сильным коллегам, которые помогают им не только с постановкой задачи, но и с выбором инструментов для ее решения. Младшим доверяют простые, некритичные для проекта задачи, на которых они скорее учатся, чем доставляют конкретный результат.
Middle разработчик – это уже опытный сотрудник, готовый к самостоятельной работе. Пускай он все еще не может правильно определить приоритеты или выбрать наиболее эффективный способ решения задачи, но и контроля со стороны «старших» он требует существенно меньше
Senior разработчик – это достаточно уверенный и опытный специалист, прошедший боевое крещение реальными проектами, переживший не один дедлайн. Основное отличие «старших» в том, что они уже полностью самостоятельны и могут не только единолично принимать правильные решения, но и нести за них ответственность перед заказчиками и пользователями разрабатываемых решений. Достаточно часто они управляют собственной командой менее толковых опытных сотрудников, при этом существенно меньше сами пишут код, зато могут беглым взглядом выявлять ошибки и упущения новобранцев, помогают им с расстановкой приоритетов и определением направления для развития. Кроме того, это уже однозначные эксперты в определенной области, которые высоко ценятся на рынке труда.
Конечно же данный материал предназначен для специалистов без опыта, претендующих на позицию junior-разработчика. Вначале сложно определится, на каком направлении остановится, поэтому рассмотрим шаги, которые помогут в выборе:
1. Выбор языка или специализации
Выбор зависит от того, что Вас больше привлекает. Нравятся компьютерные игры, можно выбрать направление gamedev`а, соответственно языки C++ или C# и игровые движки, например Unreal Engine. По душе мобильные игры - мобильная разработка (kotlin, swift и т.д.). Если нравится копаться в коде и работать в терминале - бэкенд специализация. Творческий человек - добро пожаловать в дизайн. Например, мне всегда было интересно как работает интернет, сайты и все связанное с этим. Думая над тем, кем я все же хочу работать, я решил заняться тем, что мне нравится. Поэтому, моим выбором было изучение html, javascript, php, css.
2. Изучение требований
Вторым шагом будет изучение предложений на рынке, оценка своих знаний и возможностей и анализ вышеперечисленного.
Ресурсов для поиска работы достаточно, поэтому на данном шаге просто заходим, допустим, на сайт поиска вакансий, ищем понравившуюся нам профессию (для примера frontend- разработчика) и видим что-то такое:
Проанализировав с десяток предложений у Вас сформируется список требований состоящий из языков, технологий и навыков необходимых для работы. Оценив все это сделайте вывод: есть ли у Вас знания и готовность выполнять задачи, с которыми придётся столкнуться в этой сфере? Если ответ утвердительный, то можете переходить к откликам на вакансии и первым собеседованиям. В ином случае, продолжим.
Обучение и портфолио
Есть не один путь освоения выбранной профессии, рассмотрим основные 3 варианта:
- Освоение профессии самостоятельно
Обучение с помощью статей в интернете, видеоуроки на YouTube, подкасты и прочее. Но советую эту информацию фильтровать, тк некоторые источники не являются достоверными и Вы можете впустую потерять свое время. - Прохождение онлайн-курса
Отношусь к этому варианту весьма скептически, но он имеет место быть. Некоторые ресурсы предлагают сертификаты о прохождении курсов, что может стать небольшим плюсом при отборе кандидатов, откликнувшихся на вакансию. - Обучение у ментора
Это может быть более опытный друг или коллега из IT-сферы. Новичку в профессии пригодится обратная связь от специалиста, который уже прошёл похожий путь и может помочь решить проблему, дать совет, подбодрить или мотивировать двигаться дальше.
Какой путь выбрать - зависит от Ваших предпочтений. Например, я всегда изучал интересующие меня темы в Интернете.
При прохождении обучения важно уделять время практике, а лучшим вариантом будет создание и обновление своих pet-проектов. Пет-проект - это личный проект, который разработчик делает в свободное время. Они приносят удовольствие и помогают развиваться: разработчик отдыхает от рутинных задач, прокачивает навыки и осваивает новые инструменты. Хорошо сделанный пет-проект многое говорит о разработчике. Он показывает работодателю, каким стеком технологий владеет специалист, знает ли он циклы разработки, умеет ли работать в команде и доводить задачу до конца.
Например, Вы можете попробовать автоматизировать процессы или решить проблемы, с которыми приходится сталкиваться каждый день. Также с помощью пет-проекта можно практиковать новые навыки, полученные во время учебы. Пет-проектами могут быть, например, сайты, чат-боты, алгоритмы, программы для заметок, to-do листы. Здесь как раз поможет анализ требований, который был проведен при изучении требований. Допустим, работодателю нужно знание определенных фреймворков. У вас проект на Flask, а в вакансии требуется знание Django. Разберитесь, и создайте проект на этом фреймворке.
Желательно иметь перед собеседованиями хотя бы 3-4 пет-проекта, которые можно посмотреть, пощупать и оценить. Со всем этим нам поможет GitHub. Работа с ним не вызывает трудностей, особенно после выхода GitHub Desktop. Вы можете создать репозиторий, выложить туда свои пет-проекты и оформить профиль. В итоге получаем весьма не плохое портфолио, с которым Вам будет не стыдно на собеседовании.
Например так выглядел мой аккаунт когда я устраивался на работу:
Из 11 репозиториев 8 были моими пет-проектами и это сыграло большую роль на собеседовании.
Трудоустройство
Чтобы специалисту без опыта найти работу в IT, в среднем требуется от 1,5 до 3 месяцев активного поиска, говорит нам интернет. Но не все так радужно. Все зависит от ряда факторов: количества предложений, сезона, политической обстановки и прочего. В среднем может уйти от недели до полугода.
Самое главное на текущем этапе правильно составить резюме, не боятся откликаться на вакансии и проходить собеседования. Советов по составлению резюме в интернете предостаточно, поэтому расписывать этот пункт нет особого смысла. Первые 3-5 собеседований для Вас пройдут в режиме анализа. Нужно получить обратную связь от работодателей и понять, как улучшить текущее резюме и портфолио. Поэтому стоит отслеживать рынок вакансий каждый день и просматривать каналы поиска: сайты, телеграм-каналы и соцсети.
Собеседование - следующий шаг после отклика. Количество этапов собеседования зависит от компании или должности, но обычно не превышает 3–5: первичный созвон, тестовое задание, техническое интервью.
Нужно тщательно готовиться к каждому этапу. На первичном созвоне рекрутер задаёт уточняющие вопросы и просит подтвердить опыт, указанный в резюме, и показать работы из портфолио (опционально). Даже при наличии портфолио, все равно скорее всего придется выполнять тестовое задание. Критерии и сроки его выполнения оговариваются заранее. Обычно тестовое задание не сложное, а на его выполнение даётся несколько дней.
Техническое интервью это самая важная часть собеседования, на этом этапе кандидат общается со специалистами и/или будущими коллегами. Обычно задают вопросы по языкам, технологиям и навыкам, которые им необходимы, обсуждают Ваши пет-проекты. Будьте готовы к самым разным вопросам, от легких до сложных и обратно. Возможно предложат решить какую-то задачу или написать код. Не стоит торопиться, спокойно обдумайте, что от Вас требуют, если что-то не понятно, не бойтесь спросить.
Иногда специалисты смотрят не на заученную информацию, льющуюся из ваших уст, а на то как человек реагирует на поставленную задачу, какие шаги предпринимает для ее решения. Поэтому в некоторых случаях лучше проговаривать свои действия и мысли вслух, что бы интервьюеры увидели ход Ваших мыслей.
Важно показать не то, что вы дословно выучили теорию по определенной теме, а то, что вы обучаемы, коммуникабельны, готовы разбираться в необходимом материале, не боитесь задавать вопросы и высказывать свое мнение.
После собеседования обычно проходит финальная часть. Обычно это знакомство с командой и руководителем и обсуждение оставшихся организационных вопросов.
Не стоит бояться ошибок или провалов: каждая неудача даёт возможность улучшить или изменить подход к решению проблемы и стать увереннее. Можно ошибаться быстрее и чаще, при этом рефлексировать и двигаться вперёд.
Спасибо за уделенное время, успехов в Ваших начинаниях!