What is satisfaction for a programmer?
Analyzing Stack Overflow’s annual Developer Surveys
For this research I’ve used data sets from the following years: 2017, 2018, 2019 and 2020. How it’s made.
Let’s start our exploration from the 2017 data set as it has an interesting question that can’t be found in the next years’ surveys: “Compared to your estimate of your own market value, do you think you are…?”.

Left bar chart is showing absolute number of developers in each salary segment and their feeling about being overpaid. Right bar chart is showing overpaid feeling stretched out, taking it’s own total number of developers as 100% in each series.
It is not a secret that underpaid feeling is the greatest among developers with lower salaries. The most interesting thing is the curve of how this feeling is decreasing while salary is approaching the top values.
Exploration of 2017 year data set gives us this info:
Can see the steps on the percentage scale up to 35,000, then from 35,001 to 55,000, then from 55,001 to 75,000, then it’s sliding down (crossing 50% underpaid feeling mark and 10% overpaid feeling mark) until next step at from 110,001 to 170,000.
Underpaid feeling break points (in USD) are: 35,000, 55,000, 75,000, 110,000.
Overpaid feeling break points (in USD) are: 55,000, 85,000, 110,000
Stack Overflow's annual Developer survey data, 2017:
Salary % of Developers Percentile
0-15k 16.383523 16.383523
15-25k 7.532387 23.915910
25-35k 9.456210 33.372120
35-45k 10.837018 44.209138
45-55k 11.558452 55.767590
55-65k 9.937165 65.704755
65-75k 6.950586 72.655341
75-85k 5.538748 78.194089
85-95k 4.856101 83.050190
95-110k 6.136064 89.186254
110-130k 5.593049 94.779303
130-150k 3.180514 97.959817
150-170k 1.303235 99.263052
170-190k 0.651617 99.914669
200k+ 0.085331 100.000000The biggest cluster is ~16% of all programmers have up to 15,000 USD salary.
Half or 50% (50th percentile) of all developers have salary at least 50,000 USD.
Only the top ~11% programmers earn up from 110,001 USD.
Salary that starts from 150,001 USD is rare that have only ~1.3% of all developers.
Exploring Language* by Job and Career Satisfaction
*Which programming, scripting, and markup languages have you done extensive development work in over the past year, and which do you want to work in over the next year?
The main part of this article is the analysis of correlation between language (or its popularity) and satisfaction. There are 2 similar questions named “Job Satisfaction” and “Career Satisfaction”, except for 2020 year survey, there is only the “Job Satisfaction”. So I will focus on it.
Programming languages by job satisfaction in 2017

Looking at the absolute values bar chart we can clearly see:
The most popular language in 2017 was JavaScript. The most satisfying language in 2017 was JavaScript.
But it’s hard to compare satisfaction of the languages on the absolute values scale. For the best comparison will use percentage scale: every language’s satisfaction category will be divided by it’s own total. On the percentage scale charts languages are sorted by net total satisfaction* ascending.
*Net Satisfaction = (Extremely satisfied + Moderately satisfied + Slightly satisfied) — (Slightly dissatisfied + Moderately dissatisfied + Extremely dissatisfied)
The percentage values bar chart tell us:
The least unsatisfying (or the best ratio of satisfaction to unsatisfaction) language in 2017 was Smalltalk.
There is no strong evidence that popular languages have the most satisfaction. Seems like unpopular languages tend to be more satisfying.
This needs to be explored further.

Top 10 popular languages’ satisfaction trend confirms this theory. So now we need to take a look at the whole list of languages. The most popular language value is 100% and I’m using 20% popularity threshold to split languages for 2 categories: unpopular (≤20%) and popular (>20%).


Language satisfaction values are ranging from 55 to 77Pearson correlation coefficients (Rs):
blue: 0.492
red: 0.517
overall: 0.116SpearmanrResults:
blue: correlation=0.536, pvalue=0.0039
red: correlation=0.452, pvalue=0.2604
overall: correlation=0.362, pvalue=0.0325
The blue line’s incline will be closer to the gray line’s angle if we keep moving the threshold of popularity from the left to the right.
Coefficient of the regression line of the unpopular languages sample is 0.64 while coefficient of popular languages is only 0.03 and coefficient of the whole population is 0.02. The more popular language becomes the less satisfaction programmers get from it.
The median value of satisfaction in unpopular languages is higher than in popular languages: 65.73 vs 64.19.
There is a moderate positive linear correlation between unpopular programming languages and their satisfaction in 2017 year data with correlation coefficient of ~0.50 and p-value of ~0.004.
There is a moderate positive linear correlation between popular programming languages and their satisfaction in 2017 year data with correlation coefficient of ~0.45 and p-value of ~0.26. But such high p-value is insignificant to states about correlation since this distribution could be due to a chance with 26% chance.
There is a weak correlation between overall languages and satisfaction with correlation coefficient of ~0.36 and p-value of ~0.033 in the data.
Programming languages by job satisfaction in 2018

The most popular language in 2018 was JavaScript. The most satisfying language in 2018 was JavaScript. The least unsatisfying (or the best ratio of satisfaction to unsatisfaction) language in 2018 was Groovy.

