что должен знать junior java developer

Что должен знать и уметь junior java developer

Тенденции современного мира IT меняются очень быстро. Новые технологии и фреймворки появляются практически каждый день. Требования к кандидатам на должность junior java developer ужесточаются от года к году. Оно и понятно. Желающих получить должность много, а вакансий для начинающих разработчиков единицы.

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

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

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

Итак. Что должно быть в резюме и в голове junior java developer?

  • Java не ниже 8 версии. Желательно Java 11, хотя 16 будет только плюсом. Опять же если есть знания основ любой версии Java, то след. версия повышается “автоматом” после прочтения статьи “Что нового вышло в java _нужную_версию_подставить_”. Для нас это значит, что в резюме желательно выставить 11 версию. И если в вакансии указана 16-17 и т.д.,  можно смело на нее подаваться. Если ответят – уже тогда можно почитать что же там такого нового в этой новой версии. В последнее время, как правило, это улучшение работы сборщика мусора и другие фишки.
  • Собственно написанное Java приложение. Будет хорошо если Вы напишете хотя бы одно Java Web приложение без использования фреймворков. На простых java сервлетах и jsp. Тогда изучение Spring и других фреймворков будет идти легче. А в резюме можно будет добавить те заветные сервлеты.
  • Понимание REST. Опыт написания RESTful сервисов, хотя бы на том же Spring. Здесь желательно знать разницу между SOAP и REST. Принципы рест можно загуглить и почитать за пару мин. Их там вроде было штук 5. Ну и если писали рестфул веб приложение, то можно сказать что понимание REST есть.
  • Hibernate. Здесь сложилась такая тенденция что хибернейт зачастую пишут к требованиям даже там где он не нужен. Все потому что JPA аннотации путают с hibernate даже опытные разработчики. Если Вы использовали Spring Data JPA и не меняли настройки по умолчанию, то автоматически использовали хибернейт “под капотом”. Ведь ORM провайдер для спринг – это hibernate. На собеседовании Вас скорее всего спросят об маппинге многие к одному, многие ко многим. Также будет хорошо знать разницу между jpa, hibernate, spring data jpa.
  • Git, SVN. Без этого никуда. Нужно не только уметь пользоваться гитхаб, но еще и знать базовые команды git. Их не так и много, и учатся они за пару дней. Ну а если Вы свой веб проект заливали на гитхаб с локальной машины, то часть этих команд уже прошли.
  • SQL. Базовые команды select-where знать обязательно. Join, group – это то, что зачастую спрашивают на собеседованиях. Поэтому знать как их применять тоже нужно. Советую просто взять небольшую базу, в ней создать пару таблиц, добавить тестовых данных и поупражняться делать разные объединения. В Интернете полно ресурсов где можно в режиме онлайн поделать запросы.
  • Алгоритмы. В вакансиях зачастую такого требования нет, но на собеседованиях вопросы по базовым алгоритмам все еще “проскакивают” довольно часто. Особенно на позицию Junior Java Developer. Уметь находить среднее, минимальное, максимальное из массива это обязательно. Уметь написать хотя бы одну из сортировок тоже будет плюсом. Вывод простых чисел из массива, палиндромы – желательно все это потренировать. Тем более что в Интернете можно найти специальные ресурсы с такими задачами и ответами.
  • Maven, Gradle. По сборщикам приложений на собеседованиях вопросы задают не часто. Но знать что это такое нужно. Если написали хоть одно веб приложение значит точно пользовались или мавен или грейдл.
  • JUnit, Mockito. Знание и умение писать юнит тесты требуют практически в каждой вакансии для java developer. Тесты – очень важная составляющая любого приложения. Поэтому здесь нужно выделить время и понять суть юнит тестов.
  • Паттерны проектирования, SOLID, базовые принципы проектирования. Учить солид и паттерны не имея опыта и вне реального проекта достаточно не просто. И я считаю что требовать этих знаний от начинающего программиста не очень честно. Ведь на тестовых проектах зачастую не понимаешь где применить и чем может помочь тот или другой паттерн. SOLID вообще больше начинаешь понимать когда работаешь с большими ентерпрайз проектами. Но требования по вышеописанному есть и поэтому я советую почитать хотя бы теорию. Знать расшифровку солид, по пару предложений для самых распространенных паттернов.

Это конечно же не полный перечень требований для начинающего Java разработчика. Но если знать и уметь все из этого списка, можно смело идти на собеседование не только junior java developer, но и на должность повыше.

Не забывайте подписываться на телеграм канал. Там я публикую небольшие заметки и анонсы статей: https://t.me/java_master

Leave a Comment

Your email address will not be published.