Если писать код и гуглить, не прорабатывая заранее теорию архитектуры, рефакторинга, то книги ниже могут помочь.
1. The Java Workshop - A practical, no-nonsense guide to Java, David Cuartielles, 2019.Книга с нуля обучает Java на базе заготовок к упражнениям, без лишних слов. В основном акцент на возможности языка и АПИ, не сильно углубляясь в общие понятия программирования и проектирования. Книга примечательна тем, что обучает так же работе в IDE IntelliJ IDEA.
2. Building Java Programs A Back to Basics Approach, Stuart Reges, 4 (2016) или 5 (2019) издание. Курс программирования Java с нуля, построенный на пракических примерах. В отличие от книги выше, эта делает акцент на структуры и алоритмы, детальные пояснения фундаментальных понятий и закрепление базовых навыков програмирования.
3. Книги - справочники от StackOverflowhttps://books.goalkicker.comJavaNotesForProfessionals - разбираются почти нюансы не только JavaCore, но и предлагается использование наиболее популятюрных библиотек. Редкая книга, где одновременно встречаются String.intern(), ThreadLocalRandom , взаимодейсьвие через UDP, Guava и флаги JVM.
А так же по отдельнвм смежным темам:
AndroidNotesForProfessionalsAlgorithmsNotesForProfessionals
GitNotesForProfessionals
SpringFrameworkNotesForProfessionals
HibernateNotesForProfessionals
SQLNotesForProfessionals
HTML5NotesForProfessional
CSSNotesForProfessionals
JavaScriptNotesForProfessionals
и т.п.
4. Oracle Java Tutorialshttps://docs.oracle.com/javase/tutorial/5. Oracle Java Documentation, включая API
https://docs.oracle.com/en/java/И естественно
спецификация языка java (JLS), как референтный источник по языку
https://docs.oracle.com/javase/specs/6. Effective Java, 3е изд., Joshua Bloch, 2018. Книга обязательна для более глубокоотпонимкния Java. Не учит с нуля, акцентирует и поясняет неочевидные приемы, лучшие практики использования возможностей языка.
У Блоха так же есть книга
Java Puzzlers, 2005 года, которая на близких к практике примерах кода закрепляет понимание языка. и навыки прграммироаания. Большинство решений не потеряли актуалтность.
7. Computer Systems A Programmer’s Perspective third edition, Randal E. Bryant, 2016Когда потребуется более глубокое понимание работы языка и платформ, эта книга поможет понять самое важное с точки зрения програмиста.
В основу книги положен разработанный авторами учебный курс "Введение в компьютерные системы" (ICS), преподаваемый в сотнях колледжей и университетов по всему миру.
--
Дополнительно, в этой подборке
много открытых книг по разным платформам и языкам, включая Java, Kotlin, Android. Стуктурированные источники помогают сориентироваться в незнакомых темах - сложно нагуглить то, о чем даже не догадываешься или не можешь правильно сформулировать.
https://github.com/EbookFoundation/free-programming-books