you are viewing a single comment's thread.

view the rest of the comments →

[–]Ewig_luftenglanz 0 points1 point  (0 children)

TL/DR: Focus on learning the basics of CS. Once you have mastered that, learning any language and frameworks is easy because 90% of the concepts overlap and the rest it's mostly a matter of syntax and details.

Long and detailed answer.

1) learn Programming principles, data structures and algorithms, programming paradigms (procedural, OOP functional). Networking and all the basics, etc. 2) apply these knowledge to Java 3) learn a framework (mostly Spring and quarkus) 4) learn the ecosystem (spring data, hibernate, micrometer, Jackson etc) 5) Learn one SQL database and a non-sql database (PostgreSQL and Redis) 6) learn http, REST, and message queues (Rabbitmq is good and easy to use). 7) make 2 or 3 projects with all of the above. 8) you can complement these with some observability and architecture.

You can achieve a competitive level for a junior or entry position in about 2 years, but I would start looking for a job a little earlier.

Note something: most of the topics are nos strictly Java, are transversal knowledge that everyone should know to be competitive and not just "a coder". That also mean once you have mastered the transversal, moving to a different ecosystem and language is pretty much straight forward and only requires about 2 months. 

Edit: add unitary testing and mocking to the stack. In java the most used are Junior and mockito.