Система контроля версий:

Ни один проект не обходится без системы контроля версий. ахахах хотя я знал ребят, которые в банке Карл! В Банке! пилили фронт не используя CVS (control version system [система контроля версий]). Но с нашим приходом ребят быстренько попросили уйти… что не удивительно.

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



Системы сборки проектов:

Я надеюсь, что вы понимайте, чтобы создать проект, не достаточно воспользоваться командой javac. Поставка продукта это вообще большой, интересный и сложный процесс под названием CI/CD. На первое время, вам не нужно досконально понимать, как это все устроено (да вы и не сможете, не поработав с этим). Однако! Нужно уметь хотя бы на базовом уровне работать с системами сборки проектов. Представляю вашему вниманию два самых популярных сборщика Java проектов:

Gradle - обожаю

Maven - пойдет

По крайней мере в РФ Gradle более распространен, нежели Maven. Но это не значит, что мавен редко встречается. Тоже довольно частый чувачок.



Фреймворки:

Spring - ну куда же без него. Если вы пишите на JVM языке, едва ли вы обойдетесь без спринга.

Hibernate (либо JOOQ, однако он менее распространен) - практически ни одно интерпрайз приложение не обходится без ORM.

Apache - это не фреймворк, а набор библиотек, которые упрощают ваш код (lang3, collections4, commons-io и др)



СУБД:

А вы как думали? Будете пилить stateless сервисы и все у вас будет хорошо? Не тут то было. Обязательно, хотя бы поверхностное понимание работы СУБД - что такое ACID, что такое транзакция, какие уровни изоляции бывают, какие феномены они закрывают, а какие нет, как работают индексы. Пока говорим только про реляционные. Если еще и NoSQL подтяните будет совсем хорошо.

Но тут могу сказать, что большинство джуниоров (даже синьеров…) нихрена этого не знают.



SQL:

А вы думали в сказку попали? Нафига вам знать, как работает СУБД, если вы не одного запроса не можете туда отправить. Рекомендую заложить время на его изучение и практику. Это очень важно.



OS:

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



Docker:

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



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

Это не требование, а лишь моя рекомендация. Его нужно знать, учить практиковать.



Заключение.

Дальше все будет зависеть от следующих факторов:

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

- сколько денег вы попросили

- кто также как и вы претендует на ваше место



В общем, все что вам нужно, это просто быть лучше, чем другие, вот и все.