Как найти работу разработчиком java

Как Java удается возглавлять рейтинги языков программирования на протяжении 20 лет? Почему Java-разработчики особенно востребованы в банковской сфере? Разбираемся в устройстве популярной позиции разработчика в бэкенде

Об эксперте: Даниил Пилипенко, директор центра подбора ИТ-специалистов SymbioWay, программный директор факультета backend-разработки направления «Программирование» и автор профессии «Java-разработчик» в Skillbox.

Владение языком программирования Java открывает двери к огромному количеству разных проектов. Разработчик может попробовать себя в создании мобильных приложений, сайтов, игр, а также в работе с данными и в исследованиях. Востребованный язык не позволит остаться джависту без работы. Кроме того, Java — отличный выбор в качестве первого языка программирования, так как многие заложенные в нем принципы и инструменты были переняты другими языками. Обладая даже базовыми знаниями в Java, намного легче подступиться к изучению чего-то еще.

Что нужно знать о языке программирования Java

Java — это язык программирования, который появился в 1995 году и был разработан для настройки бытовых электронных устройств. В том числе, кофемашин. Именно оттуда и пошло это экзотическое название, заимствованное у индонезийской марки кофе Java. А хорошо узнаваемый логотип языка украсила кружка горячего свежесваренного напитка.

Фото:java.com


Фото: java.com

Java — мультифункциональный объектно-ориентированный язык программирования. Сейчас расшифруем. Мультифункциональность — возможность создавать на Java самые разные приложения, а объектно-ориентированность означает, что в нем можно создавать объекты и работать с ними. Например, если речь о разработке программы для той же кофемашины, можно создать объект «напиток» и задать ему набор свойств: название, рецепт приготовления, стоимость. И далее уже работать не с отдельными разрозненными свойствами, а с объектом целиком: сохранять его, передавать внутри программы и так далее. Также этот язык относится к кроссплатформенным: код, написанный на Java, будет с одинаковым успехом работать на разных операционных системах, например, Windows, MacOS, Linux и Android.

Наиболее популярная сегодня среда разработки на Java — это IntelliJ IDEA — бесплатное приложение для установки на компьютер, в котором программисты пишут код и создают Java-приложения.

С момента запуска Java в ИТ-индустрии менялось многое: появлялись более «дружелюбные» по синтаксису или специализированные под конкретные задачи языки, вместе с новыми продуктами росли сферы применения программирования. Но одно оставалось неизменным: уже более 20 лет Java сохраняет лидерские позиции в топ-3 самых разных рейтингов. Например, в ежемесячном рейтинге TIOBE, оценивающем популярность языков по количеству поисковых запросов. Почему так получилось?

Даниил Пилипенко, программный директор факультета backend-разработки направления «Программирование» Skillbox и директор центра подбора ИТ-специалистов SymbioWay:

«Востребованность Java объясняется рядом факторов. Во-первых, это сочетание относительной простоты языка и возможности создавать программное обеспечение любой сложности. Во-вторых, удобство заложенных в Java концепций, которые активно перенимаются другими языками. Например, статическая типизация, когда каждая переменная имеет заданное и неизменяемое по мере работы кода значение: число, строка, дата. Также Java прочно вошла в инструментарий крупных компаний. Так, язык является наиболее распространенным в банковской сфере и заслужил репутацию самого защищенного от хакерских атак».

Фото:tiobe.com


Фото: tiobe.com

Чем занимается Java-разработчик

Применение Java обширно. Во-первых, Java-разработчики могут заниматься созданием desktop-приложений. Для примера: на Java написаны игра Minecraft (Java Edition), бесплатный аналог Microsoft Office — приложение OpenOffice (не полностью на Java, но в значительной мере) и большое количество продуктов «европейского аналога» 1С — компании SAP.

На Java можно создавать консольные приложения, которые запускаются и работают в командной строке, а также различные сервисы и утилиты. Долгие годы Java оставалась единственным языком программирования для создания мобильных приложений на базе Android. В 2017 году появился язык программирования Kotlin, который через какое-то время стал основным языком Android-разработки. Kotlin — это своего рода продолжение Java. Поэтому, владея навыками в прародителе, освоить его достаточно просто. Сегодня порядка 30% Android-приложений все еще разрабатываются на Java.

