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

写在前面:一直觉得中国的程序员想法多,肯钻研肯学习,但却不知道原来中国的程序员是世界上最牛的程序员。说来可能不信,但根据HackerRank官网的一篇报道,数据显示中国的程序员就是世界上最牛的程序员。特将此文翻译成中文,分享给大家。

如果问哪里的程序员最牛,很多人肯定会认为是美国。毕竟美国拥有很多杰出的程序员,如比尔·盖茨、 肯·汤普森、 C 语言之父丹尼斯·里奇、唐纳德·克努特。但是,这些年,印度的程序员规模增长是全世界最快的,俄罗斯的黑客也越来越锋芒毕露。有什么办法来确定哪个国家的程序员是最牛的吗?

在HackerRank网站上,哪些国家在编程挑战赛中表现最厉害呢?通过数据,我们希望可以找到问题的答案。

在 HackerRank网站上,为了帮助程序员提高技能,我们举行过数以千计的编程挑战赛。来自世界各地成千上万的程序员参加了这些挑战赛,从 Python 到算法到安全到分布式系统都有涉及。我们的社区也有超过150万开发者的排名,并且社区的人数每天都在增长。

根据我们的数据显示,中国和俄罗斯拥有最具才华的程序员。中国程序员在数学、功能程序设计和数据结构方面超过了世界其他国家的程序员,而俄罗斯程序员则在算法领域占据主导地位,算法也是最流行和最具竞争力的领域。虽然美国和印度在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、特定领域排名

虽然中国的排名很出众,但也不只是雄霸所有榜单。哪个国家的程序员在特定领域的表现最好?我们来看看各个领域中上榜的国家。

可以看到中国在一些领域相当出色。中国程序员在在数据结构、数学和函数式编程方面打败了其他国家的程序员。另外,俄罗斯程序员在挑战举办最多的算法领域也摘得桂冠。其次是分别处于第二、第三位置的波兰和中国。

怎么解释不同国家在不同领域的水平差异?有可能是因为俄罗斯的程序员更喜欢参加算法类的比赛,也就会在这一领域投入更多精力,而大部分中国程序员则更喜欢参与数据结构类的项目。

在HackerRank工作的一个软件工程师就是这样的,他叫Shimi Zhang,是我们函数型编程领域排名前十位的程序员之一。他来自中国重庆市,两年前来到美国攻读计算机科学硕士,然后来到HackerRank工作。

来自中国的顶尖程序员Shimi Zhang就中国程序员的不同凡响之处表达了他的看法:

"和其他国家相比,中国的高等教育资源比较少,中国的年轻人学习编程的路本来就窄。很多非凡的年轻人在得到来之不易的变成比赛,会真正痴迷于此。

在中国,很多年轻人在中学时期就开始自学编程了,甚至还尝试解决的一些在全世界也没有多少人能解决的难题。

举办专门针对青少年工程师的全国性竞赛,如 NOIp ( 全国青少年信息学奥林匹克联赛)和 NOI ( 全国青少年信息学奥林匹克竞赛),今年至少有 3 个人在 NOI 中同时获得了冠军。这种针对青少年举行的编程比赛是近十年内的趋势。

并且, NOI 中还有一个牛逼的特别规定:如果一位选手在 NIO 中获得了金牌,他就不能参加国际信息学奥林匹克竞赛的中国队选拔赛,这就意味着,在国际信息学奥林匹克竞赛中获得金牌的中国选手,都是首战告捷。"

3、不同国家程序员的偏好

接下来,我们又比较了每个国家程序员在不同挑战赛上花费的时间,然后与HackerRank用户平均花费的时长进行比较。这样一来,就能找出不同国家程序员在特定领域的偏好了。

如上表所示,中国程序员在数学竞赛中的参与度远远高于我们预期的平均水平,这就能解释为什么他们能在这个领域高踞榜首了。捷克人貌似很喜欢 shell,在这个单项他们是第一。

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

但是除了这两个国家,其它国家的选择偏好和擅长领域好像并没有必然联系。我们也想知道其他国家的程序员对特定的编程语言是否有特殊嗜好。比如印度程序员是不是对C++更感兴趣?墨西哥程序员是不是都用Ruby编码?

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

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

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

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

翻译的内容比较多,如有部分语句措辞不当的,欢迎指出。

原文出处:https://blog.hackerrank.com/which-country-would-win-in-the-programming-olympics/

时间: 2024-10-30 15:55:56

【译】数据显示:中国的程序员是世界上最牛的程序员?的相关文章

c++-各位大虾, 我想在程序里监视系统上运行的某些程序运行过程中是否报错异常,能实现吗? 怎么实现?

问题描述 各位大虾, 我想在程序里监视系统上运行的某些程序运行过程中是否报错异常,能实现吗? 怎么实现? 对于程序运行过程中卡死已经能检测,但是对于一些弹框类的运行出错却不知道怎么检测,请各位大虾指点迷津; 现在没有C币,如果回答是我想要的,我花钱补上 解决方案 这不就是编写一个华医生么(注:华医生是微软系统上负责处理应用程序崩溃的程序,就是你图上的"xxx已停止工作,Windows正在联机查找解决方案"),这是一个应用程序,是在用户模式下实现的,而并非在内核中实现,其实华医生也可以卸

