Stackoverflow Dev Survey

Which Programming Languages Should Devs have in their Toolkits?

In the software developer space, questions like “which programming languages should I learn?” commonly run through candidates’ minds. They…

In the software developer space, questions like “which programming languages should I learn?” commonly run through candidates’ minds. They have reflections in questions by employers like “which language skills will be easier to find over the next few years?”

“Which languages do I need to know if I want to be a data scientist?” are reflected back by employers in the form “what languages should my new hires know, if I need data scientists?”

A candidate wondering feverishly how to tool their self to attract employer attention has a counterpart in an employer wondering just as feverishly what they should be looking for in candidates to keep their businesses successful.

I work in Talent Acquisition, so naturally my professional interest guides me toward problems like these: problems faced by job candidates and employers, alike.

Motivation

With the set of analyses I’ll detail, here, I wanted to answer three questions like those above, specifically contrasting the United States developer pool with that of India.

  1. How many languages do developers of different types tend to know in each country? Is one country more specialized than the other?
  2. Which languages became more popular in each country between 2018 and 2020? Does this provide any hints into what kinds of work are being prioritized in the two countries?
  3. Is common intent to learn a language indicative of a language’s imminent increase in popularity? Can we take common desire to learn a language as a sign of near-term increases in talent availability in the two countries?

Why those two countries? Professional curiosity. I’m routinely on projects staffed by developers in both of those countries. And I find myself wondering if and how dev culture differs between the two. Consider this a step on the path through that journey of discovery :)

I used Stackoverflow’s annual developer surveys to take this step. In particular, I used their survey results from 2018 and 2020.

Findings

Question 1: How many languages do developers of different types know in each country?

To answer this question, I broke our US and India respondent pools down into their self proclaimed “developer types.”

A “developer type” as called out by Stackoverflow is effectively a generalized job title. “Academic researcher” or “front-end developer” or “database administrator,” for instance.

I contrasted the median counts of languages known by developers of each type in each country.

In both countries, the median developer knows 5 languages. The countries differ on how the different dev types contrast with that median.

In the US, most dev types share their median with the country’s population. The outlier dev types tend to know 1–2 more languages. Interestingly, these outliers include general or managerial roles like “database admin,” “engineering manager,” “product manager” and “senior VP.”

Counts of languages known by developers in the US, 2020 (n = 9,264)

In India, as it is with the US, most dev types share their median with the country’s population. Devs of most types know 5 languages. What’s interesting is that the outliers in India have medians below the country’s median.

The outliers know 3–4 languages. They include front-end, back-end and mobile developers. Perhaps coincidentally, these fields are great fits for early-career and entrepreneurial candidates.

Counts of languages known by developers in India, 2020 (n = 4,670)

In further research, I’d wonder if and how that difference between the US and India is significant.

Question 2: Which languages became more popular in each region between 2018 and 2020?

Answering this question meant extracting counts of candidates from the 2018 and 2020 survey datasets and then contrasting those counts. I analyzed candidate counts by language used at work to figure out which languages were the popular ones in each year.

Languages with popularity changing by 3 percentage points or more between the years were considered “significant-change languages.” Significant increases are colored blue in plots below, while significant decreases are colored orange.

In the US, the significant-increase languages are mostly (relatively) abstract and democratic. Languages like Python, Typescript and (arguably but not to start a war or anything) Rust. Meanwhile, the significant-decrease languages are mostly more esoteric. Languages like JavaScript, Java, PHP and Objective-C.

Languages used by at least 10% of US respondents in 2020 (n = 27,321)

India also saw significant increases in democratic languages like Python and Typescript. What differentiates India from the US is that most of the esoteric languages held strong. Just look at JavaScript, C++ and C actually seeing minor increases in popularity!

Languages used by at least 10% of developers in India, 2020 (n = 15,455)

There’s something else interesting about India’s data. Let’s look at languages used by fewer than 10% of respondents:

Languages used by fewer than 10% of developers in India, 2020 (n = 15,455)

That sharp increase in popularity for Kotlin is not mirrored in the US’s data! If you’re familiar with Kotlin, you know it’s positioned as a Java alternative. While both countries are seeing popularity decrease for Java, that might in India simply be because developers are transitioning to Kotlin!

