#Java or Spring Boot First?

1 messages · Page 1 of 1 (latest)

patent phoenix
#

Hey everyone,

I'm working in authentication (IAM) right now, mostly with JavaScript and Express and React. The thing is, I don't have any dedicated backend projects under my belt.

I've noticed the job market here really leans towards SpringBoot, but I don't know any Java.

So, my question is: Should I dive straight into SpringBoot, or should I spend some time getting comfortable with Java first?

Thanks for your thoughts!

topaz wharfBOT
#

<@&1004656351647117403> please have a look, thanks.

#

Here is an AI assisted attempt to answer your question 🤖. Maybe it helps! In any case, a human is on the way 👍. To continue talking to the AI, you can use </chatgpt:1108714622413963314>.

#
TJ-Bot
Hey everyone, I'm working in authentication (IAM) right now, mostly with JavaScript and Express and React. The thing is, I don't have any dedicated backend projects under my belt. I've noticed the job market here really leans towards SpringBoot, but I do

If you are already familiar with JavaScript and backend technologies such as Express, diving into Spring Boot might be a good choice for you. Spring Boot is a powerful Java framework that simplifies the process of building robust backend applications. It offers a wide range of features for building RESTful APIs, handling authentication, and much more.

However, it's important to have a solid understanding of Java basics before jumping into Spring Boot. If you are new to Java, it might be beneficial to start with learning Java fundamentals first before moving on to Spring Boot.

Overall, the decision between Java and Spring Boot depends on your current skillset and the specific requirements of your project. If you feel comfortable with JavaScript and want to expand your backend knowledge, Spring Boot could be a good fit for you.

Useful links:

  1. Spring Framework Official Documentation
  2. Baeldung - Learn Spring
  3. Spring Boot Reference Guide
neon crystal
#

spring is complex

#

u wont be able to dive right into it

#

its not just spring but also just the topic of doing actual backend dev is complex/advanced

patent phoenix
#

90% of my idea of backend was Lego building Rest APIs with databases, but i saw it is way more complicated

neon crystal
#

spring in particular expects from u to know a lot of advanced design concepts such as dependency injection, environment/profile based configs, service architecture, crud, orms,...

#

either case, u should definetly first get a solid grasp of "just java"

#

before learning sth on top of that

#

and yes, the java job market is spring dominated

patent phoenix
#

in romania is even more tipped to Java in general so yeah

#

@neon crystal is there a cmd or a channel with resources, or can you recommend a book to start out?

limber galleon
#

learn java

#

first before learning spring(boot)

patent phoenix
#

Do you have any books or should i just code

limber galleon
#

Code

topaz wharfBOT
#

@patent phoenix

For learning Java, we recommend MOOC.

It is a completely free introductory Java course created by the University of Helsinki, it is a great way to learn Java from the ground up.

Visit MOOC here:
https://java-programming.mooc.fi
(the course is available in both English and Finnish)

  • The MOOC teaches a broad introduction to programming in Java in two parts - one at beginner, and another at intermediate level.
    The end of the course is marked by creating your own Asteroids game clone!
  • The MOOC allows using features up to Java 11 - you can install Temurin OpenJDK 11 from the Adoptium project.
  • To submit exercises for evaluation, you need to configure an Editor/IDE (Integrated Development Environment) with the TMC Plugin.

The course instructions will suggest to use TMCBeans/NetBeans or VS Code for the course, but you can also use IntelliJ, which we generally recommend.

  • TMCBeans/NetBeans is the easiest to configure - but has the most dated user experience
  • VS Code is very popular as an editor, but it is quite new for Java Development. Some extra configuration is needed.
  • IntelliJ arguably has the best user experience and is most widely used Java IDE by professionals.
    IntelliJ requires installing a version no newer than 2023.1 - because the IntelliJ TMC Plugin doesn't work with newer installs.
    The IntelliJ Community version is completely free and all you need to install the TMC plugin.

To use IntelliJ with the MOOC, simply install the TMC plugin by opening IntelliJ -> File -> Settings -> Plugins and searching for TMC. You will then be able to use IntelliJ to complete MOOC.

