Согласен с предыдущим комментарием: в первую очередь хорошо надо знать Java Core. Остальное на уровне: знать что это, зачем нужно, как пользоваться, ну и собственно немного этим попользоваться в своих домашних проектах. Остальное это Spring - в принципе хватит и Core, но если будешь делать домашний проект на Java там по любому будет и MVC и Data, ну еще и Security можно прикрутить для общего понимания. SQL + JPA/Hibernate, Git, JUnti + Mockito, Веб-сервисы (особенно REST) и в целом как работает Web на базовом уровне. Вроде все, надеюсь ничего не забыл.