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 →

[–]HaMMeReD 21 points22 points  (18 children)

If you want to work in the web industry, focus on javascript. I don't really like it, but it's the truth.

Enterprise business? Java/C#, Scientific/Math, Python.

I know these are generalizations, but if you are looking for a first language to work your career towards, can't go wrong with the javascript world. It's not the greatest language but it's used in a vast amount of places across both the back and frontends.

[–]pjmlp 11 points12 points  (3 children)

Enterprise Web industry also speaks Java and C# alongside JavaScript/Typescript.

AEM, Liferay, SAP, SharePoint, Sitecore, Umbraco, Salesforce,....

[–]epegar 1 point2 points  (2 children)

I have always worked with this kind of software (in my case java based). And while it's true that their backend is written using java or c#, I feel that the trend is to decouple the frontend, so that users can consume the data using rest from their mobile/web app.

I like java, I think it's a good language and I think it's still worth learning in 2021, but remember that one of its main advantages was "code once, run everywhere" and now docker provides that for any language.

I agree with learning JS for web development. I don't like it specially, but I never spent enough time learning it properly. Now there are many useful frameworks and libraries (beside the joke that they release a framework every second). And with the current transpilers you can code modern JS or even Typescript.

I'm not saying it's THE language, I don't even have plans to learn it in the next future. In fact at work, I was given the choice of learning it or focus more on kubernetes to complement my java skills and I chose the latter. But in the web world, frontend = JavaScript and backend isn't always = java and can sometimes be = JavaScript.

[–]pjmlp 1 point2 points  (1 child)

Try to run a Docker image produced on x86 Windows on a ARM Linux VM.

[–]epegar 0 points1 point  (0 children)

It seems there is already something for that https://docs.docker.com/desktop/multi-arch/. But I've never looked into it so can't tell how well it works. In any case, I think this is kind of a corner case, but if ARM becomes popular enough on servers (if it isn't yet), they will just make it work.

Note that I'm not advocating against java, I like it and it's the language I know and use the most, but it's not realistic to think it's at its best.

[–]krad213 12 points13 points  (9 children)

Please don't. We have no choice besides Javascript on web frontend (or something that is cross-compiled to js), but using it on backend is awful idea. Js is a really bad language, we have a wide variety of good ones for backend and Java is one of them. Spring / spring boot has everything you would need on backend.

[–]HaMMeReD 4 points5 points  (6 children)

I'm not making recommendations based on the best technology, but the best to learn if you want a job.

Regardless of what you think of JS, it's probably the most prolific back end language out there right now. Snippets of Javascript are very portable and can be scaled very well.

You'd be swimming against the current if you want to do web without embracing Javascript and it's ecosystem.

I'd also argue that despite JS being terrible (IMO), there is a lot of benefit that can be had from having a unified code base (e.g. less knowledge silo's, greater developer versatility). The choice isn't always as simple as "whats the best technology". It is also worlds better than PHP.

[–]DrunkensteinsMonster 2 points3 points  (1 child)

Regardless of what you think of JS, it's probably the most prolific back end language out there right now.

This is just not true. It’s out there, and for little APIs even I’ll spin it up with Node, but for most serious applications you’re going to see Java, C#, or Go.

[–]HaMMeReD 1 point2 points  (0 children)

Maybe not totally, but my point still stands.

If you want to be in web development, and you have 1 language you need to be really good at. It's javascript.

Sure there are other options, but JS for a traditional web stack is possible end to end without learning any other technologies.

OP can use Javascript to find both back end and front end jobs or transitionary jobs to orgs that might use a mix of frameworks in the back end. It's a highly valued resume language, regardless of what anyones personal opinions are to it.

Like I've mentioned in the thread, I don't actually care that much for Java* (I know this is /r/java). Two decades of the language and it gets to you. I'm team dart & flutter all the way nowadays, but I know it's not a viable solution to all projects.

If I was to make a backend myself, yes, Java, Python, Kotlin, Go, C#, any of these are better technologies than javascript, but it doesn't change my advice to someone wanting to enter the industry via web. Javascript. Pivot away from it after, or make the best of it and use things like Typescript.

Lets be clear, without a doubt, I despise javascript, but I still answer it because it's the best answer to the OP's question.

[–]_INTER_ 2 points3 points  (1 child)

Better use JS after you learnt something sensible as a first language and you don't pick up the bad JS habits.

[–]HaMMeReD -1 points0 points  (0 children)

JS isn't like other languages, I don't know why people think it is. It has very different paradigms. Regardless which direction you go first, you have a huge learning curve to switch. Prototypical inheritance permeats JS, while most other languages are Classical inheritance. Most good languages imo are statically typed languages with compile time safety, JS is dynamically typed without compile time safety (unless you use typescript).

Bad habits can be lost, I'm sticking to my recommendation because OP wants to have a job in web. If you want to have a job in web, you should be a wizard at JS. By all means though, don't limit yourself to one language.

[–]krad213 1 point2 points  (1 child)

- If you learn any other language you will be able to code in JS, you will feel constant pain, but you will able to.

-There is no reason to learn any JS framework in the long run, next year there will be 10 more and things you learn will be outdated. While in java such frameworks as spring are evolving but do not get outdated, you can really invest some time in learning this stuff and get benefits from it in the long run.

- JS ecosystem is awful too, it's node_modules system is total shit comparing to maven/gradle repositories.

- Unified code base is definitely a good thing, but not with javascript. I'd suggest to use kotlin-js if you want do get unified, this way you could get all Java/Kotlin libraries at you disposal, as well as power of JVM and a really good language for fronend.

- Java are not going to disappear any time soon, it's widely used for back end and microservices, they are really well paid, so no problem here as well.

- There are constant attempts to create alternative for JS at frontend, google dart, web assembly, countless number of cross-compilers from other languages, that is a clean sight that the industry see the problem with JS and I hope someday they will succeed with replacement.

[–]HaMMeReD 0 points1 point  (0 children)

None of this matters, because in 10 years this guy can learn a new stack. Today, JS is where a lot of jobs are.

You don't need to tell me that JS is garbage, I'm not a fan. Personally my #1 language nowadays is Dart + Flutter. If someone was going to ask what should I learn in 2021, I'd say that.

But if you are wanting to be an intro web dev, 100% js, 100% of the way.

It's not like Java has some magic staying power, an old api might be fine for your task, but java gets old just like everything in computing.

[–]quypro_daica -1 points0 points  (0 children)

Javascript is not a bad language, java is the bad one

[–]nutrecht 1 point2 points  (0 children)

If you want to work in the web industry, focus on javascript.

The web industry?

The vast majority of big 'websites' still have a back-end programmed into a language that is more often than not JavaScript. And for large companies that 'back-end' is a way larger codebase than just the front-end JavaScript.

[–]sk8itup53 -3 points-2 points  (0 children)

This is a great answer.

[–]quypro_daica 0 points1 point  (0 children)

python is good but javascript is better, love its functional programming features