Ask HN: What languages / frameworks to learn now to become more employable

I'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.

The problem is, it's a pain having such fragmented experience. I don'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't even have a PC running Windows at home anymore.

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'm wanting to learn tech that will get me a job I will enjoy more, but I have no idea what's best to invest in. My jobs have typically been full stack, but I'm more comfortable on the backend. I'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'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.

What new(ish) tech would you recommend to learn, that will be valuable to employment at least in the short term?

16 points | by non-entity 1707 days ago

11 comments

  • hellwd 1707 days ago
    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 1706 days ago
      + agree with F#, good place to go after C#
  • HissingMachine 1707 days ago
    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 1706 days ago
    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 1706 days ago
      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 1706 days ago
    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 1707 days ago
    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 1707 days ago
      > 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 1707 days ago
    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 1707 days ago
    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 1707 days ago
    Don't discount your C#/.NET experience. Anecdotally, .NET has had a bit of an uptick with .NET core being released.
    • jkoudys 1707 days ago
      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 1707 days ago
        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.
    • non-entity 1707 days ago
      I dont neccesarily discount it, but I dont have any .net core or Azure experience significantly and it seems any half decent job is using those. Also I'm kinda sick of windows, but thats not something overly important job wise
  • scalesolved 1707 days ago
    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 1706 days ago
    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 1707 days ago
    COBOL