Из юниоров в разработчики: получаем первую работу
Время на прочтение
4 мин
Количество просмотров 75K
Здравствуйте! Коротко о себе: программирую с 1989 г., с 2005 года в Java, с 2013 года работаю Java-тренером (до января этого года совмещал с основной работой Java-разработчика). Достаточно много моих выпускников трудоустроились, и я хочу поделится своими соображениями, как получить работу Java-разработчика (и не только Java).
От изучения Java до получения оффера работы — большое расстояние
Требования к кандидатам на вакансию Java разработчика достаточно высоки, см. пример тестового задания на джуниора от одного из аутсорсеров РБ. Конечно есть позиции и с меньшими требованиям, но их не так много и, по статистике на Украине (dou работает через прокси, в России не нашел), соотношение Отклики/Вакансии на такие позиции: от 20 до 50.
Для вакансий с опытом работы (которых значительно больше) получается замкнутый круг: без опыта не получить работы, а без работы не получить опыта. На вопрос «Кто виноват?» ответ очевиден — компании, которые не хотят вкладывать время и деньги в обучение, а хотят получить уже готового специалиста. Остается главный вопрос:
Что делать?
Крупные компании в основном закрывают позиции юниоров своими стажерами. Один из вариантов трудоустройства — пойти на стажировку, но
- здесь также большой конкурс
- далеко не все, успешно окнончившие стажировку, получают работу
- иногда условия обучения достаточно тяжелые и подойдут не всем. Из отзыва про стажировку в EPAMе РБ:
Там все настолько жутко строго, что я до сих пор в шоке. У них там сильный отбор… все оценивается, дз, тесты, устные опросы, ну и в конце защита своего проекта. Нам назначают таски и ставят дедлайны. Не успел залить таск — все, до свиданья… Чувствую себя как в школе… Вплоть до того что у нас есть список из 200-230 вопросов примерно по всем темам, которые мы должны знать без запинки. Конспекты ведем(!), на каждый вопрос письменный ответ и это проверяется… Епам себе дрессирует программистов) по другому и не скажешь…
Шаги другого варианта хорошо знакомы (отличное видео Якова Фейна «Как стать профессиональным Java разработчиком«):
- Хорошее резюме
- Приглашения на собеседования и тренировка в их прохождении
- Получение оффера
Хорошее (выделяющееся) резюме означает, что его замечает HR и отправляет вам приглашение на собеседование.
В интернете есть большое количество рекомендаций, как этого добиться:
- Выбрать шаблон для резюме
- Идеальное резюме Junior’а
- Как продать свое резюме в 2 раза дороже
- Как правильно составить резюме
- Резюме программистов. Часть 1 (плохие)
- Резюме программистов. Часть 2 (хорошие)
- Как составить резюме на английском
Но, на мой взгляд, главное:
Позиционируйте себя НЕ как юниора.
Для этого необходимо:
- Хорошее понимание основ: как устроена память, что такое JMM, опыт работы с сервлетами, JUnit, SQL
- Уровень выше Java Core: основы Maven, Spring (MVC, Security, Test), JPA(Hibernate), REST. Также желательно основы JavaScript и HTML/CSS
Материалов по Java фреймворкам и технологиям в интернете много. Но если вы хотите их освоить, а не прочитать/посмотреть и забыть, необходимо написать на них собственный пэт-проект. Это может быть проект домашней библиотеки или бухгалтерии, или кормления кота или… Хорошо, если в нем будет реальная потребность — тогда при его эксплуатации вы постепенно будете приходить к оптимальным решениям.
Лучше всего делать его на основе небольшого проекта на популярном стеке, например референсной имплементации Spring Pet clinic. С первого раза сделать код красивым и правильным не подсилу даже синьору. Проект должен жить и нести его владельцу радость приобщения к красоте кода через рефакторинг. И, кроме понимания технолигий и развития чувства перкрасного, из работы над собственным проектом Вы получаете навыки нахождения красивых и практических решений для конкретных задач и решения конкретных проблем, из которых состоит ежедневная работа программиста. Для этого нужно:
- понимание, как работают фреймворки, на чем они основаны, какие паттерны используются
- кругозор, навыки решения подобных задач
- работа с инструментами: Git, IDEA, Maven, Tomcat, DB клиент, тестирование REST сервисов
- умение находить правильные решения в интернете (70-80% это умение выбрать из найденного в Stackoverflow)
Эта задача непростая и, если знаний, опыта, времени недостаточно, рекомендую пройти какой-нибудь тренинг Java Enterprise на этом стеке, обязательно с написанием проекта на основе пройденных технологий на выходе. Мои критерии тренинга:
- Ведет преподаватель с опытом в Java разработке, лучше как синьор или архитектор
- Максимальный охват: самые важные и необходимые Java разработчику темы, API, фреймворки, инструменты в одном курсе.
- В течении тренинга разрабатывается законченный Enterprise проект. Темы идут не по отдельности (в воздухе) на отстраненных примерах, а последовательно, в связке, как дополнения к созданию единого работающего приложения.
- Последовательное возрастание сложности: от нуля до деплоя готового приложения в облако
- Практика! Участники на протяжении всего курса должны работать с кодом проекта. Объязательны домашние задания. Если дают только теорию (всего понемногу), то это, на мой взгляд, выброшенные деньги и время. Без практики любое обучение (Java, английский, езда на велосипеде) ничего не стоит.
- Поддержка группы и преподавателя: возможность задать любой вопрос и получить на него квалифицированный ответ.
- Доступность и структурированность материалов
- Ревью Вашего кода.
- Помощь в составлении резюме и с трудоустройством. Если вам гарантируют по окончанию 100% трудоустройство — не верьте. Хорошо сказано в статье про работу разработчика:
Работа программиста – не столько профессия, сколько образ жизни. Обучение в университете, самообразование, хобби и, что немаловажно, страсть – ключевые составляющие успеха в этой сфере.
После того, как у Вас будет опыт в собственном Java Enterprise проекте,
Сделайте новое резюме:
Типичное резюме Java юниора начинается так:
Начать карьеру как junior Java developer в современной, перспективной компании, чтобы через 3 года стать специалистом…
Хорошо обучаем…
Оптыт работы: отсутствует
Прошел курсы…
Нужно:
- убрать слова «начать карьеру», «юниор» и «готов к обучению»
- вставить в квалификацию все изученные вами технологии
- в опыте работы написать об участии в проекте с его кратким описанием
Например, ОПЫТ РАБОТЫ:
Участие в разработке Spring/JPA Enterprise приложения c авторизацией и правами доступа на основе ролей на стеке Maven/ Spring MVC/ Security/ REST(Jackson)/ Java 8 Stream API:
- реализация сохранения в базы Postgres и HSQLDB на основе Spring JBDC, JPA(Hibernate) и Spring-Data-JPA
- реализация и тестирование REST и AJAX контроллеров
- реализация клиента на Bootstrap (css/js), datatables, jQuery + plugins.
С таким резюме вы можете не бояться обращаться на вакансии с требованием 1-2 года опыта и, возможно, пройдете на следующий уровень: «Приглашения на собеседования и тренировка в их прохождении», что уже требует отдельной статьи.
Спасибо за внимание и желаю отличной карьеры в IT.
Какие навыки потребуются для успешного прохождения собеседования на Java-разработчика? Сколько разрабы получают на старте и за какое время можно вырасти до middle? Вместе с IT-архитектором Альфа-Банка Максимом Чернухиным разобрались, как новичкам прокачать образование и карьеру, чтобы получить работу. А также посмотрели на особенности трудоустройства junior-джавистов в Альфа-Банк.
Почему компаниям нужны джуны
Еще во время пандемии спрос на IT-специалистов сильно вырос — многие компании стали стремительно осваивать онлайн. Параллельно на этот тренд наложился демографический спад среди поколения миллениалов и зумеров, на которых приходился основной массив разработчиков. В итоге с середины 2020 года и по сей день на рынке ощущается нехватка «свободных» middle-специалистов. А потому компаниям пришлось задуматься о взращивании собственных айтишников.
Если говорить о плюсах такого подхода, то инвестиции в начинающих специалистов помогают повысить лояльность команды. Сотрудники, которых обучила компания, показывают высокий уровень вовлеченности и дольше остаются в коллективе. А удержание кадров является одной из ключевых задач в высококонкурентном сегменте IT.
Другое преимущество — возможность вырастить узконаправленного специалиста под задачи компании. Если вам на постоянную основу нужен разработчик с редким стеком, чаще бывает выгоднее обучить его внутри коллектива, чем искать на рынке.
Найти сотрудников на перегретом рынке тяжело: опытные специалисты часто или запрашивают слишком много, или не хотят менять комфортное место работы. Здесь на помощь приходят и джуны. Они могут взять рутинные задачи сеньора, разгрузить более производительного сотрудника. К тому же, джуны зачастую привносят в устоявшиеся коллективы новый критический взгляд. В попытках приручить хаос они задают много вопросов и могут помочь найти организационные пробелы. Важный момент заключается в готовности компаний нанимать начинающих разрабов: потребуются выстроенные процессы онбординга и менторинга. В противном случае каждый новый сотрудник только добавит проблем.
Александр Сырычко, Тимлид направления «Программирование» в Skillbox
База начинающего Java-разработчика
Самое главное для junior-разработчика — наличие базы технических навыков в Java. Вот список стартовых hard skills:
- Знание основ языка и ООП (объектно-ориентированное программирование);
- Базовые знания одного из популярных фреймворков Java, например, Spring;
- Понимание принципов работы микросервисов и умение упаковывать их в контейнеры;
- Умение работать с базами данных: знание PostgreSQL будет плюсом.
Если говорить о soft skills, то логическое мышление и непрерывное образование — действительно необходимые для развития требования. Новичку важно набрать как можно больше теоретических и практических основ: с этим могут помочь популярные онлайн-курсы и стажировки.
Как получить первый оффер в IT: четыре сценария
Начинающие разработчики могут получить оффер с помощью одного из этих способов:
- Стажировки
Это оплачиваемая возможность получить опыт, который помогает в будущем попасть в штат. Для попадания на стажировку необходимо пройти скрининг, то есть соответствие кандидата уровню джуна, и техническое интервью. В среднем стажировки длятся до полугода. Даже если новичок в итоге не получит оффер, он сможет понять, какие навыки нужно прокачивать. - Обучающие проекты
Это образовательные программы от компаний для тех, кто только закончил вуз, начинает прокачиваться в IT или хочет сменить индустрию. В Альфа-Банке это проект Alfa Campus — трехмесячные курсы по тестированию, системной аналитике и микросервисной архитектуре. На всех программах студенты работают с Java. Первый поток мы запустили в апреле. Набор на продвинутый курс по микросервисной архитектуре стартует в июле. Лучшие студенты кампуса будут приглашены в штат. - Образовательные платформы
Стереотип о том, что выпускники образовательных платформ и программ дополнительного профессионального образования обладают недостаточными для полноценной работы навыками, уходит в прошлое. Напротив, для многих крупных компаний упоминание курсов в резюме соискателя становится показателем высокой мотивированности и искреннего интереса к профессии. Кроме того, компаниям удобно взаимодействовать с кузницами кадров внутри EdTech. Например, в Skillbox существует Центр карьеры. Профессиональные HR-консультанты начинают общаться с пользователями на шестом-седьмом месяце обучения, помогают подготовить резюме и портфолио, организовывают собеседования. - Собеседования
Проверить свои навыки можно через прохождение собеседований на открытые позиции. Многие крупные компании выкладывают вакансии на специальных лендингах. Вот наш: job. alfabank. ru. Как правило, для начинающих специалистов отбор состоит из тестового задания, технического интервью и общения с командой. Не бойтесь пробоваться на позиции в крупных компаниях, ведь даже отказ — шанс получить обратную связь и прокачать навыки. Главное — составить подробное описание резюме. Расскажите, чем вы уже занимались, что умеете. Пусть даже навыков немного, но честность и детали уже выделят резюме среди других для HR. Покажите, что вы готовы учиться и умеете это делать: например, можно рассказать, как изучили какой-то блок языка самостоятельно. Покажите, что можете отдавать много времени Java: тогда ваши шансы на трудоустройство сильно вырастут.
Поиск работы стоит начать с анализа рынка — так вы исследуете требования разных компаний и стек, с которым они работают. Полезными здесь будут профессиональные чаты и форумы. Можно также посмотреть размещенные и архивированные вакансии на работных сайтах. На них можно найти базовые требования и вопросы, которые соискателю будут задавать на собеседовании. Тестовое задание, скорее всего, будет соответствовать этому стеку. Важно выполнить тестовое самостоятельно, даже если вы нашли решение в интернете. Так как в устной беседе техлид может задавать вопросы по его выполнению.
Анна Хохол, Карьерный консультант Центра карьеры Skillbox в направлении «Программирование»
Что нужно, чтобы повысить шансы на попадание в штат? Теоретическая и практическая база. Показать ее можно, например, с помощью личного IT-проекта из портфолио — реализованные программы, код. Желательно, чтобы он был создан в команде — так соискатель подтвердит, что у него все в порядке с soft skills. Сегодня, если у кандидата отличные hard skills, но он не умеет работать в команде, высока вероятность, что его не возьмут.
А вот наличие диплома о высшем образовании по специальности уже не является критерием отбора. Для начинающих разработчиков важнее умение и желание учиться — в резюме эти навыки можно показать, например, другими стажировками или пройденными курсами по Java.
Карьерный трек джуна
Как и в случае со стажировками, после найма к junior-разработчику приставят ментора. Обычно это опытный специалист, который поможет с погружением в проект и отследит эффективность работы и обучения. Наставник даст советы для прокачки и hard, и soft навыков. Но здесь важно отметить, что на старте карьеры разработчика основной фокус будет идти именно на технические навыки и исполнительность.
Junior-специалисты занимаются теми же проектами, что и другие, но задачи для них прописаны детальнее или декомпозированы. У нас в Альфа-Банке они, как правило, связаны с микросервисами — небольшими блоками, из которых состоят приложения. Со временем уровень сложности по проекту растет. Появляются задачи, по которым нужно провести ресерч и попробовать несколько способов решения.
Раз в квартал разработчики проходят сессии с руководителем, на которых он оценивает результаты проделанной работы. В Альфа-Банке мы выработали целую систему, которая позволяет определить зоны роста. На сессии обсуждаем со специалистом, на какие навыки ему нужно обратить внимание, и смотрим динамику его прогресса.
Рост до следующей ступени, middle-разработчика, в среднем занимает год. Это медианное значение — скорость повышения зависит от мотивации и опыта начинающего специалиста. При этом получить повышение по зарплате можно и без перехода. Например, если junior-разработчик решил важные для компании задачи, его могут наградить премией или увеличением ставки.
В Москве зарплатные ожидания у разработчиков в среднем такие: джуниор специалист может рассчитывать на сумму от 60 до 140 тысяч рублей в зависимости от компании. Специалист уровня middle может получать до 250 тысяч рублей, а у senior-разработчиков зарплата доходит и до 350 тысяч. В регионах эти суммы стоит умножить на коэффициент 0.8
Даниил Пилипенко, Автор профессии «Java-разработчик» в Skillbox
Чем дальше растет специалист, тем больше увеличивается время, необходимое для перехода на следующий уровень. На то, чтобы получить навыки senior-разработчика, точно уйдет больше года. С повышением грейда на передний план выходят soft skills: умение управлять командой, мотивировать и вдохновлять, ставить задачи, прорабатывать архитектуру и мониторить процесс. Эти навыки нарабатываются опытом и практикой.
***
Самое важное для старта в IT — это личное желание человека. Тогда не будет страшно пробовать, совершать ошибки и совершенствоваться. Горящие глаза обязательно оценят HR-специалисты и будущая команда. Рынку нужны разработчики. Поэтому с каждым днем появляется все больше инструментов и каналов для быстрого старта и профессионального роста ньюкамеров.
Арина Кулова
Рекрутер Мир Plat.form
Всем привет! Меня зовут Арина Кулова, я рекрутер Мир Plat.form — IT-бренда Национальной системы платёжных карт (НСПК).
Количество IT-вакансий растёт с каждым годом. За ними поспевает и число IT-специалистов на рынке — за счёт естественного прироста выпускников профильных вузов и появления специалистов, которые в какой-то момент времени решили сменить траекторию своего профессионального пути и перейти в IT-сферу, так сказать «Войти в Айти». Таким образом, помимо того, что все мы проходим довольно волнительный и стрессовый этап поиска первой работы, мы сталкиваемся ещё и со значительной конкуренцией при отборе на вакансию.
В этой статье я поделюсь своими рекомендациями со стороны рекрутера — как облегчить поиск первой работы. Сначала расскажу о том, что нужно подготовить для старта. Затем про конкретные рабочие способы поиска. Поехали.
Starter Pack новичка включает в себя:
Резюме
Структура резюме:
- Фамилия Имя;
- контакты, укажите для связи мессенджер, если не хотите получать звонки в неудобное для вас время, к тому же это удобный и оперативный способ связи;
- желаемая позиция.
Далее обычно указывается опыт работы, его принято описывать в обратном хронологическом порядке — первым в списке указывается текущий опыт. Мы же в этом пункте можем перечислить знания и профессиональные навыки в любой удобной для себя форме:
Просто перечислить по порядку. Например:
- знание Java Core;
- знание основ ООП;
- опыт программирования с использованием SpringFramework: Boot, Web, WebServices; Hibernate; Spring MVC;
- понимание принципов работы реляционных СУБД: MySQL, PostgreSQL;
- базовые знания SQL;
- понимание протокола HTTP, знание Postman.
Или перечислить навыки и проставить напротив каждого уровень владения по 5-балльной (любой) шкале, например:
- UML, BPMN — 2/5;
- Интеграция систем — 4/5;
- Rest API & HTTP Protocol — 2/5;
- SQL, БД — 3/5.
Далее можно указать дополнительную информацию, например:
- английский на уровне понимания технической документации;
- опыт работы как в команде, так и самостоятельно.
Образование можно указать в самом начале или в конце резюме. Если образование профильное, и во время учебы были учебные проекты, которые можно описать в резюме, то лучше это вывести в начало — после желаемой позиции и до навыков.
Описывать проекты можно таким образом:
- даты проекта;
- название проекта (продукта);
- команда;
- твоя роль;
- цели проекта;
- конкретно твои задачи в рамках проекта;
- результаты;
- приобретённые навыки.
Если есть желание, можно добавить пункт «О себе» и там написать про свои увлечения и хобби. Это необязательно, но рекрутеру или заказчику (специалисту, который ищет себе в команду сотрудника) это может быть интересно.
Публичный репозиторий или сайт с примерами работ
Довольно полезная штука, не пренебрегайте этим. Там можно собрать учебные проекты, тестовые задания, pet-проекты. Любой пример вашей работы. Ссылку на сайт или репозиторий можно указать в резюме после контактов.
Мои коллеги-заказчики только рады при ознакомлении с резюме или перед собеседованием посмотреть репозиторий Junior-разработчика или тестировщика, а некоторые коллеги по умолчанию вместе с резюме просят направлять ссылку на репозиторий.
Сопроводительное письмо
Имею в виду текст сообщения, которым будет сопровождаться ваше резюме. Это может быть несколько ёмких строчек, суть которых — почему вам интересна эта вакансия и компания, чем вы можете быть полезны, например:
Добрый день, меня зовут … . Прошу рассмотреть меня на позицию Junior Java Developer’a. Подробно ознакомился с вакансией, меня заинтересовал проект и технологический стек. Я могу быть вам полезен, так как знаком с технологиями, которые применяются в проекте: Spring Boot, Spring MVC, Spring Security, Spring Data, Hibernate, Maven, MySQL, Git. Очень хотел бы работать с вами в команде! Буду благодарен за любую обратную связь.
Или же такой пример, более неформальный:
Здравствуйте! Я самостоятельно изучаю программирование, учу Java, JavaScript, Spring. Я только в самом начале, и мне нравится. Хочу начать работать, на мой взгляд, обучение в процессе работы эффективнее. Возьмите, пожалуйста, на Джуна или Интерна, есть ли такая возможность у Вас? Буду благодарна за ответ.
Оба примера – реальные.
Подытожим: структурированное и написанное подробно резюме с акцентом на профессиональные навыки и знания, примеры работ и маленькое сопроводительное письмо помогут привлечь внимание к вашей кандидатуре и увеличат шанс приглашения на собеседование.
Кому и куда отправлять резюме?
1. Используйте работные сайты, откликайтесь на интересные вакансии. Соответственно, у вас должно быть оформленное резюме или профиль на этом ресурсе.
2. Участвуйте в telegram-сообществах. В каналах рекрутеры часто выкладывают вакансии и оставляют свои прямые контакты, есть возможность рекрутеру написать в личные сообщения.
Отправляйте свое резюме с сопроводительным письмом, вероятность ответа будет выше. Тут же дополнительный совет — вступайте в telegram-сообщества для начинающих, например learn.java и Scala Learning & Education: Ask for Review & Noob questions. Развивайте нетворкинг, будьте в теме, заводите знакомства.
3. Прямой поиск. Наверняка у вас есть список наиболее интересных вам компаний — ищите их официальные сайты, раздел с вакансиями, там будет либо кнопка «откликнуться/отправить резюме», либо почта HR.
Это отличный способ поиска первой работы. Как рекрутер могу сказать, что такие отклики мы просматриваем оперативно и всегда даём ответ, потому что кандидат для нас ценен своей мотивацией и интересом к нам. Согласитесь, сейчас это особенно важно, когда на рынке огромное количество работодателей, а соискатель целенаправленно пишет именно вам. Кстати, вот наша ссылка на наш сайт с вакансиями.
4. Мониторьте рынок на предмет стажировок, хакатонов, практик, школ от технологических компаний. Совет для студентов: начинайте участвовать в таких программах как можно раньше, к окончанию вуза вы можете стать уже Middle-, а кто-то и Senior-разработчиком.
5. Заведите страничку в профильных социальных сетях, расширяйте сеть контактов, добавляйтесь к рекрутерам в друзья, поставьте статус «Открыт к предложениям». Наполняйте свой профиль информацией, которая может быть полезна рекрутерам.
Следование вышеперечисленным рекомендациям облегчит поиск первой работы, поможет получить приглашения на собеседования, а также послужит стартом для дальнейшей работы над персональным брендом. Кроме того, всё это будет иметь полезный побочный эффект — знакомства с рекрутерами, рынком и потенциальными коллегами в сообществах.
Напишите в комментариях ваши рекомендации для начинающих специалистов, соберем базу знаний под этим постом. А в следующей статье я расскажу, как правильно подготовиться к собеседованию.
Несколько лет назад работодатели в IT говорили, как много плюсов они видят от работы с джунами. И хотя сегодня спрос на специалистов такого уровня упал — по данным HeadHunter, лишь 16% компаний сегодня готовы рассмотреть начинающих IT-специалистов, имеющих за плечами только онлайн-курсы, — компании по-прежнему готовы принять их. Но уже на новых условиях.
Например, если в вашем резюме несколько строчек будут рассказывать о стажировках и успешных кейсах, шансы получить оффер сильно возрастут. А где прокачать навыки и попрактиковаться, чтобы быть более конкурентоспособным, рассказала Полина Кондакова, руководитель отдела подбора персонала iFellow.
Решение: наращивание скилов и накопление опыта
Соискателей вакансии Junior-разработчика можно разделить на две категории:
- Те, кто осознанно идет к своей цели, со школы учится программированию, участвует в олимпиадах и стажерских программах, поступает на профильные кафедры в вузах.
Многие такие специалисты уже на первых курсах вузов начинают стажироваться в ИТ-компаниях, нарабатывают опыт и впоследствии оказываются востребованными — их берут, например, на масштабные проекты, в которых требуются базовые умения и навыки. Прокачка скилов для них — только вопрос времени.
- Те, кто пытаются «войти в IT» с нуля уже в сознательном возрасте.
Часто они проходят месячные курсы и полагают, что их сразу же возьмут на работу с достойной зарплатой. Это заблуждение формируется некоторыми онлайн-школами, стремящимися набрать более широкую аудиторию. На самом деле, конечно, все не так просто.
Читайте по теме: Какие навыки нужны джуниор-разработчику, чтобы получить работу
В последнее время на фоне востребованности ИТ-профессий в России действительно появилось огромное количество онлайн-школ, где студентам предлагаются в основном записанные лекции и домашние задания в электронном формате.
Вероятно, это не самый плохой способ получить базовые знания, но их будущему джуну будет явно недостаточно, чтобы практиковаться, развиваться в профессии и рассчитывать на серьезный карьерный рост.
Для дополнительного самообразования есть все необходимые ресурсы.
Например:
- бесплатные материалы на различных площадках: LoftBlog, Ulearn.me, обучающая платформа от Microsoft, code-basics от «Хекслет», Geekbrains;
- книги по основам языков программирования и инструментов для разработки;
- профессиональные сообщества и чаты в соцсетях: iOS Developers, Android Developers, QA, Data Science Chat, Python, DevOps, React, Node.js, ProductCamp Russia & Eastern Europe;
- платформа JavaRush для изучения Java;
- более опытные коллеги, готовые делиться опытом.
Еще один вариант получить необходимые навыки — уроки с практикующим специалистом уровня Senior. Занятия с наставником обычно платные, программа строится с учетом индивидуальных особенностей, много внимания уделяется именно самостоятельному решению задач.
Наставник может помочь принять участие в подходящем хакатоне (кстати, их можно самостоятельно искать на хакатоны.рф) и заодно проверить свой уровень, взять в менторинг на свои pet-проекты.
За счет таких активностей и максимального погружения удается достичь результатов в достаточно короткий срок — от трех месяцев. Наставника можно найти на площадках:
- Getmentor,
- CyberForum,
- Telegram-бот No Flame No Game.
Кроме того, необходимо научиться правильно анализировать свои сильные и слабые стороны, а также ошибки после провальных собеседований.
Нередко приходится сталкиваться с тем, что соискатель считает себя легкообучаемым и заявляет, что готов на все ради устройства на работу, а на деле не может подготовиться к собеседованию или почитать дополнительные материалы.
Где искать работу
Когда наша компания ищет джунов, мы размещаем вакансии на этих площадках:
- профильные сайты: hh.ru, career.habr.com, vc.ru/job, finder.vc
- Telegram-каналы по разным направлениям ИТ: Job for Junior, Удаленка без опыта, Telegram IT Job IT, Remote IT (Inflow), Finder.vc.
- сообщества в социальных сетях: Ит вакансии/it работа /Фриланс /it work, ITc | сообщество программистов.
При поиске первой работы лучше всего использовать сразу несколько вариантов: разместить вакансию на HeadHunter, мониторить Telegram-каналы, следить за лентой новостей в соцсетях.
Полезно зарегистрироваться в LinkedIn, максимально подробно заполнить свою страницу и подписаться на рекрутеров и HR-специалистов из разных компаний, как крупных, так и более мелких — они постоянно публикуют вакансии для джунов и анонсы стажировок.
Как стать востребованным сотрудником
- Начинать нужно с анализа собственных скилов, особенно hard skills.
Чтобы претендовать на внимание работодателя, требуется некий «обязательный минимум» навыков. Например, для программиста это знание одного или нескольких языков программирования, понимание работы баз данных, владение прикладными инструментами вроде Docker и Git.
- Резюме соискателя должно быть емким и понятным, с описанием теоретических знаний и практических проектов, если они есть.
- Откликаться стоит на вакансии, релевантные опыту или на такие, для которых вам совсем немного не хватает навыков, но вы сможете самостоятельно и быстро прокачать их, приступив к работе.
В вакансии обычно указан портрет идеального соискателя, но берут, как правило, кандидатов не со всеми перечисленными навыками. Итоговое решение принимается в зависимости от того, как прошли все этапы собеседования.
В зависимости от направления, уровня подготовки и стека задач работодателя, джун может рассчитывать на среднюю зарплату 50-100 тысяч рублей на руки.
- Не стоит забывать и о сопроводительных письмах.
При этом не надо делать шаблон для всех вакансий подряд — везде разные требования к кандидату и лучше выделять в письме несколькими предложениями именно тот опыт, который релевантен для компании.
Всегда необходимо готовиться к собеседованию:
- изучите информацию о компании, чтобы иметь полное представление о ней и задать вопросы рекрутеру и менеджеру;
- заранее решите, что хотели бы рассказать о себе — в 90% собеседованиях звучит этот вопрос, и к нему важно быть готовым;
- если предстоит собеседование с техническими заданиями, то поищите примеры, как их проходят коллеги.
Скорее всего, большинство вопросов будут повторяться. Сейчас в записи доступно очень много открытых собеседований по разным стекам. Можно спокойно заранее изучить и повторить материал, чтобы чувствовать себя намного увереннее.
Читайте также: Зачем IT-компаниям джуниоры? Отвечают работодатели
Недостаточно просто закончить курсы и рассылать резюме на все подходящие вакансии. Тем более, что поиски могут сильно затянуться.
В гонке за карьерой нужно ускоряться в несколько раз:
- изучать платформы по поиску сотрудников и профильные аккаунты компаний в соцсетях, Telegram-каналы с вакансиями, профильные сообщества;
Стоит обратить внимание на Twitter — там очень часто можно найти себе ментора или стажировку.
Чтобы попасть в нужное сообщество, советую больше общаться и задавать вопросы на тех же обучающих курсах. Ну и просто уметь пользоваться поисковиком.
- брать любые реальные проекты и подпроекты (благо их сейчас тоже хватает);
- проходить стажировки. Даже несколько часов практики в неделю в течение двух-трех месяцев помогут прокачаться, положить в портфолио хороший проект и тем самым сузить воронку по откликам и офферам;
- не стоит забывать и о развитии soft-skills — работодатели особенно ценят умение кандидатов работать в команде и договариваться с коллегами, самодисциплину, навыки самообучения.
Главное — четко понимать, чего ты ждешь от профессии и работы, что уже умеешь, чему еще только предстоит научиться, и как, используя множество возможностей, можно себя реализовать.
Это кстати относится и к выпускникам вузов. Уверенно выйти на рынок смогут только те из них, кто к последнему курсу уже имеет хотя бы шесть-восемь месяцев практического опыта и одну-две строчки в резюме. В этом случае место для инициативного джуна с горящими глазами найдется обязательно.
Читайте по теме: 5 советов, которые помогут устроиться на первую работу после вуза и не разочароваться
Когда джун все же проходит все этапы отбора и попадает в компанию, ему нужно быть готовым к самостоятельной работе, а не только под руководством опытных коллег и начальства.
Несамостоятельность — еще одна проблема начинающих специалистов.
Самое главное — уметь пользоваться поисковиками, не бояться задавать вопросы, просить совета, справляться с простыми типовыми задачами и проявлять инициативу.
Энергичность, нестандартное мышление, коммуникабельность и свежие идеи повышают шансы быстро перейти на следующий уровень.
На кого бизнес будет делать ставку в 2023 году
Тем, кто только задумывается об IT-карьере, я рекомендую предварительно изучать, кто сегодня нужен рынку. Исходя из общерыночных тенденций в следующем году, продолжит расти спрос на:
- Java- и Go-программистов;
- мобильных разработчиков;
- специалистов по автоматизированному и нагрузочному тестированию.
Как вариант — если человек просто хочет в ИТ, но не знает, куда именно, — помимо разработки можно рассмотреть:
- бизнес-аналитику;
- информационную безопасность;
- работу с российским ПО.
К примеру, сейчас у наших заказчиков большой спрос на сотрудников, которые уже внедряли и сопровождали российское ПО. Это связано с необходимостью миграции на отечественные платформы и системы.
Читайте также: Импортозамещение в IT: Цифровая трансформация на российском ПО
Конечно, все эти специальности требуют от соискателя определенного опыта. Но практика показывает, что с соответствующими soft-skills (например, аналитическим мышлением) нарастить hard-skills и и добиться успеха в них вполне реально.
Особенно это касается отечественного системного и прикладного ПО — в этом направлении работает огромное количество учебных центров.
Как новичку сделать карьеру в IT
- Понять, что IT — это большое количество самых разнообразных профессий. И какую бы вы ни выбрали — она должна быть по душе.
- Проанализировать, кого сегодня ищут компании, с какими стеками технологий они работают.
- Получить теоретическую базу, не ограничиваясь образовательными курсами.
- Пройти различные стажировки и обучающие программы от компаний.
- Пополнять портфолио реальными проектами. Если возможно — расширять скилы, изучать новые языки программирования, инструменты DevOps.
- Не бояться собеседований и тестовых заданий. В любом случае они помогают прокачивать навыки.
И самое важное — нужно быть готовым много учиться и развиваться, ведь «чтобы только оставаться на месте, нужно бежать со всех ног, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!»
Фото на обложке: Shutterstock / GaudiLab
Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!
Чтобы устроиться джавистом, одного знания Java мало. Это лишь 10% того, что вам нужно знать, и сейчас мы разберемся с оставшимися 90%.
Мы собрали распространенные IDE, фреймворки, некоторые «фишки» по ООП в целом, а также подкрепили все полезным материалом в виде ссылок. Тем не менее, если вы посчитаете статью неполной, обязательно поделитесь своими соображениями в комментариях к ней: данная информация поможет тем, кто начал свой путь развития в области кодинга на языке Java.
Базовые теоретические знания
Все начнется с ООП. Это альфа и омега всех вопросов, которые затрагивают объектно-ориентированные языки программирования. Готовьтесь и к банальным вопросам из разряда «3 (а то и 4) принципа ООП», и к задачкам посложнее, например, объяснить, что происходит в коде, написанном на гипотетическом языке программирования.
Нередко звучат вопросы о принципах ООП, модификаторах доступа, коллекциях, etc. Но самое интересное начинается лишь тогда, когда вы переходите непосредственно к ЯП.
Java изобилует библиотеками, которые предоставляют больше гибкости, но споткнуться можно и о Java Core. Вот лишь малая толика вопросов по данному языку:
- Что произойдет, если при переопределении equals() не переопределить hashCode()?
- Почему метод clone объявляется как protected?
- В чем разница между final, finally и finalize()? Расскажите, что это такое.
- Что случится, если единственный конструктор класса будет объявлен как final?
- Расскажите про все методы класса Object.
- В чем отличие между equals() и ==?
- Абстрактный класс и интерфейс: есть ли разница?
- Когда лучше применять ArrayList, а когда – LinkedList?
И так до бесконечности. Чтобы стать хотя бы джавистом стажером, нужно хорошо знать Java Core. Зато когда вы поймете все тонкости этого языка, можно смело переходить к изучению фреймворков.
Английский язык
Это обязательно. Если у вас все очень плохо – запишитесь на курсы. Если все нормально, но хотелось бы лучше – английские сериалы с субтитрами в помощь.
Не думайте, что он нужен только для умения прочесть что-то вроде «toString» или «valueOf». Документация, различные проблемы, решения которых давно заждались вас на Stack Overflow, полезные англоязычные материалы – это все действительно пригодится.
Но работодатель в первую очередь хочет, чтобы вы могли свободно общаться с иностранными коллегами. В общем, даже если ваша работа мечты находится в Германии, прежде чем научиться «Deutsch zu sprechen», освойте английский: это один из столпов IT-сферы, без которого вам не стать джавистом.
IDE
IntelliJ IDEA – всеми любимая, удобная, «ламповая» среда разработки. Но очень вредная, особенно для начинающего программиста. Привыкнув к «легкому» коду в IntelliJ IDEA, можно навсегда возненавидеть NetBeans и Eclipse (а опыт работы с последней IDE требуют отнюдь не редко).
Начали с IntelliJ? Что ж, постарайтесь «переломать пальцы» под Eclipse: это полезный опыт как для пользователя данной IDE, так и для программиста в целом. Но вообще, идеально, если вы освоите все 3 IDE: резюме расширит и в жизни пригодится. Параллельно учите хоткеи, с которыми написание/тестирование кода и отладка станут ускоренными.
Операционная система
Появился Docker, и все как-то сразу стало проще, но знание MacOS и/или Ubuntu все еще в приоритете, если хотите стать джавистом. Работать с ними легче и приятнее за счет нативной консоли с соответствующими командами. Стоит ли отмечать, что не под Windows все зачастую летает, а бесплатная операционная система – вообще на вес золота (нет, в компаниях пиратками не пользуются: либо лицензионка, либо свободная ОС)?
Если вы с ужасом смотрите на работу программистов с консолью и величаете их настоящими профессионалами своего дела, пытайтесь дотянуться до их уровня. Просто установите нужную ОС и пользуйтесь: со временем знания и навыки придут сами.
Базы данных
Подавляющее большинство компаний делает упор на знание MySQL – универсального инструмента для работы с базами данных. Но знание – не значит однодневный опыт или «Да, я с этим когда-то сталкивался». Вы должны действительно понимать запросы и уметь оптимизировать структуру. Сложно? Начните хотя бы просто с установки СУБД и изучения CRUD (создать, прочесть, обновить, удалить).
Порой могут потребоваться знания PostgreSQL, MongoDB, SQLite, Redis, etc.
HTML, XML, JSON
HTML станет хорошим помощником в работе с сервлетами, GUI и не только. Java все еще используется в вебе, в сложных архитектурах, где приоритетнее стабильность работы. Правда, это уже больше относится к серверной части. Но все равно знание языка гипертекстовой разметки лишним точно не будет. Подробнее о HTML можно почитать здесь, а больше полезных материалов для его изучения найдете в данной статье.
Формат данных XML – вечный спутник парсинга и лог файлов. Умение работать с XML не критично, если обратное не заявлено в требованиях, зато покажет вас как программиста с лучшей стороны.
А вот JSON расшифровывается как JavaScript Object Notation. В отличие от XML, это компактный текстовый формат обмена данными, и он предназначен для легкого восприятия человеком. Часто используется при обмене информацией между сервером и веб-браузером. Интернет изобилует материалами о JSON, так что вы быстро поймете принципы работы с ним.
Фреймворки
Spring MVC – лидер современного рейтинга. Чтобы стать джавистом в большинстве компаний, требуется знание данного фреймворка. Главная причина – его универсальность. Грубо говоря, это целый набор фреймворков, которые позволяют решать различные задачи.
В JSF все немного иначе, и основная его фишка во взаимодействии с компонентами. Есть поддержка Oracle, уйма дополнительных инструментов, дружелюбное комьюнити и «человеческая» документация.
Vaadin также ориентирован на веб-разработку. Его главное преимущество состоит в работе без необходимости прикручивать дополнительные web-языки, такие как JS, XML, HTML. Здесь хорошо реализованы MVP и MVC. В вакансиях встречается реже перечисленных фреймворков, но порой требуется.
Умение читать чужой код
Да, чтобы быть джавистом, нужно думать как джавист.
Часто это работа в команде, и такой скилл, как чтение чужого кода, обязательно учитывается. Если данный опыт есть – указывайте его в резюме и рассказывайте о нем на собеседовании. В противном случае постарайтесь открыть для себя Open Source и вливайтесь в командную разработку. Умение работать с чужим кодом не менее важно, чем знание самого языка: это покажет, что вы разбираетесь не только в своем стиле, но вполне можете «адаптироваться» под другие.
Советы по трудоустройству
- Будьте общительны. Обретая коммуникативные навыки и расширяя круг общения, вы набираете полезные контакты и новые знания. Активно участвуйте в собеседованиях, не замыкаясь в себе после очередного «провала».
- Не засиживайтесь на одном месте. Меняйте работу, если в текущей компании повышение даже не светит. Это актуально для всех, в т. ч. для начинающих программистов, которые боятся потерять свое первое рабочее место: всегда лучше двигаться вперед.
- Продолжайте учиться. Открывая для себя новые отрасли, технологии и фреймворки, вы дарите себе уйму возможностей пробиться дальше.
- Умейте себя продать. Когда дело касается озвучивания желаемой заработной платы, многие банально стесняются, даже если это стеснение лишает половины того, что они могли бы получать. Здраво оценивайте свои силы и не бойтесь заявить о желаемом уровне зарплаты работодателю.
- Посещайте семинары, хакатоны и прочие мероприятия, нацеленные на оттачивание навыков.
- Читайте книги, пользуйтесь сервисами и решайте задачки (можно просто отвечать на вопросы Stack Overflow).
- Отдавайте предпочтение валюте, работая на иностранные компании. Можете вообще переехать в другую страну, если хорошо владеете английским, и ваши навыки соответствуют заявленным в вакансии.
Дополнительные материалы по Java, которые вас заинтересуют:
- 8 крутых Youtube-каналов, которые помогут изучить Java
- Пишем элегантный и чистый Java код в 5 этапов
- Скрытые возможности в Java
- Подборка материалов и видеокурсов по Java
- 6 книг по Java для программистов любого уровня
- Советы по IntelliJ IDEA Pro
- 10 must-have книг для Java-разработчика