Зависит от уровня познания программирования.
Из литературы: для начального подойдет Б. Эккель "Философия Java" (классика жанра, в общем-то), далее можно познакомиться с реализацией основных алгоритмов и структур данных: Р. Лафоре "Структуры данных и алгоритмы Java", а также Р. Седжвик К. Уэйн "Алгоритмы на Java" - в помощь. Больше времени уделяйте практике: проделывайте все задания, переписывайте примеры из книг. Прежде чем узнать решение из книги, постарайтесь придумать его самостоятельно.
Наконец, не стоит забывать про официальную документацию от Oracle, а также различные ресурсы: stackoverflow, форумы и прочее.
Дальнейший путь зависит от специализации, но это уже другой вопрос.
Какой хороший и лаконичный ответ! Спасибо!
Если коротко, то так: