Does Ukraine have the top programmers?
Many IT jobs are vital to our economies and our modern comforts. Programmers must be one of the most important when it comes to technology. However, they rarely receive the proper acknowledgment for their work. Rarely does the ordinary person know where the top developers are? The USA? China, maybe Ukraine? Programmers and software engineers design and create vital parts of our economy and improve our daily lives, and Ukraine has one of the top developers!
Suppose you have heard anything about the recent computer chip shortage and the different industries that have been affected by it, from the computer industry to the textile industry. Almost virtually everything depends on computer chips in one way or another. Therefore, these luxuries also depend on programmers to write the instructions that the computer chips run on. After all, a team of programmers created the brains behind the computer or cell phone.
Most people take things that may be someone’s life’s work for granted as something that “comes with the computer.” However, sadly, many of these programmers never receive the public recognition they deserve. Many different countries are known for their programmers, but which ones have the best? I am not alone in asking this question. This question has been asked by many in the computer science world already. However, the answer is more complicated than one might first think.
Which Countries Have the Highest-Ranked Programmers?
Some countries have more highly skilled programmers than others, so which country has the best programmers? The United States, which has many consumer-focused software companies and programmers, seems natural, right? With great minds like Steve Jobs, who pioneered Apple, or Bill Gates, who helped create the most widely used operating system, Windows. Companies like Intel and AMD are based in the United States; however, other companies, like Sony, Samsung, and Taiwan Semiconductors, who provide most of these companies with the computer chips they need for their products, are not. So, given this, how do we determine which country has the most talented programmers? A study conducted by HackerRank tried to answer this in early 2021 and found some interesting results.
So how do you quantify talent? There are several ways to try to measure skill in the programming world. Could efficiency, how fast you can create a requested program that runs without any issues, be one way to measure talent? Or do we measure skill based on how many languages a programmer is proficient in? HackerRank posts
thousands of challenges for developers, with hundreds of thousands from countries worldwide competing to hold the top spots in these challenges. These challenges were split into 15 different categories, with some categories being more popular than others.
The most popular category by far was algorithms, with 39.5%1 of challenges solved being from the algorithm category. Algorithms use a specified set of instructions to solve a problem, like a recipe. Other tested subjects include proficiency in programming languages like Java, C++, and Python.
Subjects like data management, AI, and cybersecurity were also tested.
So, what kind of results were found from these tests? Well, it’s a little more complicated than you might think.
Calculating The Scores:
Everybody has their strengths and weaknesses, and that goes for programmers too. Regionally, programmers had different skill sets, which was shown in the study. Each of the various categories had very different results for the top scores2. They also had other preferred coding languages that could be linked to their region, though in most cases, Java or C++ were the select languages.
So how do you make a general comparison with so many factors to grade? Do you look at the average placement across all categories? The most podium placements? The researchers at HackerRank decided on a different method. The first standardized the scores for each category by subtracting the overall average score for each challenge from each score for the challenge, then divided the score by the standard deviation. This score was then converted to a 1–100 scale, and the overall score was calculated by taking the average score of each category for each country.
So, for overall scores, the top 5 were: China with an incredible score of 100/100, Russia with a very close second of 99.9/100, Poland in third with a 98/100, followed by Switzerland with 97.9/100 and Hungary in 5th place with a score of 93.9/100. However, the two countries with the most developers who participated in the challenges, India and the United States, did not place in the top half, with India in 31st place and the United States in 28th. But what made China place first? Shimi Zhang, one of the top ten scoring developers from China, may have some insight.
What Contributed to China’s High Placement?
When interviewed, Shimi Zhang attributed their success to the lack of choices of universities and colleges in China, resulting in competitive programming being one of the primary paths to a successful programming career. This results in many young programmers even becoming obsessed with competing and performing well in these programming competitions. According to Zhang, many of these programmers start in middle and high school, working on challenges that many experienced programmers wouldn’t even consider attempting due to the difficulty. Another reason for China’s dominance, Zhang says, is their national programming contests.
So how do these contests work? According to Zhang, first, programmers compete in the National Olympiad in Informatics in provinces (NOIp), a regional qualifier for National Olympiad in Informatics (NOI). Then the winners of NOI go on to compete in the China Team Selection Contest (CTSC), and finally, the International Olympiad in Informatics (IOI). For almost ten years now, the four programming geniuses on the Chinese team were sent to IOI, at least three-win gold medals. This is even more impressive because once you have won a gold medal at IOI, you will not be picked for any future IOI Chinese teams, meaning that most of these medalists won a gold medal on their first try.
What Languages do the Top Countries Use?
So as stated earlier, different countries specialize in some languages more than others, so based on the study results, which languages do the best programmers use? As shown here in this graph3, Java was, for most countries, either the most or second most preferred language, with about 23%-35% of programmers preferring the language. Chinese developers also primarily used Python and C++, leaning towards Python more than the others. Russian developers were split evenly between Python, Java, and C++. Polish developers preferred Python, Swiss programmers use more C++ than Python, and most developers from Hungary use Java as their primary language.
Our world is highly diverse, with different cultures, belief systems, and ways of life; however, it is interesting to see the same three languages used in programming. There are over 7,100 languages spoken worldwide, which is reflected in programming. We have nearly 9,000 different programming languages, and this is because of the vast number of things that you can create with a simple program. But programming languages, just like other world languages, have limitations in what they can accomplish.
Programing is something that anyone who has access to the internet can learn to do. Many different factors determine which countries have the best programmers, and it all depends on the metric you use. Talent is subjective and hard to quantify in numbers. How can you quantify the innate ability to do something when similar or even more significant results can be achieved through tremendous time and effort? We see in the study by HackerRank that all through all, these programmers were from different regions, likely spoke other languages, grew up in different cultures and environments, with different priorities and values, they all primarily used the same three programming languages.
The biggest takeaway from this study should be this: that programming requires real skill to be successful at, and like many things in life, some people and cultures will have an easier time learning to program than others or may seem more naturally talented than others. However, it is essential to remember that no matter what country you are from, you can make a difference in the world of computer science.
There is one last metric used in the HackerRank study that I didn’t share: tenacity, the willingness to keep trying at a seemingly impossible challenge until you finally get it right. Three countries in the top 5 countries for overall programming were also in the top 5 countries that refused to give up on complex challenges. So, if your home country was not in the top 10, or even the top 50, don’t be discouraged, because the one thing that almost all the countries in the top 5 showed was that success takes the ability to keep going when things seem impossible. So, keep going, and leave your mark on the world of computer science. It will be hard, take effort, but it is possible.