Еще одна быстрорастущая сфера применения языка Java — все, что связано с обработкой больших данных и сферой Data Science. Этот сегмент она разделяет с языком программирования Python. На Java реализуют решения инфраструктурного уровня. Например, на ней написана одна из самых распространенных систем хранения и обработки больших данных Hadoop.

Основное же назначение Java — это разработка серверной части веб-приложений — приложений, к которым мы получаем доступ через интернет. На Java написаны такие сервисы как «Яндекс.Музыка», «Яндекс.Маркет», «МойСклад», «Альфа.Клик», «Сбербанк.Онлайн» или социальная сеть «Одноклассники». На Java разрабатывают именно серверную часть веб-приложений — так называемый бэкенд.

По данным ресурса «Хабр.Карьера», большая часть российских вакансий на бэкенд приходится именно на Java, которая занимает в структуре спроса на бэкенд-разработчиков более 30%.

Фото:Unsplash

Сколько зарабатывает Java-разработчик

В ИТ-индустрии принята градация специалистов, которая зависит от уровня самостоятельности и коррелирует с длительностью опыта работы: junior (до года), middle (1–3 года) и senior (больше 3-х лет). Зарплатные вилки московских разработчиков в среднем представлены следующим образом:

  • junior — ₽60–140 тыс.;
  • middle — ₽130–250 тыс.;
  • senior — ₽220–350 тыс.

Зарплаты Java-разработчиков в регионах ниже в среднем на 10–20%.

Как стать Java-разработчиком

Этот путь начинается с учебы. Рынок предлагает множество вариантов обучения Java: от классических, вроде колледжей и университетов, до программ дополнительного профессионального образования, буткемпов и краткосрочных марафонов. Конечно, у человека всегда остается опция самостоятельного обучения, но это далеко не самый оптимальный сценарий. Даже имея перед глазами четкий список навыков, которые нужно освоить, можно легко заплутать в многочисленных ресурсах и информации из открытых источников. В то же время, сформированный образовательный продукт своей целью видит создание самого короткого пути пользователя к его карьерной цели. Считается, что навыки уровня junior можно в среднем приобрести за 6–12 месяцев обучения.

Наталья Строганова, продюсер профессии «Java-разработчик» в Skillbox:

«Например, наш курс по java-разработке разбит на две части. Первая — это индивидуальная работа. Примерно за шесть месяцев пользователь обучается самостоятельно по предзаписанным видеоурокам постепенно возрастающей сложности. Он выполняет задания и получает комментарии проверяющих кураторов, каждый из которых является практикующим Java-разработчиком. Следующий этап — это командный проект длительностью три месяца. Под руководством тимлида пользователи в команде из 5–7 человек разрабатывают бэкенд полноценной социальной сети. В этот период они на практике отрабатывают навыки работы с Git, методологией Scrum и в таск-трекере GitLab».

Hard skills

  • Знание синтаксиса языка (типы данных, операторы).
  • Умение работать с коллекциями в Java — специальными хранилищами, поддерживающими различные способы накопления и упорядочения объектов для получения быстрого к ним доступа.
  • Умение работать с файлами — читать их и записывать.
  • Знание принципов объектно-ориентированного программирования (ООП) — в частности, таких, как наследование, полиморфизм и инкапсуляция.
  • Умение создавать многопоточные приложения, в которых различные задачи могут выполняться одновременно.
  • Знание фреймворка Spring — это специальное программное обеспечение для создания оптимизированных и структурированных веб-приложений, а также библиотека со множеством полезных функций и инструментов.
  • Умение работать с командной строкой bash — инструментом для программ в текстовом формате.
  • Знание языка SQL и умение работать с реляционными базами данных, которые используются практически в любом веб-приложении для хранения данных в виде связанных друг с другом таблиц.
  • Умение работать с системой контроля версий Git — инструментом, позволяющим сохранять промежуточные версии программного кода и отслеживать его изменения при коллективной разработке.
  • Знание принципов клиент-серверного взаимодействия — протокола HTTP и стандарта REST, по которым работают большинство современных веб-приложений.
  • Владение инструментами автоматизированного тестирования — JUnit и Mokito, позволяющим автоматически проверять код каждый раз, когда в него были внесены какие-то изменения.
  • Понимание принципов «чистого кода» и умение его писать, что необходимо для разработки легко поддерживаемых приложений, особенно, в командах.

