China tops list of best programming nations

A new study has given insight into the world’s developers and how they score in various software development aspects. According to HackerRank‘s data, which includes over 1.5 million users, China and Russia score as having the most talented developers. The developers are scored based on a combination of skill and speed. Chinese programmers outscore all other countries in mathematics, functional programming, and data structures challenges, while Russians dominate in algorithms, the most popular and most competitive arena. Although the United States and India provide the majority of competitors on HackerRank, they only manage to rank 28th and 31st.

The folks at HackerRank looked at each country’s average score (50 countries in total) across the following 15 domains: Algorithms, Java, Data Structures, C++, Tutorials, Mathematics, Python, SQL, Shell, Artificial Intelligence, Functional Programming, Databases, Ruby, Distributed Systems, and Security. They then standardized the scores for each domain (by subtracting the mean from each score and then dividing by the standard deviation; also known as a z-score) before finding the average. They then converted these z-scores into a 1-100 scale for easy interpretation.

Below is the top 20:

  1. China – 100
  2. Russia – 99.9
  3. Poland – 98.0
  4. Switzerland – 97.9
  5. Hungary – 93.9
  6. Japan – 92.1
  7. Taiwan – 91.2
  8. France – 91.2
  9. Czech Republic – 90.7
  10. Italy – 90.2
  11. Ukraine – 88.7
  12. Bulgaria – 88.2
  13. Singapore – 87.1
  14. Germany – 84.3
  15. Finland – 84.3
  16. Belgium – 84.1
  17. Hong Kong – 83.6
  18. Spain – 83.4
  19. Australia – 83.2
  20. Romania – 81.9

Do you notice anything that most of these countries have in common? They are almost all non-English speaking countries! Astounding. Singapore (13th place) has four official languages, English, Malay, Mandarin and Tamil, but English is the language of instruction in all public schools. Hong Kong (17th place) has English and Chinese as official languages and English is used varyingly in education. Australia (19th place) is the highest-ranked country where English is the only national language.

The big shock here is that the US is ranked 28th with a score of 78.0, and India ranks 31st with a score of 76. Also, the UK is 29th with a score of 77.7. That’s right. According to HackerRank, the homeland of Don Knuth, Stanford, MIT, etc. is 28th in the world in terms of software development. By the way, the US and India also provide the largest numbers of developers on HackerRank – and they don’t feature in the top 5 of any of the 15 domains tested.

At this point I should give a nod to Ireland, placing 5th in Artificial Intelligence, and 32nd overall with a score of 75.9.

China also topped the list in three domains: mathematics, functional programming, and data structures, and were in the top 5 in seven domains. China is also the second-least likely country to choose Java, next to Taiwan. China also has the largest proportion of developers focusing on Python.

I find the following results particularly astonishing:

  1. The US is ranked 28th
  2. India is ranked 31st
  3. All but three of the top 20 are non-English speaking countries

This is related to my interest in non-native English speakers learning computer science, which will be the topic of an upcoming post, and is the topic of one of Mark Guzdial’s recent posts.

See HackerRank’s blog post here for more.

HackerRank is a California based company that ranks programmers based on their coding skills and helps connect those programmers to employers.


One thought on “China tops list of best programming nations

Leave a Comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s