16
Suggestions for java dev wannabe?
(programming.dev)
For discussing Java, the JVM, languages that run on the JVM, and other related technologies.
Spring is the industry standard for basically everything you mentioned. Not sure how much its used in FAANG (I know for a fact Netflix uses it) but its used by a large majority of other companies such as Edward Jones, Enterprise Rent a Car, John Deere and tons of others. Its a well designed framework that has libraries for basically everything you'd want to do. They have tutorials on their website and for anything they don't cover a quick google search will reveal 100's more. I like Baeldung for a lot of in depth guides as well. Finally I'll mention that IMO the Spring site has some of the most extensive and comprehensive documentation I've seen and is a great resource
As for where to start I'd start with Spring Boot, it's a module focused on quickly getting something up and running. So it makes things like dependency management a bit easier as well as running a web-server and connecting to a database. Speaking of dependency management you'll want to take a brief look Maven and Gradle. They're both build tools similar to NPM in concept. Spring supports both equally its just preference. I personally use Maven b/c that's what I was introduced to first through an internship back in the day
Outside of Spring Boot you'll want to take a look at Spring Framework and Spring Data. Spring Framework is the core project that all the others are kinda built on top of and will introduce you to a lot of the concepts you need to learn such as dependency injection. Spring Data is focused on interacting with databases so it helps manage the connection to the db and modeling to/from POJOs and the query language. The nice thing about it is that they do their best to abstract things from the underlying db technology. Working with a tradition sql db or a nosql db are pretty similar from a Spring perspective so go with whatever you're more comfortable with or more interested in
EDIT: Quick edit to clarify, you'll be exposed to Spring Framework and Spring Data just by going through and messing with Spring Boot. I was just suggesting that those would be good places to do deep dives once you're comfortable with the basics in Spring Boot
Thanks!