About the course - Java Programming

neon crystal
#

thats what we usually recommend

#

but if u have experience in other languages u might skim through it a bit

#

🙂

patent phoenix
patent phoenix
#

rate limting
load balancing etc

little gyro
#

Fair enough

patent phoenix
#

is java from 6yo the same as now

#

or a lot is changed

neon crystal
#

the last bigger paradigm change was with java 8

#

theres ofc still lots of changes in each version. but nothing that defined the way we code java that much

patent phoenix
#

alright i will give it a go, thanks for clarifying

limber galleon
#

java 10 right?

neon crystal
#

dunno, maybe also java 9? somewhere there yeah

#

javaalmanac has all the details

little gyro
slate knot
#

Not really. The changes since Java 8 are collectively large too

It's mostly that Java is now a 6 month regular trickle of features instead of a 2-4 year jump.

#

Before Java 8 we had a big jump in Java 5 (generics) and Java 1.2 introduced the Collections framework.

The big deal for Java 8 is the introduction of lambdas and method references, and the addition of the Stream framework.

The changes since simply aren't as 'in your face' - and individually none is something you encounter quite as often.

neon crystal
#

yeah. if im forced to work with java 8 im glad that i can at least work the way i usually would but every now and then im running into smaller annoyances with great utilities added in all the versions beyond 8

#

usually also depends a lot on what exactly ur doing

#

for example if im working on sth that requires me to make a quick http request (without being in spring or similar frameworks already), i would be quite annoyed not having access to java 11 HttpClient

#

each version kinda has some nice stuff. but java 8 was the last big giga package with lots of cool stuff that u will essentially see being used in every java file since then

worn river
worn river
little gyro
#

Went into Spring, and picked up some Java here and there along the way

#

Vanilla Java is more procedural, Spring is indeed more declarative

manic patrol
#

I would build up from jakarta up to springboot, just to learn the stack, before using magic.

patent phoenix
#

hmmm

#

i usually hit my head to a wall until it makes sense

#

So i could brute force spring or jakarta and pick up java by doing so

#

but ill do like 2/3 projects just to get the hang of a few std tricks

patent phoenix
patent phoenix
empty dirge
#

just stuff like "you can call a function with some inputs and get some outputs"

#

i've also heard people use it to describe code where you pass functions as arguments

#

in this context they mean to say "imperative"

patent phoenix
empty dirge
#

meaning something like

#
var result = doThingA();
doThingB(result);
patent phoenix
#

oh

#

i thought when people pass like callbacks

empty dirge
#

this is "imperative" code, you say what you want done and in what order

#

"declarative" code, by comparison leaves details of how something is done "up to <something>"

#

so like

#
var list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
    list.add(i * 2);
}

vs

var list = IntStream.range(0, 10).map(i -> i * 2).toList();
#

the first is generally considered more "imperative" and the second more "declarative"

#

now in the context of spring what he means is you write things like

#
@Get("/some/path")
public String handleSomePathRequest() {
    // ...
}
#

and "something" figures out how to call this method when /some/path is accessed on your server

#

whereas the alternative might look something like

#
if (request.path().equals("/some/path")) {
    handleSomePathRequest();
}
empty dirge
#

other people will define "functional" as that

#

and some people will define "procedural" as like - "anything you do in C"

#

people's opinions aren't super consistent

patent phoenix
empty dirge
#

note that im not endorsing any of these

little gyro
#

It's the next evolutionary phase 😄

#

Time to find a Haskell job..

empty dirge
little gyro
#

Looks pretty accurate to me

empty dirge
#

are you, by chance, over the age of 50

little gyro
#

No lol

empty dirge
#

then i don't know why you are posting boomer memes

little gyro
#

Ahahaha, anyways..

#

I like it

patent phoenix
#

lol

patent phoenix
#

or is just a good to know thing in general for web BE

empty dirge
patent phoenix
#

yeah im doing tictactoe and my brain melts since i wanna find the most optimal checking for winning condition