Java — это про командную разработку. Поэтому в стандартном пакете soft-skills особое внимание работодатели уделяют умению работать в команде. А также желанию развиваться, учиться новому и уровню английского языка.

Фото:Unsplash

Этапы трудоустройства Java-разработчика включают в себя подготовку резюме, поиск вакансий, отправку откликов, телефонное интервью, собеседование, тестовое задание, оффер. Глобально здесь все устроено так же, как и в других отраслях. Поэтому подробнее остановимся на особенностях.

Где искать работу Java-разработчику

Помимо работных сайтов вроде hh.ru и Superjob, ИТ-специалисты могут обращаться к отраслевому ресурсу «Хабр.Карьера». Также вакансии можно искать на специальных карьерных страницах сайтов компаний, например, в «Яндексе», «Одноклассниках», «Сбере» и других. Их удобный интерфейс позволяет указать язык программирования и свой уровень, подобрать подходящие варианты. Сегодня для поиска работы активно используются и новые медиа, например, отраслевые Telegram-каналы learn.java и Java jobs. С трудоустройством могут помочь и образовательные платформы. Например, в Skillbox существует Центр карьеры. Это своего рода «мост» между работодателем и студентами. Специалисты центра находятся в постоянном контакте с партнерскими компаниями, собирают вакансии, подбирают студентов с релевантным опытом и организовывают собеседования.

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

Фото:Shutterstock

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

На собеседовании работодатель будет оценивать знание основ Java устно или через тест. Например, стандартные вопросы могут выглядеть так: «В чем заключаются особенности языка программирования Java?», «Можете ли вы перечислить важные методы из класса Object?», «Назовите известные вам модули фреймворка Spring». Также кандидата могут попросить написать код для решения той или иной задачи. Если соискатель прошел обучение недавно, эти этапы не должны составить труда.

Время на прочтение
5 мин

Количество просмотров 36K

Привет, Хабр! Меня зовут Даниил Пилипенко, я — программный директор факультета backend-разработки направления «Программирование» в Skillbox и директор центра подбора IT-специалистов SymbioWay.

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

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

Мы подготовили для вас несколько карьерных треков, которые сразу разложат все по полочкам: 

  • на какой доход можно рассчитывать; 

  • какие знания нужно получить, чтобы зарабатывать больше;

  • по каким критериям выбирать обучение. 

Для начала давайте разберемся, какими знаниями и навыками должен обладать начинающий Java-разработчик.

Что должен знать и уметь начинающий Java-разработчик?

Чтобы устроиться на работу на должность младшего Java-программиста, нужно:

Знать

Уметь

синтаксис языка, все основные операторы и конструкции;

основы объектно-ориентированного программирования: что такое классы, методы, статический контекст, константы, наследование, полиморфизм, инкапсуляция, перегрузка и переопределение;

принципы клиент-серверного взаимодействия, в том числе, HTTP и REST;

язык запросов SQL как минимум на уровне JOIN-ов;

принципы многопоточности.

писать “чистый” работающий и достаточно оптимальный с точки зрения производительности код; 

работать с разными типами данных и коллекциями; 

работать с исключениями;

писать и понимать лямбда-выражения и работать с функциональными интерфейсами;

работать со Stream API;

настраивать логирование;

работать с сетью и с файлами.

Еще вам понадобится опыт:

  • работы со сборщиком (например, Maven или Gradle) и с подключением внешних библиотек;

  • отладки и профилирования приложений; 

  • работы с системой контроля версий Git;

  • разработки хотя бы несложных веб-приложений на Spring Boot;

  • работы с командной строкой Linux (bash); 

  • командной разработки. 

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

И, если вы не владеете другими языками программирования и у вас нет никакого опыта в разработке, осваивать профессию придется полностью с нуля.

