2020-03-25 22:55:36

Considering the current situation we all find ourselves in and the time some of us have free what would you all consider might be a good programing language to learn.
I am in to this for the profit, just to make that clear.
I would seriously appreciate any advice as to what I should choose and why.
I have found the resources posted in the sticky topic and I will read them all.
I just need some advice as to where this can provide some money and what language to choose.
Thank you all for the help, I would like to be able to support myself completely just in case my parents can not do their job any more. The more ideas and opinions the better.

Thumbs up

2020-03-25 23:10:49

Take your pick of Node.js (Which is JavaScript), Python, Java.  PHP is still around and popular but worth less money.  Go is worth lots and lots of money but it's niche and jobs for it don't show up all the time.  Rust is worth even more money, but it's super niche and jobs for it exist at under 100 companies.

My Blog
Twitter: @camlorn38

2020-03-25 23:14:33

I hate to give you a non-answer answer, but it really depends on the project. If you want to be a generalist, then Python, JavaScript/Node, maybe Ruby/Rails, maybe PHP, etc. are all reasonable choices with their niches. But sometimes choice of language is dictated by the project more than anything. So there isn't a specific language that will earn you lots of money.

As an example, my current project heavily relies on a specific library/technology with only C++ and Java interfaces. We went with Kotlin for that particular service because we both didn't particularly want to write a web service in C++. The frontend needs to be easily maintainable, highly concurrent, and able to easily pass messages and communicate with the Kotlin-based service. This could have been done in a number of languages, but we chose Elixir so we could lean on Erlang's lower-level primitives and technologies while still having an approachable codebase we could more easily hire for. Neither choice is a silver bullet, so please don't take this as a blanket endorsement of Kotlin or Elixir. I'm simply making the point that profitability doesn't arise from a specific language. It comes from the project, which may or may not indicate specific language choices. We also entertained Rust for a few tightly-scoped services that we wanted to be fast and relatively fail-proof, but we ultimately didn't create those particular microservices so Rust isn't yet in the stack.

Hope that helps. If you don't like this answer, then maybe focus on identifying what sorts of projects you want to create, and research what languages are ideal for those.

Thumbs up

2020-03-25 23:44:02

Okay first of all thank you for the answers.
I like the non answer as well because I can learn from it.
what is the difference between java, java script, and Node.js 
I am still learning and a good web resource would be appreciated.
I would be less annoying then LOL.
good answers so far.

Thumbs up

2020-03-25 23:47:11

I might end up using Kotlin, if I ever do my absurdly overeningeered audiogame MMO powered by MVCC. It seems like a nice language.  I wish the JVM would hurry up on value types and unboxed generics though.

Also I think Kotlin is pretty hireable these days.

There is, overall, something to be said for learning several of the "cool" languages: Erlang/elixir, haskell, Rust, Scala.  I'm not sure I'd suggest that for someone new to this who just wants a job as fast as possible, but it counts for something with respect to hireability.

I don't know that programming (as a blind person) is likely to be a side gig though.  You kind of need a sighted partner for most things if you're going to go the contracting route.

My Blog
Twitter: @camlorn38

2020-03-25 23:48:45

@4
Node.js is a technology, not a language.  JavaScript and Java are entirely different languages with almost nothing in common.

The first skill you should learn is how to to Google.  I'm sure someone else is going to have resources for you, but a lot of what goes on here can be answered by spending 30 seconds with a search engine, and half your job as a programmer is actually likely to be Googling for docs and stuff anyway.

My Blog
Twitter: @camlorn38

2020-03-26 00:04:39

nice! I will google myself to death and be back in a few days with actually useful questions.
Thanks for the ones you did answer.
They gave me things to search.

Thumbs up

2020-03-26 16:32:56

Do you want to say, Camlorn that C# is not in demand anymore?

“If you are not united,” Jamuka said in a low voice, “you can be broken by those of no importance, just like a single arrow. If you unite, you will be as solid as the five arrows and no person will break you.”

2020-03-26 18:17:11