世界上第一位程序员竟然是个妹子

在程序员这个男多女少的世界里,男女比例的极不均衡让男程序员们自然而然地成为了这个世界的主宰.细数下来,从C语言和Unix系统的创造者Denis和Thompson,到后来的Linux系统之父Linus,再到Java之父Gosling,都是广大男程序员中杰出代表,是程序界的豪杰.按照这种逻辑,想必世界上第一位程序员也必定是我们男同胞吧! 哈哈,认真你就猜错了,据史料记载,世界第一位程序员的的确确是一个妹子,名叫阿达·洛芙莱斯(Ada Lovelace),就是下面这位.废话少说,下面就让我们看看她是如

世界上最早的黑客:女性高手揭秘

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 纪录片制片人(左)和4名"奶奶级"电脑高手在一起,她们分别是贝蒂(左二).马琳(左三).凯瑟琳(右一),前排坐着的贝蒂·辛德·霍伯顿目前也已去世. 世界上最早的黑客 据美国媒体5日报道,在电脑时代,许多老年人不甘落后,然而鲜为人知的是,在美国仍然生活着几名80多岁的"奶奶级"电脑高手:她们曾在二战中帮助

android-用程序实现在edittext上添加placeholder

问题描述 用程序实现在edittext上添加placeholder 在程序的类中如何在edittext上添加placeholder?不使用xml.以下的edittext代码edittext在alertdialog对话框中所示. final EditText name = new EditText(this); 解决方案 您可以定义一个像FrameLayout的一个容器,并在创建时添加EditText. <LinearLayout xmlns=""..""/&g

云智慧创始人殷晋:程序员改变世界

本文讲的是 :  云智慧创始人殷晋:程序员改变世界  , [IT168信息化]一个有趣的说法:世界上有两种人最懒--一种是哲学家,另一种是程序员.也许前者是真懒,但程序员的"懒"其实是体现在对代码的极力简化,多敲一行都不行.相反,程序员不仅不懒,实际上还很有情怀.云智慧的创始人殷晋笑谈道:"我也曾是一名程序员,我就是想要通过coding(编程)改变世界." 创业是因为程序员的情怀 殷晋在2010年创立了云智慧,为企业提供基于云计算的APM(应用性能管理系统).当时,

漫谈程序员系列:请区别对待女程序员

写下这个标题,真有点担心被骂"作死",战战兢兢如履薄冰--不过,如果你打算拍死我,请: 冷静三秒先! 根据统计,在程序员这个群体中,大概有 20% 左右的女性.很不少了吧,也许有些阿猿说没见身边有几个女人干开发啊,哦,我要说,那一定有些阿猿身边姹紫嫣红. 不扯了,咱们讨论正题儿:为什么要区别对待女程序员,也就是阿媛? 男人与女人的不同我们得先说说男人和女人的不同,才能继续聊其它的话题. 生理上的不同 客观上讲,男女生理构造不同,尤其女性的一些特征要比男性更凸显.对生活的影响更强.我把这

想成为牛逼程序员? 先数数编程语言之父们的头发

有一种生物,人称"程序猿" or "攻城狮" 工作是高端大气上档次,工资是低调奢华接地气! 往往城还没攻下来,头发就先掉下来! 世人眼中的当程序员的必经之路是这样的 找不到女朋友的原因是这样的 事实是否如上所说的那样呢?那就不得而知了,不过深入了解了解那些编程语言之父们头顶的雨林是否茂盛,以及他们的丰功伟绩,没准能得出什么参考标准呢. 01.Java 之父 James Gosling 头顶茂密指数: 第一位出场的就是我们大名鼎鼎的 Java 之父,James Gos

这个中国血统的黑客掌握了世界上最多的秘密,还改变了美国总统大选

本文讲的是这个中国血统的黑客掌握了世界上最多的秘密,还改变了美国总统大选, 全球气候变暖,曾经是全人类的共识. 研究者认为,人类自工业革命开始,肆无忌惮地排放二氧化碳导致了全球性的气温变化. 人类将会为自己的罪行付出惨痛的代价. 然而,这个理论很荒谬,20世纪中叶的人们还担心着全球气候变冷,冰川期让农业系统崩溃. 也有多位科学家明确反对全球变暖理论,认为这不过是地球几十亿年来再正常不过的波动. 2009年11月,仿佛是全球变暖理论支持者和背后势力的末日. 黑客们窃取了多位顶级气候学家的电子邮件,

是什么鼓励着程序员砥砺前行?--献给迷茫的程序员

不知道各位猿猿们有没有问过自己这个问题:驱动你殚精竭虑地写代码.改BUG的动力来源是什么?不管有没有认真思考过这个问题,相信每一位忠于事业的程序员内心都有着某种力量,正是这种驱动力在不断鼓励着自己在代码的路上愈行愈远.   大多数人会想到两种驱动力. 一种是生存本能带来的驱动力,即生物性驱动力.比如每天要吃饭.睡觉.上厕所:长大了要恋爱.结婚等.这种驱动力保证我们能够生存在这个世界上,是一种原始的驱动力. 另一种是奖励或者惩罚带来的驱动力,即外在动机.比如老板承诺工作干的好有奖金,我们就努力干活