Top 10 popular programming languages in 2018 year survey data are perfectly lined up on the regression line with the slope 0. This means there is no difference in satisfaction between more or less popular languages. Let’s inspect the chart of the whole data.


Language satisfaction values are ranging from 34 to 50Pearson correlation coefficients (Rs):
blue: 0.604
red: -0.124
overall: 0.159SpearmanrResults:
blue: correlation=0.606, pvalue=0.001
red: correlation=0.0, pvalue=1.0
overall: correlation=0.319, pvalue=0.0507
An interesting observation in popular languages as Spearman’s analysis is saying that there is no correlation and this distribution is 100% due to a chance.
Coefficient of the regression line of the unpopular languages sample is 0.64 while coefficient of popular languages is -0.01 and coefficient of the whole population is 0.02. The more popular language becomes the less satisfaction programmers get from it.
The median value of satisfaction in unpopular languages is much lower than in popular languages: 42.19 vs 47.36.
There is a moderate positive linear correlation between unpopular programming languages and their satisfaction in 2018 year data with correlation coefficient of ~0.61 and p-value of ~0.001.
There is no correlation between popular programming languages and their satisfaction.
There is a weak correlation between overall languages and satisfaction with correlation coefficient of ~0.32 and p-value of ~0.051 in the data.
Programming languages by job satisfaction in 2019

The most popular language in 2019 was JavaScript. The most satisfying language in 2019 was JavaScript. The least unsatisfying (or the best ratio of satisfaction to unsatisfaction) language in 2019 was Ruby.

Top 10 popular programming languages in 2019 year survey data are perfectly lined up on the regression line with the slope 0. This means there is no difference in satisfaction between more or less popular languages. Let’s inspect the chart of the whole data.


Language satisfaction values are ranging from 37 to 49Pearson correlation coefficients (Rs):
blue: 0.401
red: 0.026
overall: -0.115SpearmanrResults:
blue: correlation=0.404, pvalue=0.1073
red: correlation=0.127, pvalue=0.7092
overall: correlation=0.002, pvalue=0.9911
An interesting observation in popular languages as Spearman’s analysis is saying that there is no correlation and this distribution is 71% due to a chance. And the distribution in overall languages is 99% due to a chance.
Coefficient of the regression line of the unpopular languages sample is 0.32 while coefficient of the whole population is -0.01. The more popular language becomes the less satisfaction programmers get from it.
The median value of satisfaction in unpopular languages is much lower than in popular languages: 42.19 vs 47.36.
There is no correlation between unpopular programming languages and their satisfaction in 2019 year data with correlation coefficient of ~0.40 and p-value of ~0.11. The high p-value of ~11% indicates strong evidence for the null hypothesis that there is no correlation.
There is no correlation between popular programming languages and their satisfaction.
There is no correlation between overall languages and satisfaction in the data.
Programming languages by job satisfaction in 2020

The most popular language in 2020 was JavaScript. The most satisfying language in 2020 was JavaScript. The least unsatisfying (or the best ratio of satisfaction to unsatisfaction) language in 2020 was R.

Top 10 popular programming languages in 2020 year survey data are lined up on the regression line with the slope -0.01. This means there is no difference in satisfaction between more or less popular languages. Let’s inspect the chart of the whole data.

Language satisfaction values are ranging from 36 to 46Pearson correlation coefficients (Rs):
blue: -0.061
red: -0.041
overall: -0.176SpearmanrResults:
blue: correlation=-0.081, pvalue=0.7822
red: correlation=-0.036, pvalue=0.9154
overall: correlation=-0.199, pvalue=0.3396

Coefficient of the regression line of the unpopular languages sample is -0.05 while coefficient of the whole population is -0.01.
The median value of satisfaction in unpopular languages is much lower than in popular languages: 40.38 vs 40.63.
There is no linear correlation between programming languages and their satisfaction in 2020 year data. The high p-values indicate strong evidence for the null hypothesis that there is no correlation.
Programming languages by job satisfaction in 2020 to 2017

We can observe the fact that in 2017 overall satisfaction of the programming languages was much higher than in 2020.

We can observe the fact that in 2018 overall satisfaction of the programming languages was higher than in 2020.

We can observe the fact that in 2019 overall satisfaction of the programming languages was a little higher than in 2020. A falling trend in satisfaction occurs not only in popular languages but in whole.
Conclusion
Even that JavaScript is the most popular language on the absolute scale we can see that less popular languages such as: Bash/Shell/PowerShell, TypeScript and Python or even least popular such as Groovy, Ruby, R; beat it on the percentage scale of satisfaction.
Still JavaScript is the most popular and the most satisfying programming language in the analysis of 2017, 2018, 2019 and 2020 years surveys data.
Based on this research I can’t confirm that there is a strong correlation between language popularity and its satisfaction since correlation was found in 2017 and 2018 but was not in 2019 and 2020. This means all the programming languages have equal chances and it is up to you to decide which language next will be the most popular and/or the most satisfying.
What is your most satisfying programming language?







