如果有人问你哪里的程序员最牛,十有八九你会觉得是美国。毕竟美国拥有非常多杰出的程序员:比尔·盖茨、 肯·汤普森、 C 语言之父丹尼斯·里奇、唐纳德·克努特……

但是据小编所知,印度这些年,程序员的规模增长是全世界最快的,俄罗斯的黑客也声名大噪。那么,判断哪里的程序员最牛,到底有什么可信的依据呢?

我们一起来看看在 HackerRank 网站上,哪些国家在编程挑战赛中表现最厉害。我们的宗旨是:多看数据,少YY。

在 HackerRank 网站上,举行过数以千计的编程挑战赛,吸引来自世界各地的万千程序员参加。从 Python 到算法到安全到分布式系统都有涉及!

根据数据显示,中国和俄罗斯拥有最具才华的程序员。中国程序员在数学、功能程序设计和数据结构方面秒杀了世界其他国家的程序员,而俄罗斯程序员则在算法领域占据主导地位,算法也是最流行和最具竞争力的领域。

值得注意的是,虽然美国和印度在 HackerRank 上也有不少优秀的程序员,但他们也只能排在第 28 和第 31╮(╯_╰)╭

1、整体综合排名


我们先从程序员中最受欢迎的测试类型开始分析。HackerRank 程序员可选择参与 15 个不同领域,下表显示了各个领域的比例 :

算法名列前茅,近 40% 的程序员选择它。该领域包括数据排序,动态编程,搜索关键字和其他基于逻辑的任务方面的挑战。对于算法测试,程序员可使用他们选择的语言,这也是该领域如此受欢迎的原因之一。排第二位的 Java和第三位的数据架构,分别都占了近 10% 。而分布系统和安全的占比最低。

那么问题来了:经过测试,哪个国家的程序员整体得分最高呢?

我们不妨查看一下各个国家所在领域的平均得分。

打分标准:

通过从每个分数减去平均值,然后除以标准差,也称为 z 分数

这样即使每个领域难度各不相同,但我们也能对不同领域的个人进行打分,并形成从整体到个体的比较体系。为了让结果更直观,我们根据 z 分数框架的原理,做了一个 1-100 分数框架来解释。

统计 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、不同国家程序员的偏好

接下来,我们比较了每个国家的程序员在不同挑战赛上花费的时间,然后与 HackerRank 用户平均花费的时长进行比对。

如上表所示,中国程序员在数学竞赛中的参与度远远高于我们预期的平均水平。捷克人貌似很喜欢 shell,在这个单项他们是第一。

4、不同国家程序员的编程语言偏好

除了刚刚得到的数据,我们也想知道其他国家的程序员对特定的编程语言是否有特殊嗜好。比如印度程序员是不是对 C++更感兴趣?墨西哥程序员是不是都用 Ruby 编码?

总的来说,世界各地的程序员选用 Java 的比例都要高于其它语言(只有极少数的例外:如马来西亚和巴基斯坦的程序员更喜欢 C++,台湾的程序员更喜欢 Python)。而斯里兰卡程序员也是 JAVA 比例使用最高的国家,在 HackerRan 中也排名排在第八的位置。

程序员在 HackerRank 社区上没有努力就放弃了挑战,得分为零。瑞士的零记分用户比例是最低,瑞士程序员也可谓称得上世界上最顽强的程序员。巴基斯坦、斯里兰卡和尼日利亚目前排名位于低端,在毅力方面,他们都需要向瑞士学习。

其实对于世界各地的程序员来说,无论你来自何处,都有可能成为一下个盖茨或者克努特。

根据这些数据,如果我们举办一场黑客奥林匹克比赛,中国将赢得金牌,俄罗斯将获得银牌,而波兰则拿下铜牌。尽管美国和印度的程序员让人值得称赞,但想进入前 25,还是需要再继续努力的~(*^__^*) 嘻嘻……

