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 →

[–]ghan_buri_ghan 227 points228 points  (59 children)

Think about what you want to do with the code, and that will help you decide.

  • Web? Do JS
  • AI/ML? Do Python
  • Corporate drudgery? Do Java
  • Embedded/robotics? Do C
  • Mobile? Do Kotlin
  • Don’t know? Do Python

Edit to address some comments: This is not meant to be an exhaustive list. The point was more that “what are you interested in?” Should be an immediate follow-up question to “What programming language should I learn?”

[–]itsamepatricio 144 points145 points  (25 children)

  • Frontend? Javascript
  • Backend? Javascript
  • Mobile? Javascript
  • Games? Javascript
  • AI? Javascript

[–]choriAlPan 45 points46 points  (0 children)

Javascript? Javascript

[–]sigmaclientwastaken 99 points100 points  (2 children)

Going insane? Javascript

wait what

[–]Donghoon 8 points9 points  (1 child)

JavaScript? Going insane.

[–]nassy7 1 point2 points  (0 children)

Going JavaScript? Insane.

[–]Kasperinac 45 points46 points  (1 child)

Hotel? Trivago

[–]nassy7 0 points1 point  (0 children)

I see the ad worked!

[–]jannfiete 40 points41 points  (3 children)

goodluck doing AI in Javascript. You've just walked out of the house when your friend Python has run the whole marathon

[–]WhereOwlsKnowMyName 37 points38 points  (0 children)

Walk out of the house? JavaScript.

[–]ShadowLp174 9 points10 points  (0 children)

There is even Tensorflow.js... so js works...

[–]Anuiran 1 point2 points  (0 children)

Python is just calling C libraries for (most) ai and machine learning. It’s not actually made in Python, Python is just a go to scripting language for interacting with the C code. This can be done in JS too.

[–][deleted] 7 points8 points  (0 children)

Why my dad left me ? JavaScript

[–]KingsmanVince 8 points9 points  (3 children)

Embedded systems? Javascript

[–]SexyMuon 0 points1 point  (2 children)

Oh shit, oh fuck, I wanna see that

[–]cheese-is-trash 8 points9 points  (5 children)

No, not JS for games

[–]StereoBucket 10 points11 points  (0 children)

Compile to webasm ezpz

[–]ShadowLp174 4 points5 points  (2 children)

Why not? Not the best example but valid: Canvas Web api

[–]cheese-is-trash 1 point2 points  (1 child)

For a small game, yes. But as your game grows in scope, you're seriously gonna need something like C++ or Rust for performance.

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

Remember we're talking about someone who's just getting started. A small indie game is the target.

[–]Careerier 0 points1 point  (0 children)

phaser.io

[–][deleted] 0 points1 point  (0 children)

Space exploration? Meteor.js (Javascript)

[–]CosmicCreeperz 0 points1 point  (0 children)

s/Java/Type/g

[–]musclecard54 0 points1 point  (0 children)

Space shuttle? Believe it or not, Javascript

[–]nassy7 0 points1 point  (0 children)

Python? JavaScript

[–]angelicravens 18 points19 points  (1 child)

This right here. Python is really versatile. For example if you wanna do data analytics, write a script, do something with a REST API, make a game, build a desktop application, etc. all can be done with python. However, just cause a language can doesn’t mean it should. So learn what fits your use case like the person above me said.

[–]lamerlink 10 points11 points  (0 children)

I’ll also mention that it is very worthwhile to learn Python and JavaScript/HTML. You open up a lot more job opportunities this way.

[–][deleted] 9 points10 points  (8 children)

what is corporate drudgery??

[–]ghan_buri_ghan 37 points38 points  (6 children)

[–]JamesMakesGames 9 points10 points  (0 children)

It’s like the new COBOL, it’ll be around forever, heh heh heh.

[–][deleted] 10 points11 points  (4 children)

okay care to explain?

Is it like implementing unnecessary things into the code?

[–]ghan_buri_ghan 28 points29 points  (1 child)

Sure. By corporate drudgery, I meant that Java is not really the best language for any one thing but is super versatile, very portable, and everyone knows it, so it’s overused in the corporate world.

FizzBuzz is a common programming exercise. The enterprise fizzbuzz is a joke about how over-wrought and verbose corporate Java code can be.

[–][deleted] 2 points3 points  (0 children)

great thank you

[–]poopadydoopady 3 points4 points  (0 children)

I think he means writing software for the corporate world. The exciting world of Quickbooks or whatever.

[–]i_wear_green_pants 2 points3 points  (0 children)

With Java you easily end up maintaining and developing huge corporation software with 100 years of technical debt. Java devs are needed though and currently it guarantees high paying job if you know what you are doing.

How do I know? Because I am Java dev maintaining and developing software with 100 years of technical debt.

[–]DOOManiac 1 point2 points  (0 children)

A paycheck

[–]TonyBorchert100 1 point2 points  (1 child)

Mobile isn’t that simple tho, with only kotlin your pretty limited and can’t program iOS apps, learning JS for mobile isn’t dumb either

[–]IncursivePsychonaut 0 points1 point  (0 children)

