Ask HN: How would you choose which language to learn?

8 points by tvanantwerp ↗ HN
I was looking at a list of how popular different languages are on GitHub, and it got me thinking.

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'm curious which paths you've chosen yourselves and how it turned out.

7 comments

[ 2.9 ms ] story [ 23.0 ms ] thread
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.

Both, knowing Java/C++/C# opens doors but exotic languages keep them open.
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.

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

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.

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.