我璀璨华夏,泱泱大国,五千年文化的积淀和传承,孕育出了无数能人巧匠;虽然一直清楚,中国的程序员们想法多、思路宽、钻研学习能力突出,但却未曾想到,咱们的程序员水平居然能牛X到这种地步!
在大部分人印象中,美国拥有许多杰出的程序员,如比尔·盖茨、 肯·汤普森、 C 语言之父丹尼斯·里奇、唐纳德·克努特等,应当是全球程序员水平最高的国家了,但事实并非如此;最近,HackerRank放出了一篇报道,根据文中权威数据显示,中国的程序员无论是在数学、功能程序设计还是数据结构方面,均超过了世界其他国家程序员,成为当之无愧的最牛程序员!
如何判定牛不牛?
HackerRank网站社区拥有超过150万开发者的排名,并常常举办大型的编程挑战赛,赛事从 Python 到算法到安全到分布式系统都有涉及,非常权威;因此,每次活动都能够吸引到来自世界各地成千上万的程序员参与,其产生或带来的数据非常具有参考价值和可信度。因此,我们可以通过这些成年累积的庞大数据,来对当前全球范围内的程序员做一次公平、准确的客观评估。
1. 整体综合排名
我们先从程序员中最受欢迎的测试类型开始分析。HackerRank程序员可选择参与15个不同领域,下表显示了各个领域的比例 :、
数据显示,算法领域是最受喜爱的,到了40%程序员的青睐,这个领域包括数据排序,动态编程,搜索关键字和其他基于逻辑的任务方面的挑战。对于算法测试,程序员可使用他们选择的语言,这可能也解释了该领域如此受欢迎的部分原因。排在第二位和第三位的Java和数据架构分别都占到了接近 10%的比例。基于这些测试,哪个国家的程序员整体得分最高呢?我们统计了 HackerRank 上程序员最多的 50 个国家,得出下面这张表单:
由于中国的程序员得分最高,所以将中国的分数作为 100 的基准分,则俄罗斯的分数为 99.9 ,两国仅相差 0.01 。另外,波兰和瑞士也以 98 的高分进入前列。巴基斯坦得分仅为 57.4 。印度和美国为全世界贡献了最多的程序员,但没有进入榜单的前 25名 ,只分别以 76 和 78 的分数排名 31 和 28 。
2. 特定领域排名
虽然中国的排名很出众,但也并未在所有榜单霸棒。我们来看看其他国家在各个领域的表现如何:
可以看出,中国在数据结构、数学和函数式编程方面均超过其他国家的程序员;而俄罗斯的程序员在算法领域摘得桂冠,其次是分别处于第二、第三位置的波兰和中国。
怎么解释不同国家在不同领域的水平差异?来自中国的顶尖程序员Shimi Zhang就中国程序员的不同凡响之处表达了他的看法:“和其他国家相比,中国的高等教育资源比较少,中国的年轻人学习编程的路本来就窄。很多非凡的年轻人在得到来之不易的变成比赛,会真正痴迷于此。
在中国,很多年轻人在中学时期就开始自学编程了,甚至还尝试解决的一些在全世界也没有多少人能解决的难题。举办专门针对青少年工程师的全国性竞赛,如 NOIp ( 全国青少年信息学奥林匹克联赛)和 NOI ( 全国青少年信息学奥林匹克竞赛),今年至少有 3 个人在 NOI 中同时获得了冠军。这种针对青少年举行的编程比赛是近十年内的趋势。
并且, NOI 中还有一个牛逼的特别规定:如果一位选手在 NIO 中获得了金牌,他就不能参加国际信息学奥林匹克竞赛的中国队选拔赛,这就意味着,在国际信息学奥林匹克竞赛中获得金牌的中国选手,都是首战告捷。”
3. 不同国家程序员偏好
很明显,中国程序员在数学竞赛中的参与度远远高于我们的预期水平,这就能解释为什么他们能在这个领域高踞榜首了,真是令人惊讶。
4. 不同国家程序员语言偏好
最后,再来研究一下不同国家会否在选择编程语言上形成一些规律,和独特嗜好。
总的来说,全球程序员选用 Java 的比例都要高于其它语言(只有极少数的例外:如马来西亚和巴基斯坦的程序员更喜欢 C++)
巴基斯坦、斯里兰卡和尼日利亚的程序员在HackerRank社区上没有努力就放弃了挑战,得分为零;瑞士的零记分用户比例是最低,瑞士程序员也可谓称得上世界上最顽强的程序员。
根据这些数据换算一下,如果我们举办一场黑客奥林匹克比赛,中国将赢得金牌,俄罗斯将获得银牌,而波兰则拿下铜牌;尽管美国和印度的程序员让人值得称赞,单与前面几个国家相比,还是差了些火候。
-END-
领取专属 10元无门槛券
私享最新 技术干货