Небольшая заметка с технологиями и полезными ссылками, которые позволили мне пройти собеседование и работать в Сбере.
Навыки джависта
Язык
Основное:
- 
Java Core (основные механизмы языка: типы данных, циклы и тд)
 - 
коллекции
 - 
исключения
 - 
дженерики
 - 
аннотации
 - 
функциональные интерфейсы и Stream API
 
Достаточно общего понимания и умения отвечать на собесах:
- 
рефлексия
 - 
многопоточность
 - 
сборщик мусора
 - 
устройство памяти JVM
 - 
общее устройство JDK
 
Курс по Java от Oracle
Фреймворк (Spring)
Основное:
- 
Spring MVC
 - 
Spring Data JDBC
 - 
Spring Test
 - 
основы работы Spring: IoC, DI, бины и тд
 - 
разница между Spring и Spring Boot
 
Для общего развития: Spring Security
Курс по основам Spring
Система сборки
- 
Maven
 - 
Gradle (дополнительно)
 
Навыки бэкендера
Базы данных и SQL
Основное:
- 
устройство реляционных баз данных
 - 
виды связей и ключи
 - 
индексы и ограничения
 - 
транзакции, их уровни и ACID
 - 
умение писать SQL-запросы (ddl, dml)
 
Для общего развития:
- 
Система управления версиями базы (для джавы это Liquibase). Ей довольно просто пользоваться и она пригодиться в работе.
 - 
другие виды SQL: dcl, tcl
 - 
PL/SQL: не стоит использовать в пет-проектах, но может встретиться в работе.
 
Интерактивный курс по SQL
Более углубленный курс от PostgresPro
Тренажеры по SQL: sql academy и sql exercises
Сеть
Основное:
- 
клиент-серверная архитектура
 - 
HTTP
 - 
REST
 
Для общего развития:
- 
OpenAPI
 - 
GraphQL и gRPC
 - 
сетевая модель OSI
 
Видео про архитектуру клиент-сервер и протоколы
Подробно про REST
Docker
Достаточно использовать в пет-проектах и поверхностно знать принцип работы. Докер реально удобная штука, но если вы на винде, придется немного помучиться с WSL.
Linux
Достаточно выучить базовые команды (навигация в терминале, изменение прав, создание/удаление/перемещение файлов) и общее устройство файловой системы.
Kafka
Дополнительно. Кафка сложно устроена, поэтому не зацикливайтесь на ней. Но немного разобраться можно – это будет плюсом на собесе и поможет в работе.
Общие навыки
Git
Основное:
- 
создание репозиториев
 - 
коммиты, резеты, реверты
 - 
ветки (создание ветки, ребейз и мердж)
 - 
работа с удаленным репозиторием на гитхаб
 
Для общего развития: подходы к работе с гит (имхо, самое полезное – гит флоу)
Курс по гиту от Яндекс Практикума
Статья о подходах к работе с гитом
Архитектура
- 
Принципы SOLID
 - 
ООП (или функциональное программирование, если для вашего языка актуальнее)
 - 
Паттерны проектирования
Слишком углубляться в них не надо, достаточно прочитать пару статей. Также, не стоит пытаться применить их в своих пет-проектах, это вас только запутает. 
Хороший сайт с объяснением паттернов (из России заходить под впн).
Что не стоит учить
На своих петах я кучу времени убил на изучение встроенной функции Spring Security для парсинга JWT, на поиск идеального способа обработки исключений в Spring MVC, на доскональное изучение документации Spring Data JPA и плагина для генерации из OpenAPI.
Да, разбираться во всем этом было интересно, но я мог бы намного быстрее сделать задачи, стоявшие передо мной и в дальнейшем мне эти знания даже не пригодились.
Поэтому:
- 
старайтесь правильно расставлять приоритеты
 - 
ставьте себя во временные рамки
 - 
помните, что лучшее – враг хорошего
 - 
помните о принципах KISS и YAGNI
 - 
и об одном из принципов Agile: работающий продукт — основной показатель прогресса