At this level, it looks like esoteric languages are slowly falling from popularity in the US, while they’re staying strong in India. Meanwhile, democratic and (relatively) abstract languages are gaining in popularity in both countries.

Question 3: Is common intent to learn a language suggestive of an imminent increase in popularity for the language?

If you’re an employer, this may tell you which talent markets might be softening over the coming years (easier to find candidates).

Candidates, on the other hand, could look to an insight like this for inspiration into the next language they should learn.

Here, I found languages that appeared in respondents’ lists of languages they intended to learn in 2018 but did not appear in their lists of languages already known.

So, I captured desire to learn new languages in 2018 and then checked to see if those languages were known at higher rates in 2020.

The answer I got from investigating this question is pretty cool. Especially since respondent pools were filled with different people, each time. It’s not like I asked you which languages you want to learn and then checked back with you again in three years to see if you learned it. Instead, it’s like I asked my classmates which languages they wanted to learn and then asked the class three years from now if they now know it.

There’s a coincidence between the answer to this question and the answer to question 2. I color-coded this plot in the same way as the slope charts above, for easy comparison. Blue bars are languages that saw significant increases in popularity 2018–2020. Orange bars saw significant decreases in popularity.

In the US, the most commonly sought language skills by devs in 2018 were Python, Rust, Typescript and Go. Three of those saw significant increases in popularity by 2020!

Languages most commonly desired by devs in 2018, US (n = 11,448)

In India, Python, Kotlin, Go, R and Typescript were the most sought-after language skills in 2018. And wouldn’t you know it, three of them saw significant popularity increases by 2020!

Languages most commonly desired by devs in 2018, India (n = 6,157)

Notice that all of the significant increases happened to languages with more than 10% “desire to learn” in 2018. However, not every language with greater than 10% actually saw increases. So, back in 2018 these insights could have been useful to predict rises in popularity like this:

“In the US, we’ll probably see one or more of these languages get significantly more popular in the coming years: Typescript, Python, Rust, Go.”

“In India, we’ll probably see one or more of these languages get significantly more popular in the coming years: Typescript, R, Python, Kotlin, Go.”

We can keep our eyes on those languages or even consult qualitative sources like Reddit, Stackoverflow, LinkedIn or water-cooler discussions to narrow down our suspects further.

Conclusions

Both countries seem to share a lot in common where the broad strokes are considered:

  1. Median number of languages known by devs is 5
  2. Democratic programming languages like Python and Typescript are increasing in popularity
  3. Common expression of desire to learn a language can forecast an increase in popularity for the language

The nuances are where the countries differ:

  1. Outlier dev types in the US know more than 5 languages and occupy managerial or generalist roles. Outliers in India know fewer than 5 languages and occupy individual contributor and specialist roles.
  2. The US is seeing a shift to democratic languages from esoteric languages, while India is seeing adoption of democratic languages while esoteric languages stay strong.
  3. Over the past three years, a special interest in Rust among US respondents is matched by a special interest in Kotlin among India respondents.

What’s Next?

I’m sure by now you have your own idea of where these insights can take you. If you’re interested in two cents for your piggy bank, however, here’s what I think:

Candidates: If you’re in the US and don’t know much about Rust, look into it. Likewise, if you’re in India and don’t know much about Kotlin, look into it.

Everyone would likely benefit if they avoid sleeping on the democratic languages. There appears to be a lot of utility there, even if flexibility and (according to some) stability decrease.

It doesn’t seem like many roles out there will require you to know more than 5 languages.

Employers: A candidate who knows more than 5 languages is what you might call “especially well-read” in the developer space.

Esoteric languages appear to be staying strong in India, while US developers are shifting to more democratic languages.

If you want to understand which language skills will be easier to find in a country soon, consider investigating Stackoverflow’s survey for its “LanguageDesireNextYear” field. It’s pretty insightful.

Data and Repository for Your Exploring Pleasure

Explore the data on your own, if you like! Using my code at my github repository, you can investigate other countries or apply different analytical techniques to learn something I didn’t.

(If you do learn something new, I’d love it if you’d post your thoughts in the comment section, below. It would be fun to discuss insights and learn more from one another!)