
Ask HN: What languages / frameworks to learn now to become more employable - non-entity
I&#x27;ve worked with a handful of technologies in my short career. My current position is mostly legacy ASP.NET (framework MVC and a bit of WebForms). Prior to that, I was using PHP and before that I did some really insignificant freelancing using Node.js and a few other JS technologies.<p>The problem is, it&#x27;s a pain having such fragmented experience. I don&#x27;t have a more then a couple years professional (i.e. on the job experience) with any of that tech. The only one I fell comfortable with at the moment, is ASP.NET and C# and hell, I don&#x27;t even have a PC running Windows at home anymore.<p>When I stopped paying attention to the trends, I think Node.js and React was the popular stack, angular was (sort of) maturing and Vue was up and coming. I also remember Elixir and Phoenix being touted as a rails killer ans something to watch, but am not sure what became of it. But I&#x27;m wanting to learn tech that will get me a job I will enjoy more, but I have no idea what&#x27;s best to invest in. My jobs have typically been full stack, but I&#x27;m more comfortable on the backend. I&#x27;ve looked at learning Python (Flask, Django), Elixir (And Erlang, but when I tried to last, I gave up after having issues mentally parsing the list comprehension syntax) and even Go, but I&#x27;m not sure how well the job market is for any of these, especially for someone with no experience. I also have very little experience with frontend JS frameworks, embarrassingly, but those seem to have slowed down form a while back.<p>What new(ish) tech would you recommend to learn, that will be valuable to employment at least in the short term?
======
hellwd
First of all, I think C# as a language and .NET (Core) as a framework were
good and are still good choice. You can build whatever you want with it. I
don't see too much advantage when you now pick another language for the same
purpose unless you are somehow limited with C#/.NET. If you want to be more
valuable on the market you should focus more on what you are able to build.
It's more valuable when you say, I'm able to build a web application (classic
or SPA), work on the database projects (performance, complex queries), I'm
able to setup an architecture for a distributed system, I'm able to build
microservice cloud hosted systems etc...

For every single thing that you are able to build, you pick a language or tool
that suits you the best and just keep improving. Each language has it's pros
and cons but, IMO, what matters the most is the code quality, architecture and
the things I mentioned above. Better focus on those skills.

If you write nice structured, good organized PHP code (e.q), that is stable in
production and which is easy to maintain then you are far better engineer than
someone who is showing off with his Rust or Haskell unstructured, not
consistent and in the end unstable code. Don't let the trendsetters put
pressure on you.

In the end, if you are are really bored with C#, try to learn some F#. It's
also .NET but it's a different type of language and if nothing happens, in the
end, you will write better C# :) Personally I think that SQL is also a good
investment. Most of the people avoid it, I don't know why, but there are and
there will be always jobs for a good SQL developer, especially in big
companies where the salaries are also higher.

Good luck :)

~~~
probinso
\+ agree with F#, good place to go after C#

------
HissingMachine
Out of the things you mentioned and what you are looking for, the question
might be simplified with technologies currently that will have legs. My
opinion is Go, and my reasoning is it's probably going to be the same as if
you started with C# back in the day when it was introduced. There is a large
company behind it that is investing it the tech and stack, just like Microsoft
isn't going to stop with C# anytime soon, I'd imagine Google is with Go on the
long haul. I'm interested to hear opinions about this, since this is what I
have chosen and reasoning behind it.

The other one is Javascript, just like PHP it's ubiquitous enough that it will
offer opportunities on the long term, though they both have less high paying
opportunities because there is a lot of supply to match the equally high
demand.

------
probinso
New technologies don't help as much in short term employment. There is usually
a much smaller market.

For new interesting tech, Julia, NativeScript, and Rust look very promising.
They will all have very different market appeal.

If you learn NativeScript then you can also consiquently learn Angular/Vue,
TypeScript/JavaScript, and build Phone Apps + Websites. NativeScript is a very
efficient learning platform.

Julia will grow your type-systems, metaprogramming, and mathematics
applications. Move you in the direction of scientific computing; It is used by
several of the National Labs in the States.

Rust can help change the way you think from many other languages. can result
in you becoming Concurrency and Security aware and friendly.