I've never been very big on Haskell myself. I've learned a bit of Elixir, Ruby, Kotlin and Scala, though not enough to make something out of it -- primarily since I just haven't eally spent enough time with those languages (though Java is pretty nice, though the codebases I've worked with are all java 8 and so don't take advantage of the later Java features, and migrating them to use those new features would be ridiculously time consuming). I've checked out Zig, but I significantly doubt it has a market anywhere, and Rust is (IMO) a bit better than that language right now. I've also checked out F#, Ada and D in the past (I had a bit of fun with D, though got nowhere; F# didn't really click with me -- true functional programming has not been my strong point; and Ada was just... different... and I couldn't build an actual project with it).

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.

Thumbs up

2020-03-26 18:57:57

@8 I'm not him, but again will say that it depends on the project. C# is a good language for game development, since engines like Monogame let you easily build for multiple platforms. It's also making a resurgence on the web, even in the frontend with projects like Blazor. I wouldn't say it's quite as good for cross-platform native command line projects, since I imagine you need to have the runtime installed first, though I'd not be surprised to learn that there are good AOT compile options that work well with Dotnet Core.

There really is no silver bullet. In general, you can do just about anything in any general-purpose language. But some have better task-specific ecosystems than others. Python, for instance, has a pretty solid ML/scientific computing ecosystem, and even though I myself don't use it, were I ever needing to perform one of those tasks, I'd put my current language preferences aside and spend time with it. Languages are tools. Just as you wouldn't build an entire piece of furniture with a hammer, you also wouldn't use the same language for every task you encounter.

Thumbs up

2020-03-26 23:29:15

@7
I want to be clear that i (and others) are happy to answer questions, but with the entirety of Google at your fingertips and also being in a stage where typing your exact question into Google is likely to give you an answer in the first result or two , it is probably more fruitful for you to just run a search there.

@8
C# is in demand, but I do still maintain all of my previous voiced objections around how it ties you to a set of tools that has a very bad track record of accessibility, in such a way that you do have a very realistic chance of waking up one day 5 years from now to find out that too bad, all your tools are going to stop working, and there's nothing to be done.

If Microsoft hadn't dropped the ball to a ridiculous degree with Visual Studio 2010, I could perhaps recommend it to people without reservation, but they did and those of us who were using 2008 fine woke up to a world in which things didn't work with screen readers for several years.

I liked C#.  I was starting college, before I had really put a lot of programming in.  VS 2010 happened.  That was the end of C#.  it is very easy to shrug this stuff off and say "well it's been good for a while", but when a platform ties you tightly to their tools and half those tools are UI only for one reason or another, you are at their mercy and they don't always care.  It puts you one UI rewrite without thought to accessibility away and though Microsoft does pretty good these days that's only until the people who are in charge of it change.  But my main point is this isn't hypothetical.  It did actually happen once already.

The second worst for this is java, but people in Java land already use multiple IDEs so there are fallbacks, and the tooling is documented enough that you can work out how to do it from the command line (whereas with Microsoft that means reverse engineering literally thousands of lines of MSBuild XML that encode domain specific knowledge).  Fortunately most (indeed almost all) languages don't have this problem.

So if I was going to be planning to put the next 5 years into becoming a professional programmer, no, I wouldn't go C#.  There's a ton of other options and that's a very big time investment if you're going to run the risk of it going to waste.

@9
The value in haskell is that it teaches you some very deep ways of thinking about stuff that follow you elsewhere, but I've never done a full project in it, nor do I think I ever would.  But Rust, Scala, Elixir, and quite a few other languages look to Haskell for inspiration, and they have a lot of very interesting type system stuff that you can't play with in anything else.

I like Kotlin, but unless I tried to do an Android app or suddenly had months of time for audiogame MMO backend beyond what anyone's ever done, I doubt I'll use it. The downside of the JVM is that it makes horrible desktop apps: massive startup times, lots of ram eating, weird UI accessibility bug issues, and surprisingly an even worse story for binding to C than Python.

@10
Though languages are tools, I don't think that languages are tools at the lowest levels of programming experience: your first language or two, you're kind of stuck.  Languages become tools once you can handle something that I don't have a good name for, but calling it the learning meta-skill would be a pretty apt way of putting it.

So I do think it's reasonable to expect to spend months at least in your first and maybe also your second language.  After that it seems to pick up for people though.  But the first few...not so much.

My Blog
Twitter: @camlorn38