I’m a web (frontend) developer with 7+ years of experience. I want to become a full stack developer and want to get to know the business side of java. Already know the language and can easily write small CLI or GUI apps (mostly thanks to knowledge of other languages) but have no experience at all with anything business-related. What libraries/solutions would you recommend to me to learn (DB libs, queueing, http server, sockets, etc, anything else)?

  • Yoast
    link
    fedilink
    English
    arrow-up
    14
    ·
    edit-2
    1 year ago

    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