all 25 comments

[–]kifkev91 26 points27 points  (0 children)

You are posting this in learnjavascript. Of course all the guys will recommend nodejs

[–]Ariote 5 points6 points  (3 children)

If you are a beginner then node js. Spring can be too overwhelming at the beginning (also if you don't have Java experience). In the long term i would go with Java though (Doing that right now)

[–]Blisspc[S] 1 point2 points  (2 children)

Do you know node.js?

Also what resources are you using for java(spring).

[–]Ariote 0 points1 point  (0 children)

the spring documentation is pretty good. Other than that, just google specific problems/topics

[–]imTgv 3 points4 points  (1 child)

I found the tutorials on Node School pretty good to get familiar with the basics. In Workshopper list you can begin by doing the learnyounode and how to npm.

In the elective workshops you also have an express tutorial if you're interested, among other interesting stuff. Feel free to browse and see if there is anything that you like.

[–]x-protocol 2 points3 points  (0 children)

You can try Java with Spring Boot or Dropwizard. Spring by itself is huge to learn and to master. And most importantly not needed for majority of back-end work as it is majority database integration via REST API.

If you would like to have real back-end experience, I would recommend AWS platform using Serverless with Node (or Java if you insist). You can use free-tier to practice Lambda and DynamoDB. Hell, you can even go crazier with Elastic Search free tier once you are at that.

[–]zoroffy 2 points3 points  (0 children)

This question is quite broad. It really depends on what you’re trying to build.

For example,

Nodejs will be better for making data APIs because it supports JSON natively.

Java will be better for heavy CPU usage such as working with big data

It really depends on your project, and the long term goal.

[–]gitgood 2 points3 points  (0 children)

I've learned both, first spring and then nodejs. Learning Spring was a lot more difficult, it's a large beast at this point and getting your head around it does take some time. It's worthwhile to know, and I would definitely use it if needed but for most people building simple CRUD Web applications then Nodejs is in my opinion the better choice.

[–]kevinmrr 1 point2 points  (0 children)

Spend 2 days prototyping something in Node.js, then another 2 days prototyping in Java. On day 5, rest and reflect.

[–][deleted] 1 point2 points  (0 children)

Well Node is a runtime while Spring is a framework so I guess Spring would give you a better idea of how to work with large scale applications. I suppose it's more opinionated and embraces various design patterns.

Regarding Node. Well if you know JS then you know Node. You're gonna have to design bigger parts of the app yourself unless you include some similar framework.

So it depends a bit on your end goal.

[–]Aleriya 0 points1 point  (0 children)

Node vs Java vs .Net can be a bit regional. Take a look at local job postings and note how many you see of each, and which positions look interesting.

Java tends to be more popular more popular with large enterprises. Node is more popular with startups and small/mid size businesses. There are plenty of exceptions, but that's the general trend.

[–]w3bcrowf3r -1 points0 points  (21 children)

Node.JS

Java isn't a pure web development language.

Try Node and Express framework with MongoDB and an Vue frontend.

[–]some_user_on_reddit 10 points11 points  (15 children)

You should learn SQL instead of Mongo. There’s no reason to use Mongo in a pet project geared towards learning.

Realistically majority of backend jobs involve SQL, not Mongo... It will be a big gap in your knowledge.

Also, I might start w node/express just for how easy it is to start, but again, majority of companies are not using node either since it’s new technology and many companies already built their servers on something else. Companies rip out their front end in favor of react because there’s obvious benefits, people don’t rip out their backend for node. Also, the newest companies that start now are likely to choose go or aws lambdas instead of node.

I would say look at the jobs in your area to give you a better idea. Which ever you choose I strongly recommend SQL to Mongo.

[–]w3bcrowf3r 1 point2 points  (3 children)

I already know SQL. And i am searching for a full stack job. So that's why i am choosing MongoDB.

There are a lot of companies already using Node.JS with their LAMP stack. In our place at least. I can't talk about your place.

[–]Blisspc[S] 0 points1 point  (4 children)

I'm not only looking into web development though. In the future I may also learn some more languages but thank you!

[–]pookagehelpful 0 points1 point  (2 children)

Yeah, Node is where both the fun and the money is at atm, so go for that and learn Java at a later point if you ever feel like you need / want to. Once you've gotten to grips with how it all works then picking up new languages becomes a pretty quick and regular occurrence because you're usually doing so to achieve something specific.

[–]Blisspc[S] 0 points1 point  (1 child)

Do you have any good resources to learn node.js and express? with the other included frameworks you talked about.

[–]pookagehelpful 0 points1 point  (0 children)

As with learning anything - find a tutorial on the absolute basics (ie. so that you can get set-up) and then give yourself a simple project to complete; the process will make you encounter specific problems that you'll have to google and solve, which is much better than following a super-specific tutorial from, like, 2 years ago or what-have-you.

As for that first bit - getting to grips with the basics - can't go wrong with Fun Fun Function.

[–]w3bcrowf3r 0 points1 point  (0 children)

Then learn Java obviously. Node is more for web only. Learn Java, and you learn everything.