~~~
ChrisRackauckas
Learning Julia and high performance scientific computing opened up a ton of
opportunities for me. I would definitely recommend the same (and am now
looking for students who know Julia!)

------
macando
If you're optimizing for pure employability and a low entry barrier then Java,
but don't expect projects to be too interesting or well paid unless it's
FinTech. Likewise with C#. JavaScript + React is a pretty sure bet with plenty
of options if you're interested in frontend development. However, if you're
optimizing for money and are wiling to invest time (at least one year) in
learning then it's:

\- Swift + iOS.

\- Scala/Go + Backend development: distributed or real time systems.

\- Python + Machine Learning.

------
protonimitate
For front end - react is still wildly popular. Svelte is a newer one that's
beginning to gain traction. I wouldn't invest a ton of time in any specific
framework (unless you really enjoy using it), but instead would focus on the
pros/cons of each one and when they're good choices. For the most part JS
frameworks / libs are easy to pick up if you have familiarity with js go begin
with.

Back end is pretty open. As others have mentioned Go is an up and comer. Hard
to predict the market pull for it this early, but it seems promising.

Java is still pretty popular, (spring in particular) for web servers. It's not
talked about much in the blogosphere but there's a lot of companies that still
need java devs.

I can't speak to python/erlang, as I don't have experience with either. I
think python might possibly be a better sell just because its popular in data
science fields.

Personally I think c# is still pretty marketable. I wouldn't worry too much
about the specific tech stack. These days stack-specific dev's are some a
dozen, but finding someone who can pick up a new framework/stack/language
quickly and efficiently are rare.

~~~
non-entity
> It's not talked about much in the blogosphere but there's a lot of companies
> that still need java devs.

I've seen this too, but I haven't written Java since Java 7 lmao

------
jkoudys
I'm starting to see the backend/frontend separation as being much less
meaningful than it used to be. Plenty of technically client-side code that has
incredibly sophisticated data architecture, and server-side code that's
focused on responding to events with presentation logic. The most employable
people now have strong fundamentals. The worst solutions I see are generally
from the "when all you have is a hammer" kind of devs.

So if you're looking at specific en-vogue techs that help with that, I'd say
TypeScript is leading the charge right now. Apollo is also good, since Apollo
shops will love you, people with any graphql will still see it as an asset,
and basically everyone cares about web services in general.

------
sifer
I personally feel that Python engineers will always have jobs in some context.
For backend webdev, obviously Python and Node are some web-app leaders. I've
heard of a few Go jobs, but not too many. I wouldn't get too caught up in the
frameworks part (Django, Flask, Hapi, React, etc). The framework is just the
tool used to implement the concept, not the concept per se. Make sure you're
familiar with the _concepts_ and any job worth having won't necessarily care
_too_ much if you're a pro at the language/framework (that can easily be
picked up in a few weeks on the job).

------
bibabaloo
Don't discount your C#/.NET experience. Anecdotally, .NET has had a bit of an
uptick with .NET core being released.

~~~
jkoudys
I say this as someone who loathes .net: learning .net is a really good idea.
If you're looking purely at making a decision based on the labour market, I
doubt you'll find a bigger demand relative to supply, and among typically well
funded and stable companies.

~~~
quickthrower2
I’ve been doing .NET since 02 and very happy with the language and ecosystem
and job opportunities. However nowadays a lot happens in JS land but with
Typescript I enjoy programming there too. .Net + Typescript is a great combo.

------
scalesolved
It really depends on where you are based and if you are wanting remote or not?

If you're in a major metro area like NYC/SF/London etc then I'd suggest
Java/Scala/C++. If you want remote then JS seems to have the most
opportunities going.

------
jitendrac
In my opinion you should stick to the matured technologies, here is what i use
1)php for web. Framework if any used, depends on project 2)python or php for
scripting 3)mysql/postgres for db

In real I experiment a lot with my side projects. I develope android apps,
build linux desktop apps in c++, make js micro-utilities,built a unity3d game,
write wordpress plugins and list goes on. But when it comes to solid sel3ction
I prefer matured tech, they are well documented; major bugs are already solved
and edge cases are well defined by community.

Tldr; Use mature tech for main work. Experiment others on side

------
badrabbit
COBOL