А если все навыки есть и опыт командной разработки тоже, можно смело устраиваться на работу и развиваться дальше. Когда в знаниях есть пробелы, нет уверенности в своих силах или практики разработки более-менее крупных проектов, тогда вам в стажеры. Рассмотрим карьерные треки с вилкой зарплат.

Стажер, 40 000 – 50 000 рублей в месяц

С позиции стажера часто начинается карьера любого программиста, в том числе Java-разработчика. Найти вакансии стажера можно на популярных агрегаторах — таких, как HeadHunter, Яндекс.Работа или SuperJob Student. Последняя площадка полностью посвящена стажировкам.

Вам в стажеры, если:

  • вы знаете только основы Java;

  • у вас есть практика решения задач, но только самостоятельная, и нет опыта командной разработки;

  • вы еще учитесь, но хотите начать подрабатывать и обучаться на практике.

Junior-разработчик, 50 000 – 90 000 рублей в месяц

Если у вас есть все перечисленные базовые знания и вы разрабатывали проекты в команде, можно претендовать на должность младшего Java-разработчика. А если вы еще учитесь, но получаете дополнительное образование, у вас есть опыт в других языках — вполне возможно, вы сможете устроиться на работу в середине обучения. В таком случае и зарплата может быть сразу 60 000 – 70 000 рублей. Все зависит от вашего стремления учиться, а также качества и скорости решения задач, которое вы приобретете в процессе такого обучения.

Можно учиться и работать параллельно. Курсы по Java в среднем длятся 6-9 месяцев. В Skillbox модуль на неделю — это где-то 1,5-2 часа видео и 5-6 часов домашних заданий. Вы сможете посвящать обучению один неполный выходной или по часу в день в течение недели и совмещать с основной работой или учебой. 

Обучайтесь в своем темпе. Например, некоторым нашим студентам хватает 2-3-х месяцев для прохождения базового курса.

Middle-разработчик, 90 000 – 250 000 рублей в месяц

У вас есть все знания и навыки junior-разработчика, вы работаете по профессии, но хотите развиваться, идти дальше и зарабатывать больше. Для этого нужно интенсивно учиться, в том числе:

  • Освоить фреймворк Spring. Если сделать это перед трудоустройством, то вы сможете сразу претендовать на зарплату от 90 000 рублей.

  • Освоить работу с базами данных, алгоритмами и Enterprise-технологиями в  Java. Это поможет вам быстрее вырасти до уровня middle/middle+ и зарплаты до 250 000 рублей в месяц при условии постоянной реальной практики на работе.

Например, вы можете учиться на нашем курсе «Java-разработчик PRO», обучение занимает 2 года и охватывает базовый, полный и дополнительный курс с изучением указанных выше технологий. 

На что обратить внимание при выборе курсов в Java-программировании? 

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

  • Нагрузка. Курс может быть слишком плотным или чересчур растянутым. Оптимально, когда есть рекомендуемые темпы обучения.

  • Командная разработка. Чем больше практики, реальных проектов, тем лучше, а здесь никуда без работы в коллективе. Уровень сложности — максимальный. Это отличный опыт и ваш главный козырь при трудоустройстве. Неизвестно, когда на работе вам попадется такой проект, так что используйте возможности во время обучения по-максимуму.

  • Обязательная стажировка. Если после обучения вам нужно обязательно стажироваться — вы учитесь на уровень Junior. Это неплохо, если после короткого обучения (6 месяцев максимум) вы уже можете идти работать. Но лучше, если программа предусматривает помощь в трудоустройстве. Это значит, что образовательное учреждение или платформа не сомневается в уровне подготовленных кадров и предоставляет выбор: если вы хотите учиться недолго — можно идти на стажировку. А если пройти полное обучение, то можно сразу устраиваться на работу.

  • Срок обучения. У всех разные потребности. Кто-то приходит с опытом командных разработок в других языках, кто-то совсем без всего. Понятно, что таким людям нужно учиться разное время, знания различного уровня, а значит — выбирать программу нужно под себя, под свою ситуацию и личные потребности. 

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

  • Программа курса. Тут все просто: чем больше практики, тем лучше, но теория тоже нужна. Практика в среде разработки, а не на виртуальном тренажере — дополнительный плюс. Обращайте внимание, чтобы авторы курса не тратили ваше время на устаревшие технологии, например, сервлеты и JSP, JSTL. Некоторые обучающие платформы до сих пор этому учат и берут за это деньги.

  • Диплом. Круто, если по результатам обучения вы выполните не только индивидуальный, но и командный диплом. Это дополнительный бонус при трудоустройстве.

