How To Learn Java in 2023?
To avoid repeating myself, I have compiled my experience from around August 2022 in this post.
In my opinion, books will only be of limited help in 2023, as they often become outdated before they even hit the market. Moreover, while learning the language is important, mastering one of the well-known IDEs (such as NetBeans, Eclipse, or IntelliJ) is also crucial, and video tutorials are more effective in this regard. Once you have a grasp on the language, system, and IDE, you can proceed based on what you want to achieve with Java, exploring options like Spring, Vaadin, Swing, JavaFX, Codename One, Hibernate, JDBC and tons of libraries/frameworks.
Nonetheless, books do offer the advantage of being more systematic and accurate when it comes to details, such as method overloading, inheritance, and constructors. While there are good teachers who create video tutorials, some of them provide misleading information.
I enjoyed these 2 courses for learning the basics:
This masterclass covers as well the current LTS (Java 17) release:
The following course is very good:
For learning IntelliJ this course might be helpful, though jetbrains.com has some good pieces of training embedded into the IDE:
If you need to master gradle I can point you to this course:
I maintain a public list on Twitter that features numerous experts in the field. You can find it here.
You can find many tutorials on YouTube. One excellent and extensive source I have used is the channel debugagent.com by Shai Almog. However, there are many others, and it depends on what your focus is. I would recommend a systematic approach first and then explore the free courses as you see fit.
My final assessment
Get started! Whatever language you choose, just begin! No matter what you do, set realistic goals for yourself. Even with Java, you should expect at least 3-6 months of "onboarding." I would even say 6-9 months if you're working full-time. I'm not talking about learning a new programming language, which is the most trivial aspect, but the entire ecosystem (UI technology, IDE, using databases, test cases, error management, training, tutorials, finding the right information sources, and the list could go on).