Я не жабіст (жабун? жаба-прогер?), тому конкретних підручників не пораджу. Можу порадити не зупинятися на одному підручнику - часто трапляється, що підхід одного автора буде вам ближче. В цілому:
0. Купіть пару підручників, пропрацюйте їх (тобто прочитайте і виконайте всі завдання).
1. Зареєструйтеся на якомусь сайті з задачками, їх багато ([1], [2], [3]). Олімпіадне програмування - не професійне, але прості задачки ви маєте вміти розв'язувати. Можете починати під час попереднього пункту.
2. Напишіть невеликий власний проєкт. Можна клон якоїсь чужої програми, не дуже якісний, але просто щоб відчути, як воно - писати великі програми.
3. Прочитайте "Досконалий код" Макконнелла. Це не по Java, це загальне, але дуже потрібне.
4. Подавайтеся на джуна.