Подведем итоги

Если у вас есть опыт в разработке на других языках, проходите базовое обучение по Java и смело вливайтесь в профессию. Если таких знаний нет, нужно погружаться с нуля. А если вы хотите выйти на новый уровень и зарабатывать больше, ищите продвинутые курсы уровня PRO и обязательно проходите обучение технологиям Enterprise-разработки и фреймворку Spring.

Какие навыки потребуются для успешного прохождения собеседования на 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-специалисты и будущая команда. Рынку нужны разработчики. Поэтому с каждым днем появляется все больше инструментов и каналов для быстрого старта и профессионального роста ньюкамеров.

Чтобы устроиться джавистом, одного знания Java мало. Это лишь 10% того, что вам нужно знать, и сейчас мы разберемся с оставшимися 90%.

Мы собрали распространенные IDE, фреймворки, некоторые «фишки» по ООП в целом, а также подкрепили все полезным материалом в виде ссылок. Тем не менее, если вы посчитаете статью неполной, обязательно поделитесь своими соображениями в комментариях к ней: данная информация поможет тем, кто начал свой путь развития в области кодинга на языке Java.

Базовые теоретические знания

Все начнется с ООП. Это альфа и омега всех вопросов, которые затрагивают объектно-ориентированные языки программирования. Готовьтесь и к банальным вопросам из разряда «3 (а то и 4) принципа ООП», и к задачкам посложнее, например, объяснить, что происходит в коде, написанном на гипотетическом языке программирования.

Устроиться работать джавистом быстро и без проблем

Нередко звучат вопросы о принципах ООП, модификаторах доступа, коллекциях, etc. Но самое интересное начинается лишь тогда, когда вы переходите непосредственно к ЯП.

Java изобилует библиотеками, которые предоставляют больше гибкости, но споткнуться можно и о Java Core. Вот лишь малая толика вопросов по данному языку:

  1. Что произойдет, если при переопределении equals() не переопределить hashCode()?
  2. Почему метод clone объявляется как protected?
  3. В чем разница между final, finally и finalize()? Расскажите, что это такое.
  4. Что случится, если единственный конструктор класса будет объявлен как final?
  5. Расскажите про все методы класса Object.
  6. В чем отличие между equals() и ==?
  7. Абстрактный класс и интерфейс: есть ли разница?
  8. Когда лучше применять ArrayList, а когда – LinkedList?

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

Английский язык

Это обязательно. Если у вас все очень плохо – запишитесь на курсы. Если все нормально, но хотелось бы лучше – английские сериалы с субтитрами в помощь.

Не думайте, что он нужен только для умения прочесть что-то вроде «toString» или «valueOf». Документация, различные проблемы, решения которых давно заждались вас на Stack Overflow, полезные англоязычные материалы – это все действительно пригодится.

Но работодатель в первую очередь хочет, чтобы вы могли свободно общаться с иностранными коллегами. В общем, даже если ваша работа мечты находится в Германии, прежде чем научиться «Deutsch zu sprechen», освойте английский: это один из столпов IT-сферы, без которого вам не стать джавистом.

IDE

IntelliJ IDEA – всеми любимая, удобная, «ламповая» среда разработки. Но очень вредная, особенно для начинающего программиста. Привыкнув к «легкому» коду в IntelliJ IDEA, можно навсегда возненавидеть NetBeans и Eclipse (а опыт работы с последней IDE требуют отнюдь не редко).

IntelliJ IDEA

Начали с IntelliJ? Что ж, постарайтесь «переломать пальцы» под Eclipse: это полезный опыт как для пользователя данной IDE, так и для программиста в целом. Но вообще, идеально, если вы освоите все 3 IDE: резюме расширит и в жизни пригодится. Параллельно учите хоткеи, с которыми написание/тестирование кода и отладка станут ускоренными.

Операционная система

