A Brief Exploration of Country Difference Based on Stack Overflow Developer Survey 2018

Alan Po-Ching Yang
6 min readApr 13, 2019

--

Photo by Christine Roy on Unsplash

As a multilingual software developer, I am always wondering how the job would be like if I start working in another country. More specifically, what programming languages I’d be using, how much I would get paid, and how satisfied I’d feel living life there.

The promising answers to those questions might be found through an exploration of Stack Overflow’s Developer Survey for 2018. The survey includes more than 100 questions and about ten thousands of respondents from all over the world. I downloaded the data from Stack Overflow and perform data wrangling and analysis to discover some insights. Here is what I found.

The relative popularity of programming languages, frameworks, and platforms

To be a highly competitive candidate in the local job market, I believe that having the right skills is a key factor. Two or more years of professional experience of on-demand programming languages or frameworks on the resume could increase the chances of getting a job interview.

So the question now is, what languages or frameworks are suitable choices for a certain country or area? To answer this question, I count the language, framework and platform usage based on each country/area. And for easy visualize the relative prevalence of those technologies, I only compare the countries/areas around Taiwan (where I live and work), plus the United States. Below is the list I used for this analysis:

  1. Taiwan
  2. Japan
  3. South Korea
  4. China
  5. Singapore
  6. Hong Kong
  7. United States

Programming Languages

The following table displays the relative popularity of various programming languages. The numbers in the table indicate the differences in language use of a country relative to the entire dataset. For example, the percentage of developers in China who use C language is about 2% higher than the world average. This can be observed from the cell of column 1(China) and row 3(C) in the following table.

Relative language adoption rate of each country

From this table, we can find many interesting facts regarding language usage and it would serve as a reference if I want to move to another country and continue to work as a software developer. For instance, according to this table, if I were to land a job in Japan in the future, I’d better learn Ruby or Objective-C to increase my chances of getting an interview. Likewise, I might need to know Python or Java if I were to go to China and learn C or Java if I were to go to South Korea.

Frameworks

Framework prevalence seems to have some correlation with programming languages. For example, in the countries where Java is a major language in use, the Spring framework has high adoption rates. Likewise, C# and .NET core seem to have a correlation as well.

In the data science context, a substantial more portion of developers in Singapore use Big Data tools such as Hadoop and Spark, and developers in China, Japan, and Taiwan seem to focus on AI applications or algorithms based on the Tensorflow usage.

The relative framework adoption rate of each country

Platforms

Platform adoption reveals some interesting trend as well. The largest cloud providers, according to ZDNet’s article, are AWS, Azure, Google Cloud, and IBM cloud. In the table below, China seems to have lower adoption rates of all the cloud providers mentioned above. This might imply that either China has a lower cloud adoption rate or it mainly adopts domestic cloud providers such as Alibaba Cloud, which is not shown in the table.

The relative platform adoption rate of each country

In the mobile section, South Korea has a relatively high adoption rate of Android platform. This may due to the fact that local mobile manufacturers there such as Samsung and LG sell Android-based devices. On the other hand, Japan’s Mac OS and iOS adoption rates are higher than the entire dataset, implying that the Japanese may have a preference for Apple’s electronic devices.

Salaries and costs of living

After gaining some understanding of country preference of various technologies, let’s explore the economic ease of working and living in a specific country.

Below is a chart showing median converted salaries and cost of living and rent for the selected countries(top 10 Stack Overflow users’ countries and countries near Taiwan). The cost of living and rent indexes are calculated based on the New York city’s living prices and rent, provided by NUMBEO.

Median converted salary and living cost of selected countries

Generally speaking, salaries of software developers are higher in countries with higher costs of living, but there are some deviations from this correlation. First, countries such as Singapore, Hong Kong, and Taiwan have lower salary levels compared to countries with similar or even smaller costs of living. In contrast, the United States and Australia have significantly higher salaries compared to Japan and the Netherlands, which have similar costs of living. Note that there are countries with sample sizes less than 100. For further improving the estimation, more reports on the salary might be required.

Most important factors for Job Satisfaction

The final aspect I want to explore is the factors that affect job satisfaction. To simplify the analysis, I use only the following features for modeling.

  • Country
  • Years of Coding (overall and professional)
  • Company Size
  • Salary
  • Communication Tools
  • Technologies Used (languages, frameworks, platforms)
  • Methodologies

A way to decide which factors are more important is to fit a model using the above features (Country, Years of Coding, etc.) and the target values (Job Satisfaction), and then examine the model parameters for more insight. Here I use a library called feature_selector, which behind the scene utilizing the LightGBM (a tree-based model), to determine the relative feature importance for job satisfaction. A blog post on how to use this package can be found here.

Below is the results of the top 15 importance features for job satisfaction. Surprisingly, salary is indeed the dominating factor for job satisfaction. I was expecting this would be one of the key features but not so dominating as the results shown here.

The professional and total programming years occupy the second and third places, indicating that longer experiences are related to more satisfied developers. Then the fourth factor, working in a large corporation, seems to have positive influences on job satisfaction.

The list goes on and on. Other factors like countries, operating systems, or tools might have subtle influences on job satisfaction, but not very strong.

Conclusions

Different countries have different technology preferences and this should be an important aspect to consider if you want to work as a software developer in another country.

In the meantime, salaries vary from country to country. However, choosing a place to work is not only about salaries. We should also consider the cost of living and rent. There are countries that have salary levels higher than average but not so high costs of living.

Finally, the real purpose of life should be the happiness we feel when and live and work. Although salary is indeed the most important factor of higher job satisfaction, we might want to choose a larger company or a happier country to work at.

Technical Details

The code for this analysis can be found in my GitHub repository.

--

--

Alan Po-Ching Yang
Alan Po-Ching Yang

Written by Alan Po-Ching Yang

As a software engineer in a semiconductor company, I develop web applications that link to machines, perform data analysis internally and for customers.

No responses yet