The field of computing has developed incredibly rapidly over the past decade, with hot new startups, frameworks and languages seemingly coming and going all the time. But with all these exciting changes, perhaps we should take a step back for a second and have a look at how the life of a developer has changed over this same time period. Here we look at aspects encompassing satisfaction at work, job preferences, occupation diversity, and how details like these are related to salaries.
Luckily, we have a great trove of information in the Stack Overflow Annual Developer Survey, which has been conducted since 2011. The latest took place in early 2020 (i.e. pre COVID-19), where 65,000 developers participated in the 20 minute survey, making it an unparalleled source of information about the field.
To investigate possible changes, common questions across these annual surveys have been combined into a single dataset, which is not quite as easy as it might sound. The types of questions, the way they are asked, and even how they can be answered change each year. If you’re interested you can check out the details of the conditioning.
Highlights of an exploratory analysis of this new dataset are presented here. The analysis was performed primarily using python with pandas and a bit of scikit-learn. The scope is purposly kept broad in order to cover some potentially interesting trends that could spark more in-depth investigations.
So, what’s changed since 2011?
Were developers more satisfied with their jobs in 2011 or 2020?
Job satisfaction is a good, if indirect, of gauging how a field or occupation is developing. So it really does seem like developers are becoming less positive about their work place as time goes on. At the same time, the proportion of those very positive about work has remained more constant in recent years. It’s also interesting to see that few respondents remain neutral — work is more than just a paycheck for most. Put together, it does seems like the field is becoming more polarised.
We do have to be a bit careful with the takeaways from this data. Satisfaction can of course be affected by general events that affect all of us outside of work (eg. politics). And the style of question can also have an effect — the most negative option in 2011 was “FML”, which has a slightly different connotation to “very dissatisfied” in 2019.
We can have a look at which occupations have shown the biggest changes in satisfaction by comparing two years, here 2020 and 2015. The loser, as it were, is definitely mobile developers, although the decrease in positive responses is across the board.
Preferred Operating System
Does everyone use Windows?
A question about preferred operating system has been included in every survey, excluding 2017. The question is not benign as it may first seem — changing your operating system takes time and effort. Changes then are likely linked to the evolving requirements of the field.
As such, the clear decrease in Windows usage, offset by the equal increases in Linux and MacOS usage, is a very interesting trend.
Many of the recent exciting developments in the field have revolved around cross-platform solutions. It then makes sense then that Microsoft has been improving it’s cross-platform developer tools to stem the flow.
In contrast, one can look at Steam’s Hardware Survey to see that Windows continues to dominate the PC gaming market with over 95%.
How have the traditional fields changed, and what has emerged?
Let’s focus a bit more on occupations now. Below the distribution of occupations relative to the total number of responses is plotted. This isn’t exactly correct, as respondents could select more than one option, but it still reveals how developers have spend their time over the years.
Here we can see how the survey itself has matured as the survey designers introduce additional a wider range of selectable occupations over time. But even taking this into account the field has clearly diversified over time (note how the other option disappears after 2018).
The decrease in desktop development aligns with the increasing dominance of web/cloud based services and solutions. We also see how the survey designers felt it was necessary to divide web developers into front- and back-end fields. Also note how the the proportion of full-stack developers has been decreasing, which perhaps suggests a maturing of the field with a clearer separation between the roles.
At the same time, what surprised me was how the proportion of mobile developers has also slightly decreased since 2011, even as the number of smartphone users has continued to increase.
Let’s also have a look at a few select occupations associated with data science. It’s clear that field exploded after 2015, but notably there are already signs of levelling off in 2020. It will be interesting to see how the 2021 results look.
We can also use the fact that respondents could select multiple options to identify the top occupations associated with data science. The strongest crossover is Back-end web developers, which makes sense (think Airbnb).
Is any of this related to salary?
Statistically speaking, does money bring happiness?
Perhaps you might want to use this dataset to implement some sort of machine learning algorithm to relate the survey question variables with the respondent salary as the target. One of the first things we should check is how everything is correlated, which can be done with a correlation matrix. A few arrows have been included to point at some interesting correlations.
So yes, a larger salary is correlated with a positive job satisfaction.
Beyond this, age and years of coding experience (i.e. experience in the field) correlate most strongly with salary, as one might expect. The strong correlation between those who have contributed to open source projects (education_open-source) and salary is also quite interesting. A common recommendation is to establish your credentials through open source contributions. Statistics seem to back this recommendation.
There’s no mystery why being a student shows a strong negative correlation with salary. Less clear is why mobile developers are, once again, the losers here. Perhaps this could be related to the drop in satisfaction that we observed above.
Finally, note that formal university education (bachelors, masters and doctoral) correlates rather positively. So if you’re going to take anything away from this short informal investigation: A good education is important!
Do these trends identified track with your own experiences in the field?
This exploratory analysis is rather broad and I’m sure you’ve found other possibilities in this dataset. Feel free to explore — the project has been published on Github.