How do you pick a new language to learn?

I am a C# developer and at work I work on desktop apps and legacy web services etc.

I fancy learning something else so I can have a bit of variety when working on personal projects etc.

I am doing a distance learning degree which has used Java and Python so far, with some PHP and JS etc to come later.

I’m drawn to Ruby as I already have experience there, but I was also thinking about looking at Node as that covers back end and front end all using JS which is definitely useful in general as I look at moving to a more web based role.

  • 1
    Start with initial letters J and P. Then pick any language that doesn't start with those, or maybe Python.
  • 4
    I pick a language by necessity or coincidence.


    - I wanted to do some game programming. I picked up C++.

    - I wanted to write a driver. I picked up C.

    - I worked in a company, I picked up: Java, Scala, PHP, JavaScript, Typescript.

    - I work with Linux, I picked up bash scripting.

    - I was taught in a course, I picked up Python, C#, SML

    - I wanted to write a WoW mod, I picked up Lua


    - I saw a talk on Youtube and started learn: F# and Dark.

    And it's funny, coincidence doesn't stick. I tried it for a while. I forgot about it. The others, where I was coerced by circumstance or project, those I still can do in my sleep.
  • 1
    Check out Typescript if you haven't yet. It's a wonderful language because you can write it as basically another Java variant with implicit interface implementation, or you can gradually lay off your OO habits, stop asking "what is it?" and regress to a functional "what does it do?" approach.
  • 0
    I would second your interest in ruby, but JavaScript with Node is going to serve you more in the job market if that's what you are ultimately after.

    To get that full stack feel with Ruby you would need to learn Rails and/or Sinatra with embedded ruby (ERB). Sinatra is closer to Node in that it's not opinionated but Rails is far more powerful and you can have a full stack app up and running within days if not hours.

    Either way your going to need to learn JavaScript. While you go down that road do check out Typescript (JS with types), it'll be more familiar to you with your history. Mind you ruby has types now too but both JS and ruby can be learnt/used in their original weakly typed forms.
  • 0
    @jfgilmore thanks, that’s what I was thinking. I don’t want to solely go off what would be more useful in the job market, but i know there are 0 Ruby/RoR jobs less than 30 miles away.

    My degree, has some PHP and JS etc in my next module, and we go back to Python again for the AI module, so I will get a chance to look at some other stuff as well.

    I think I suffer from wanting to try everything rather than picking a couple of things and getting really good at them.
  • 0
  • 0
    I believe it greatly depends on the job market that you are after. If you want a web role, and you already know C#, why not continue to learn it in the realm of modern web development with .NET Core? even on ASP.NET MVC, you can get pretty far with it and there still are lots of jobs available since not everyone moved into the Core system when it came out.

    In terms of wanting to learn something new for the web, the landscape is big, Node is hot right now, but a lot of us are concerned about the way it deals with dependency management, other do not like JS, personally, I love Javascript, but dislike npm, i don't fault Node, I fault the community.

    Ruby is great, a complete joy to work with, I also appreciate Rails and for web development you can go from idea to prod fast.

    On another note, if you want a more hands on approach: PHP (pure) and Go will teach you more about the web if you build everything yourself.

    Python is also fun, you can do a lot with it.

    imo C# wins tho
  • 0
    @zarathustra I completely understand that, I have learnt a whole bunch over the years but only a few in depth. That said, in depth learning serves you well, once you know the concepts from one language they are transferrable. Just a matter of translation.
  • 0
    This may be biased as I am all in on the Microsoft .NET / C# ecosystem.

    Save yourself and don’t learn JavaScript. It’s the most frustrating language to learn.

    Ruby is a fun language to use however it lacks enough professional adoption and for big applications runs extremely slowly.

    Depending on what you want to do Python is neat esp with data science and machine learning.

    It is also worth checking out modern Java. Oracle has made significant changes to the language and for any developer it’s worth reconsidering the stigma towards it.
  • 1
    @catgirldev What do you hate in JS that isn't also a problem in Ruby?
  • 0
    Thanks for the input.

    I’ve been contemplating looking at C, I’ve had a bit of dabble this week.

    I don’t think it’s necessarily going to help with career progression, but it’s something a bit different that I haven’t done before.
Add Comment