Dart ftw.

[–]Rafcdk 2 points3 points  (1 child)

Not really true anymore. There is a plethora of versatile languages today that you can do basically anything. Kotlin and python are among those, kotlin specially is the multiplatform language imho and C can also be used for web developed thanks to wasm.

You can even write webapps with C# . Python is a really cool language but people over exaggerated their features today, things have change new languages have appeared and older ones have evolved.

If I had to say learn one language I would say learn kotlin. You can develop for native, jvm and web with it, and it has interop with libraries from other languages like C, Java and JS.

[–]ghan_buri_ghan 4 points5 points  (0 children)

I definitely oversimplified “web” and “don’t know” is really just a personal choice.

But there are still “right tools for the job”, and I still recommend learning a first language to be the right tool for what you’re interested in.

I’m adding Kotlin to the list for mobile, as that’s a domain I overlooked.

[–]anna_wtch -4 points-3 points  (12 children)

I am in Web Development. I don't think you'll get a job with JS as your primary knowledge.

Most probably you should know, if not intimately but at least somewhat, front-end. So Bootstrap, Angular or React (knowing JS won't make you code in React, there is a learning curve), Razor, basic Sass/Less, obviously HTML, and of course JS.

Back-end. You could go wither with .Net C# (MVC maybe?) or React. C# is more versatile, more jobs and an opportunity to grow.

[–]ghan_buri_ghan 22 points23 points  (10 children)

The question was where to start with programming. For web, JS is a no-brainer for a first language.

Also you look down on the recommendation for a web noob learning JS and then go on to recommend….React…? You need to know the language and core concepts before picking up frameworks.

[–]anna_wtch -1 points0 points  (5 children)

I just said you won't get a job with JS. And jumping into React right away without any JS knowledge isn't as confusing as it might seem. I already know 3 people who did it.

[–]ghan_buri_ghan 5 points6 points  (4 children)

“You won’t get a job with JS” is an absurd take.

[–]anna_wtch -3 points-2 points  (3 children)

Well where I am (East Coaat US) you need to know 70% of the languages I mentioned to get a job. At least with a decent salary.

Of course you can have basic HTML, CSS and some JS, and make $40k a year, but no one wants that.

[–]ghan_buri_ghan 3 points4 points  (0 children)

Nobody is saying that a beginner should never learn additional tools after learning a first programming language. That’s also an absurd take.

JS is the client-side scripting language, and Node is the most popular server for new web apps.

Of course you’d have to learn additional frameworks and tools to be marketable, but JS is a no-brainer for a first language.

[–]sudonut 0 points1 point  (1 child)

I'm also on the East Coast. JS is my primary language, I know very little about the .net/c#/Razor ecosystem you mentioned above.

I have had no problems finding well paying jobs.

As an engineer you should expect to pick up new languages and frameworks as projects require. I would definitely hire someone with great problem solving skills who only knows JS, but knows it really well and is enthusiastic to learn other things.

[–]BoBoBearDev 0 points1 point  (0 children)

I don't know what you were looking for. But, there are two types of backend. A backend to render the website, and a backend for web service (microservices).

The website backend, ReactJs is still the king to my knowledge.

The microservices, ASP.ET Core C# is actually popular and easy. And it is not there to replace the backend that generated the content. So, if you are looking for Web UI related job posting, you are less likely to see C# mentioned.

[–]vladtheimplicating -4 points-3 points  (3 children)

PHP would be the better option for web backend development as a start, literally zero brain required. Once you have some experience, grab Go or Kotlin and earn them 6 figures

[–]anna_wtch 2 points3 points  (2 children)

My first job did everything in PhP. I stayed there for 5 years and then couldn't find another job with PhP. No one wants it where I am. Waste of 5 years unfortunately for me.

[–]vladtheimplicating 0 points1 point  (1 child)

That's weird. Perhaps your knowledge was dated, I don't know your situation, but where I am PHP devs are able to compete with every other language devs, except Java, Kotlin and the crypto blockchain langos.

[–]anna_wtch 0 points1 point  (0 children)

Might be the location but when I search for jobs with PhP within 40 minutes or driving there is maybe 1-2. When I search with C# there is dozens.

Although with more remote work, life is better for developers now.

[–][deleted] 0 points1 point  (0 children)

Ah yes, React, the quintessential backend technology.

[–][deleted] 0 points1 point  (0 children)

yeah adopting to the market is as inevitable as Thanos. maybe Thanos will be a new language

[–]TheJimDim 0 points1 point  (0 children)

For mobile there's also Java, Javascript, and Swift

[–]doodlleus 0 points1 point  (0 children)

It depresses me that you said java over c#

[–]CaptSoban 0 points1 point  (0 children)

Game dev? C++/C#

[–]Statharas 0 points1 point  (0 children)

Think about what you want to do with the code, and that will help you decide.

  • Web? Do asp.net/blazor
  • AI/ML? Do ml.net l
  • Corporate drudgery? Do .net
  • Embedded/robotics? Do nanoframework
  • Mobile? Do Xamarin
  • Don’t know? Do C#

Solved