Сама по себе java вам вряд ли нужна. Нужны ещё библиотеки и фреймворка.
Чтобы определить, где находится средний уровень определитесь с предметной областью.
Т.е. определите, что именно хотите реализовывать на Java и начинайте изучать нужное окружение вместе с core java.
Ну и книг не достаточно, нужно много практики. Без этого все прочитанное быстро выветрится.