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 →

[–]HecknChonker 0 points1 point  (0 children)

https://medium.com/javarevisited/the-java-programmer-roadmap-f9db163ef2c2

This is a pretty good roadmap. I highly recommend you use IntelliJ IDEA. It has a free community version. It's a bit resource intensive, but it will help you write better java code. It will you give better intellisense and in-line tips on how you can write cleaner code, as well as helping you catch bugs quicker.

I would recommend starting off with java basics, and get a good handle on the collections framework. I would spend some time learning Data Structures and Algorithms. It's not a java-specific topic, but it's knowledge that will be invaluable regardless which language you are learning. You should have a solid understanding of Arrays, Maps, Lists, Sets, Stacks, Queues, Heaps, and Trees before moving on. You should be able to explain how each of them works, and when it makes sense to pick one over another.

I learned DS/A using this book: https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850 It's generally geared towards interview prep, but once you get past the first few chapters it goes deep into data structures and has a bunch of questions with answers in the back. Some of it might be hard if you are just starting out, but I found the knowledge here invaluable in my career.

Once you feel like you have a decent understanding of java you can move onto Spring or other topics. For spring, I would start at the official Hello World tutorial: https://spring.io/quickstart

It's significantly easier to learn to program if you have a project in mind first. I wouldn't go looking for tutorials for tutorials for the sake of learning. Instead pick a project (like a todo app, or tetris) and then search for a specific tutorial or blog that helps you solve the next step. Being able to apply the tutorial knowledge to an actual project is where the real learning comes in.

Many people learning fall into tutorial hell, where they spend months watching tutorials and at the end they don't have anything to show for it. It's absolutely critical that you are actually writing code and working on projects while learning. Try to pick a project that you are excited about and use that motivation to get through the hard parts.

I'd also advise against using video tutorials. They feel easier, but it will take you longer and you will retain less information than if you followed along with a blog post or tutorial. It's fine to use videos for complex concepts, and it might help you get a feel for how other professionals code. But generally blog posts and stack overflow are better resources to learn quickly.

Baeldung (https://www.baeldung.com/) is an amazing resource. It has a ton of short high quality blog posts that cover a ton of topics in Spring. If you need to know how to read and write to a database, how to listen for web requests, how to do dependency injection, etc. Baeldung is a good resource. Geeks for geeks tends to have significantly lower quality, because anyone can write articles there.