Система контроля версий:
Ни один проект не обходится без системы контроля версий. ахахах хотя я знал ребят, которые в банке Карл! В Банке! пилили фронт не используя 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:
Куда же в современном мире бэкэндеру без докера. Как от джуниоров, от вас не требуется глубокого понимания того, как это работает, однако какое-то общее понимание у вас должно быть. А еще лучше, если вы попрактикуйтесь в этом - напишите проект, соберите его вашей любимой системой сборки, а потом упакуйте в контейнер и запустите его.
Английский язык:
Это не требование, а лишь моя рекомендация. Его нужно знать, учить практиковать.
Заключение.
Дальше все будет зависеть от следующих факторов:
- на сколько хорошо вы знайте ту или иную тему, и на сколько она важна для потенциального работодателя
- сколько денег вы попросили
- кто также как и вы претендует на ваше место
В общем, все что вам нужно, это просто быть лучше, чем другие, вот и все.
Ни один проект не обходится без системы контроля версий. ахахах хотя я знал ребят, которые в банке Карл! В Банке! пилили фронт не используя 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:
Куда же в современном мире бэкэндеру без докера. Как от джуниоров, от вас не требуется глубокого понимания того, как это работает, однако какое-то общее понимание у вас должно быть. А еще лучше, если вы попрактикуйтесь в этом - напишите проект, соберите его вашей любимой системой сборки, а потом упакуйте в контейнер и запустите его.
Английский язык:
Это не требование, а лишь моя рекомендация. Его нужно знать, учить практиковать.
Заключение.
Дальше все будет зависеть от следующих факторов:
- на сколько хорошо вы знайте ту или иную тему, и на сколько она важна для потенциального работодателя
- сколько денег вы попросили
- кто также как и вы претендует на ваше место
В общем, все что вам нужно, это просто быть лучше, чем другие, вот и все.