Top 15 Countries by Coders

I have analyzed the data from HackerRank (December 7 2016) to find out the Top 15 countries in the world by cumulative ranking as well as by the number of Institutions in Top 50.

In order to figure out which colleges have the best coders, HackerRank hosted a major University Rankings Competition. Over 5,500 students from 126 schools from around the world participated in the event.

Cumulative Coder Rank of Top 15 Countries

India is the clear leader with cumulative score of 2901.04, more than double of US with cumulative rank of 1113.22. Russia is a distant third with less than 1/2 of US rank. But how does it fare in the total number of Institutions in the Top 50?

Country Sum – Rank
India 2901.74
US 1113.22
Russia 668.07
Romania 412.35
Canada 398.8
China 387.18
Vietnam 321.99
Ukraine 255.83
Sweden 231.23
Czech Republic 188.67
Turkey 157.56
Kazakhstan 138.87
Poland 130.34
Belgium 125.91
South Korea 124.65

Note: The score / rank of a College is weighted average and hence can be summed to get cumulative scores.

Top 15 Countries by Total Count of Institutions in Top 50

22 Institutions in India rank in the Top 50. US, second placed, is by contrast can boast of only 8 Institutions, almost 1/3 of India.

Country Count – Rank
India 22
US 8
Romania 3
Canada 2
Russia 2
Belgium 1
Bosnia & Herzegovina 1
China 1
Czech Republic 1
Estonia 1
Kazakhstan 1
Mexico 1
Poland 1
South Korea 1
Sweden 1

No wonder India is the top destination for outsourcing across the world. It produces very large number of Top Coders according to HackerRank data.

Within India the top 2 Institutions are IIT, Indore followed by IIT, Kanpur.

Java: The Most Popular Programming Language Today

Several research independently confirms Java as the most popular programing language today and as such can be considered the safest bet for someone looking to make a career in programming or looking for a career change. Let’s look in details below.

The TIOBE Index

The TIOBE Index for February 2017 indicates Java is the most popular programming language today. Java’s popularity is almost double that of the next contender C.

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

PYPL PopularitY of Programming Language

The PYPL PopularitY of Programming Language Index is created by analyzing how often language tutorials are searched on Google.

The more a language tutorial is searched, the more popular the language is assumed to be. It is a leading indicator. The raw data comes from Google Trends.

If you believe in collective wisdom, the PYPL Popularity of Programming Language index can help you decide which language to study, or which one to use in a new software project.

PYPL too indicates Java as the leading programming language.

CodingDojo

CodingDojo diligently compiled job data from indeed in 2016 which shows Java is the top in-demand programming language, unless you consider SQL as programming language.http://www.inc.com/larry-kim/10-most-popular-programming-languages-today.html

Inc.com

Inc.com does not cite sources but states Java as the most popular programming language. Larry Kim, Founder and CTO of WordStreaam, gives a nice summary:

Java is top pick as one of the most popular programming languages, used for building server-side applications to video games and mobile apps. It’s also the core foundation for developing Android apps, making it a favorite of many programmers. With its WORA mantra (write once, run anywhere), it’s designed to be portable and run happily across multiple software platforms.

So if you are searching for a programming language to learn to build your career then look no further and start coding in Java.

Footnote: Glassdoor data indicates Software Architect is the highest paying job in this field, followed closely by Software Development Manager.

Key differences between Understanding and Learning (Memorization)

Many Educational Institutes, even today, do not focus on understanding. Their tests can be easily passed with memorization. This weakens the foundation of the students and adversely affects his future performance in professional engagements. Let’s look at the key differences between understanding and memorization and why understanding should be the priority for all students.

Memorization is simple. We all know that by repeated reading of any subject matter we can remember it by heart and be able to regurgitate (repeat information without analyzing or comprehending it) on demand, even matching similar sounding questions with the answer you have learned. And that is pretty much all you need to get through in most school systems and even most colleges.

Understanding, on the other hand, is knowing the underlying ideas and concepts so well that you can then explain them in your own words, even if you do not remember any of the terminology used. It allows you to develop insights that comes from inductive or deductive reasoning on the concepts.

You know you have understood something well when you can apply it to real life situations and clearly explain it to a layman with ease.

With understanding your can identify the similarities and differences between similar sounding ideas on your own.

Understanding is the key to advancing knowledge and discovering new knowledge.

Understanding is what is useful in real life, learning alone takes us nowhere.

Today computers can store much more facts than you will ever learn and can regurgitate it faster, even for complex queries (like Google). Instead of focusing your energies on memorization, which is anyways a losing and pointless battle, why not focus on understanding the topic at hand?

You will find that when you understand any topic, you tend to remember the key words and phrases too, thereby serving both the purposes of your exams as well as much bigger purpose of excelling real life and profession.