Появился Docker, и все как-то сразу стало проще, но знание MacOS и/или Ubuntu все еще в приоритете, если хотите стать джавистом. Работать с ними легче и приятнее за счет нативной консоли с соответствующими командами. Стоит ли отмечать, что не под Windows все зачастую летает, а бесплатная операционная система – вообще на вес золота (нет, в компаниях пиратками не пользуются: либо лицензионка, либо свободная ОС)?

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

Базы данных

Подавляющее большинство компаний делает упор на знание MySQL – универсального инструмента для работы с базами данных. Но знание – не значит однодневный опыт или «Да, я с этим когда-то сталкивался». Вы должны действительно понимать запросы и уметь оптимизировать структуру. Сложно? Начните хотя бы просто с установки СУБД и изучения CRUD (создать, прочесть, обновить, удалить).

MySQL

Порой могут потребоваться знания PostgreSQL, MongoDB, SQLite, Redis, etc.

HTML, XML, JSON

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

Формат данных XML – вечный спутник парсинга и лог файлов. Умение работать с XML не критично, если обратное не заявлено в требованиях, зато покажет вас как программиста с лучшей стороны.

А вот JSON расшифровывается как JavaScript Object Notation. В отличие от XML, это компактный текстовый формат обмена данными, и он предназначен для легкого восприятия человеком. Часто используется при обмене информацией между сервером и веб-браузером. Интернет изобилует материалами о JSON, так что вы быстро поймете принципы работы с ним.

Фреймворки

Spring MVC – лидер современного рейтинга. Чтобы стать джавистом в большинстве компаний, требуется знание данного фреймворка. Главная причина – его универсальность. Грубо говоря, это целый набор фреймворков, которые позволяют решать различные задачи.

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-разработчика

На сегодняшний день насчитывается около 700 языков программирования. Язык Java — один из самых востребованных. В статье разберем особенности подбора java-разработчиков: на что обратить внимание и где искать.

Язык Java 

Java относится к объектно-ориентированным языкам программирования. 

По данным State of the Octoverse, в 2020 году Java занял третье место по популярности среди других языков. Почему же его выбирают программисты? 

Гибкость

  • Готовую программу можно запустить на любом устройстве, если на нем есть виртуальная машина Java.

Универсальность

  • Java — язык общего назначения. На нем пишут финансовые программы, компьютерные игры, мобильные и клиентские приложения.

Легкость в изучении

  • Язык Java считается легким в освоении для начинающих в сравнении с другими языками.

Что важно при подборе

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

Суть проекта, стек технологий

Этот пункт стоит наравне с уровнем зарплаты. Хороший программист постоянно учится, наращивает свои hard skills. Он хочет применять свои знания в проекте с интересными задачами.
Как заинтересовать. Презентуйте компанию с позиции технологий и области применения. Рассказывайте о задачах честно — это покажет общность интересов и сэкономит время на дальнейших этапах.

Уровень дохода

Здесь правила игра определяет разработчик. Они регулярно мониторят рынок труда с целью увеличить свой доход.
Как заинтересовать. Соотнесите уровень вилки зарплаты с предложениями конкурентов. Если она сильно отличается, сообщите цифры руководителю. Найти классного программиста не просто, поэтому проявите гибкость и не упустите ценный ресурс.
Важный момент. Многие разработчики мониторят рынок и не собираются менять компанию. Получают оффер с более высоким доходом и идут к руководителю за повышением зарплаты. Цель рекрутера — выявить реальную мотивацию поиска работы.

Плюшки компании и условия работы

Каждый второй программист мечтает об офисе Yandex или Google. Ну или о чем-то похожем. Бывает так, что просят показать фото офиса. Этот пункт действительно важный. 

Как заинтересовать. Современный офис, зона отдыха, комфортная столовая  — тот минимум, который должен быть. Да, кофемашиной и печеньками уже мало кого удивишь. Поэтому подумайте, чем ваша компания уникальна. Что вы можете предложить сотруднику, помимо достойного дохода? Возможно, онлайн-интенсивы, тимбилдинги, или скидки на спорт. 

Возможности роста

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

Команда

