
Ask HN: How would you choose which language to learn? - tvanantwerp
I was looking at a list of how popular different languages are on GitHub, and it got me thinking.<p>If I wanted to learn a new language to expand future opportunities, does it make more sense to focus on: A) the most popular ones because there will be lots of positions for it, or B) less popular ones where there will be fewer jobs but also less competition for those jobs. I think it may just come down to preference, but I&#x27;m curious which paths you&#x27;ve chosen yourselves and how it turned out.
======
AnimalMuppet
Let me ask the question a different way: What do you need to be learning now
for the next five years of your career?

That may not be a language. That may be a programming style (functional?
reactive?). It may be a library or a framework. It may be a platform
(Android?). It may be a "language" that we don't think of as a language
(SQL?).

My current answer is Android (not that I'm making much progress on it...)

Credit where due: I got my version of the question from my wife. She's asked
it a couple of times over my career.

------
dudul
I usually favor B)

First, as you point out, less competition.

Second, these languages are usually a little younger, and there is a chance to
be part of a nice community from the beginning

Third, learning an "exotic" language is sometimes a great asset on a resume
even if you interview for a position involving a different technology. It
shows intellectual curiosity.

------
milkytron
If time allows, I'd prefer both. If you have an arsenal of popular languages
and unpopular languages (assuming you are sufficiently skilled in them), it
will give you a leg up over the competition that knows fewer.

But as the other comment states, B tends to be more exciting, and allows for
deeper social connections more frequently. Sure, millions of people might know
java and you can say, "Hey I know java too!" But I doubt the conversation will
go any further than that. However, if you have experience with a less popular
language and meet (or are interviewed by) someone that also knows that
language, it will create a much deeper connection.

All in all, do both if you can. If you have to choose one or the other, learn
something new and become a part of a smaller community and watch it rise or
fall.

------
tboyd47
I would consider your own personal preferences over purely economic concerns.
How does the language "feel" to you? Does the community inspire you?

But if you want to look at it from a purely economic standpoint, the factors
you mentioned interact in a complex way. Another one to consider is the salary
curve for a language over years of experience. Not every language has the same
pay. I would also consider the number of entry-level jobs over the total
number of jobs.

I have an article exploring all these factors here if you're interested.[1]
Enjoy!

[1]: [https://medium.com/@tboyd/which-language-should-i-learn-
answ...](https://medium.com/@tboyd/which-language-should-i-learn-answering-
with-real-market-data-e453346a387e)

------
itamarst
There's also just whether you have the time to learn it. It's easier to find
time and motivation (and maybe even support from your boss to learn it on work
hours) to learn something that's tied to your job in some way:
[https://codewithoutrules.com/2016/04/27/which-
technology/](https://codewithoutrules.com/2016/04/27/which-technology/)

------
tedmiston
Focusing on one of the most popular languages on GitHub (see the annual top 10
list etc) is a good approach, especially if you don't have tons of industry
experience. Once you have that foundation I think it's easier to choose
general or specific. I've done a little bit of both but mostly generalist most
experienced in Python.

If you're going to focus on a specific language, make sure you're applying it
to a problem where it makes sense.

------
ohgh1ieD
Both, knowing Java/C++/C# opens doors but exotic languages keep them open.

