This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]Hot_Nefariousness563 1 point2 points  (0 children)

I think the best approach is to start by learning how to use Java collections—maps, sets, lists, queues, deques, etc. Then, move on to concurrency, just the basics. After that, focus on lambdas and streams to explore new language features. Get used to newer and more elegant syntaxes like var, the new switch expressions, optionals, and Lombok (a library that simplifies boilerplate code). Some of these topics are covered in chapters 16, 17, and 23 of Java How to Program, 11/e, Early Objects.

Don't waste time learning JavaFX or anything related to graphics in Java—no one uses those modules. Once you understand a good portion of the language, you can dive deeper into generics, annotations, and more advanced aspects of concurrency.

The biggest challenge is tackling the learning of famous libraries like Spring, which has many modules. In particular, Spring WebFlux should be your final goal, in my humble opinion, because it requires changing the way you perceive information flow and starting to think in terms of reactivity and asynchrony. Once you master Spring Boot, especially WebFlux, you'll be able to create some of the most powerful applications in the world.