数据显示:中国程序员是世界上最牛的程序员相关推荐

  1. 【译】数据显示:中国的程序员是世界上最牛的程序员?

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面:一直觉得中国的程序员想法多,肯钻研肯学习,但却不知道原来中国的程序员是世界上最牛的程序员.说来可能不信,但根据Hac ...

  2. 不要迷恋哥,哥不只是传说(再【转】世界上最牛的程序员)

    原文链接网址:[转]世界上最牛的程序员 话说偶当年还在大学求学的时候,以为最牛的就是教程序设计和数据结构的的那两个谢顶老头,直到偶看到了下面的神奇的传说(粗体部分). MIT BBS上说微软电话面试的 ...

  3. 【转】世界上最牛的程序员

    MIT BBS上说微软电话面试的一道题就是"Who do you think is the best coder, andwhy?". 我觉得挺有意思的,也来凑个热闹.排名不分先后 ...

  4. 他是世界上最杰出的程序员,一个月写了个操作系统,退休后去做飞行员!

    作者 | Mr.K 来源 | 技术领导力(ID:jishulingdaoli) 1983 年,美国计算机协会将图灵奖授予肯·汤普森和与丹尼斯·里奇. 获奖理由是:"For their dev ...

  5. 世界上最牛的100张照片

    <script type="text/javascript">function StorePage(){d=document;t=d.selection?(d.sele ...

  6. 应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上

    应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上. package p1;import java.io.*; public class FI ...

  7. 三菱PLC转盘机程序 此程序已经实际设备上生产应用,程序成熟可靠

    三菱PLC转盘机程序 此程序已经实际设备上生产应用,程序成熟可靠,借鉴价值高,程序有注释,用的三菱FX5Uplc,带6根轴,视觉判定ok还是NG. 是入门级三菱PLC电气爱好从业人员借鉴和参考经典案列 ...

  8. 程序员是世界上最聪明、最具幽默感的一群人

    工作相关 0. 如果软件正在占领全世界,为什么程序员得不到尊重?遍身罗绮者,不是养蚕人.1. 中国大陆的盗版Windows系统都是怎么做出来的?复制.粘贴.2. 中国梦和美国梦的区别是什么?中国梦.t ...

  9. 世界上最健康的程序员作息表「值得一看」

    昨晚看了一篇"传说中"的"世界上最健康的作息时间表",开始纠结自己还要不要5点半起床. 都说程序员这一行,猝死概率极高,究其原因还是加班太狠.作息不规律.缺乏运 ...

  10. 国产程序员--世界上最牛逼的程序员!

    国产程序员就是这么牛逼 0. 如果软件正在占领全世界,为什么程序员得不到尊重? 遍身罗绮者,不是养蚕人. 1. 中国大陆的盗版Windows系统都是怎么做出来的? 复制.粘贴. 2. 中国梦和美国梦的 ...

最新文章

  1. 《Haskell趣学指南》笔记之I/O
  2. EOF的意义及用法(while(scanf(“%d“,n) != EOF))
  3. md5 算法java实现_java实现MD5算法
  4. 先进的NumPy数据科学
  5. Windows10 virtualbox安装alpine+docker
  6. 消息队列-Message Queue
  7. Dummary、Fake、Stub、Spy、Mock
  8. C# 中的字符串内插
  9. 当遥感卫星有了AI……
  10. java中Matcher和pattern的使用
  11. HTML实现图文混排效果
  12. Mysql8中降序索引的底层实现
  13. 百度谷歌淘宝自定义搜索乱码问题的解决
  14. 也谈分库分表在实际应用的实践
  15. 联客云虚拟工作手机(云手机)应用行业及场景
  16. 走进AI时代的文档识别技术 之文档重建
  17. 推荐10个Vue 3.0开发的开源前端项目
  18. 动易数据库conn.asp的问题
  19. kali虚拟机自带burp抓包物理机
  20. 冯诺依曼计算机格言,约翰.冯.诺依曼名言

热门文章

  1. 计算机网络技术人员素质要求,做网络技术员需要学习哪些技能
  2. blast2go下载和本地安装
  3. 简单的三种实现鼠标经过切换图片的方法
  4. 第10章 主成分分析(PCA)
  5. 数据库考研信息管理系统
  6. 乐队设备--反馈抑制器学习笔记
  7. python植物大战僵尸辅助_GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!...
  8. 量化基金投资之Alpha策略简介
  9. 计算机网络 第五章 课后题答案
  10. MFC基于对话框使用dll进行多语言切换