Many would assume it's the United States. After all, the United States is the home of programming language luminaries such as Bill Gates, Ken Thompson, Dennis Ritchie, and Donald Knuth. But then again, India is known as the fastest growing concentration of programmers in the world and the hackers from Russia are apparently pretty effective. Is there any way to determine which country is best?
China and Russia score as the most talented developers. 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. While the United States and India provide the majority of competitors on HackerRank, they only manage to rank 28th and 31st.
The following table shows the proportion of completed tests that come from each domain.
The most popular domain by far is algorithms, with nearly 40% of all developers competing. This domain includes challenges on sorting data, dynamic programming, and searching for keywords and other logic-based tasks. For algorithms tests, developers can use whichever language they choose, which may partially explain why it's so popular. Algorithms are also crucial for coding interviews, so it could explain why more coders would practice algorithm challenges. At a distant second and third, Java and data structures coming in at about 10% each. Distributed systems and security are our least popular tests, though we still receive thousands of completed challenges in those areas.
In order to find out, They looked at each country's average score across all domains and 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. This allows us to make an apples-to-apples comparison of individual scores across different domains, even if some domains are more challenging than others. Then converted these z-scores into a 1-100 scale for easy interpretation.
This data is restricted to the 50 countries with the most developers on HackerRank. Here's what we found:
Since China scored the highest, Chinese developers sit at the top of the list with a score of 100. But China only won by a hair. Russia scored 99.9 out of 100, while Poland and Switzerland round out the top rankings with scores near 98. Pakistan scores only 57.4 out of 100 on the index.
The two countries that contribute the greatest number of developers, India, and the United States don't place in the top half. India ranks 31st, with an overall score of 76 and the United States falls in at 28th, with a score of 78.
Though China outperformed everyone else on average, they didn't dominate across the board. Which country produces the best developers in particular skill areas? Let's take a look at the top countries in each domain.
China did quite well in a number of domains. Chinese developers beat out the competition in data structures, mathematics, and functional programming. On the other hand, Russia dominates in algorithms, the domain with the most popular challenges. Coming next, Poland and China nearly tie for second and third place, respectively.
What explains the different performance levels of different countries across domains? One possible explanation is that Russians are just more likely to participate in algorithms and therefore get more practice in that domain, while Chinese developers are disproportionately drawn to data structures.
Software engineer Shimi Zhang is one such programmer who ranked among the top 10 programmers in our Functional Programming domain. He hails from China's city of Chongqing, and moved to the US just two years ago to get his master's in computer science before coming to work at HackerRank.
Here is the list of top 10 Countries.
9: Czech Republic
Let's look closer at how countries rank when comparing different core competencies.