От нее зависит не только нагрузка, но и общий дух в коллективе. Айтишники любят находится в своем кругу, обсуждать код, разбирать баги.
Как заинтересовать. Расскажите сколько человек в проекте, какие роли у каждого.

На что обратить внимание в резюме

Реальные скиллы разработчика определяет технический руководитель. Но есть ряд моментов, на которые рекрутеру стоит обратить внимание.

  1. Коммерческий опыт разработки на Java. Если вакансия Junior, можно рассмотреть студенческие проекты.
  2. Знание фреймворков. Основные: Spring Framework, PrimeFaces, PrimeFaces, Blade.
  3. Знание баз данных. Например, MS SQL и Oracle.
  4. Английский язык на уровне elementary и выше для чтения технической литературы.
  5. Курсы, дополнительное обучение по Java. Нужны не для галочки, а для развития и применения hard skills.

Где искать

Если HH.ru просмотрен вдоль и поперек, предлагаем расмотреть более интересные варианты для поиска.

LinkedIn

Социальная сеть для установления профессиональных контактов, а значит и поиска сотрудников! Здесь сосредоточена аудитория, которая не сидит на работных сайтах.
Еще один плюс — пользователи открыты к общению и ждут писем с предложениями о работе. Это одна из задач LinkedIn.

Как искать

Поиск кандидата в шапке профиля

Введите заголовок в шапке профиля «looking for Java Developer». Пользователи, которые будут искать здесь вакансии, введут эту фразу в поисковую строку и найдут вас. Для связи есть кнопка “Установить контакт”, либо можно написать напрямую.

Поиск по ключевым словам

Чтобы сузить поиск и не пересматривать тысячи профилей, вводите ключевые слова с указанием специальностей. Например, «looking for a job as Java Developer».

Оператор «OR»  позволяет вводить две специализации. 

Например, «ищу работу Java Developer» OR «активно ищу работу по PHP».

Основной минус LinkedIn — поиск  нужно настраивать вручную. Но если нужен хороший Java-разработчик — время точно стоит потратить.

Boolean search 

Boolean search (булевой поиск) — это поиск веб-страниц с использованием специальных слов-операторов (AND, OR, «» и т. д.).

Зачем это нужно рекрутеру

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

Как использовать

 Для того, чтобы этот метод работал необходимо грамотно составить запрос. 

  1. Подберите ключевую фразу “разработчик java” “москва”
  2. Добавьте нужных операторов (“ “, — , OR и т. д.).
  3. Пропишите все в поисковой строке
  4. Нажмите Enter.

Вы увидите веб-страницы с релевантным запросом. 

Основные операторы

Оператор Для чего нужен Пример
“ “ поиск точной фразы “Middle Java Developer”
исключает слово из запроса “Java Developer-вакансия-jobs”
OR поиск по нескольким словам сразу “Java разработчик OR Программист”
site: поиск на конкретном сайте site: github.com

Форумы, жж-сообщества по программированию

Их достаточно много. Например,такие: CyberForum, SGL.ru, КлубПРОграммистов.

Форум для программистов как закрытый клуб, в котором они общаются на своем языке и задают вопросы. Поэтому найти здесь кандидата не просто.

Как искать

Для начала зарегистрируйтесь и изучите форум. На них есть темы, часть из которых разделяется по уровню программистов. Можно перейти в личную переписку, или поискать профиль кандидата на GitHub. Иногда участники сами делятся ссылками на хостинг своих проектов.

Stackoverflow

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

Как искать

Через X-Ray запросы или через никнеймы как на форумах.

Facebook

Здесь есть группы с вакансиями и специализированные группы для джавистов:

Java Tutorials and IT jobs, JAVA JOBS, Javascript Developers.

Как искать

Сообщества закрытые, поэтому для начала нужно подать заявку. Facebook — деловая социальная сеть. Оформите свою страницу, пропишите должность и название компании. Так потенциальные сотрудники сразу увидят кто к ним обращается.

Еще один способ — прямой поиск. В поисковой строке можно искать сотрудника по конкретной компании и опыту работу. Обращайте внимание на год и текущее место работы.

Чтобы найти классного Java-разработчика, используйте разные способы. Изучайте сферу и презентуйте вакансию со стороны преимуществ для кандидата.

Добавить комментарий