写在前面:一直觉得中国的程序员想法多,肯钻研肯学习,但却不知道原来中国的程序员是世界上最牛的程序员。说来可能不信,但根据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/
相关推荐
### 中国程序员人才报告 #### 一、中国程序员人才现状概览 根据“中国程序员人才调查报告”,我们对中国程序员群体的现状有了更为清晰的认识。该报告通过对全国70万程序员(其中40万为职业程序员)进行普查,并...
综上所述,中国程序员的生活状态受到行业特性、城市环境和个人发展需求的共同影响,他们在住房、交通、婚恋和消费等方面展现出独特的行为模式和忧虑。这些数据为理解程序员的生活质量、职业压力和未来发展趋势提供了...
报告中提到的200个行业显示了薪酬数据覆盖范围之广,这有利于各行业公司利用报告中的数据进行薪酬市场分析和决策。 7. 报告的页码索引和岗位分类: 内容中提到的起始页码和职业代码,表明报告为使用者提供了索引,...
关于什么样的人可以被称为程序员,文章中给出了一个相对宽泛的定义:“凡是从计算机专业或相近专业毕业的、以编写程序为职业的人都可算得上是程序员。”然而,在早期,由于计算机行业的快速发展和技术的不断进步,很...
程序员考试是中国计算机技术职业资格认证体系中的一个重要组成部分,旨在评估和认证个人在计算机编程和软件开发方面的技能与知识。这份压缩包文件包含了历年来的程序员考试试题及对应的答案,对于备考者来说是极其...
美国全国家庭成长调查(NSFG)与行为风险因素监测系统(BRFSS)是本书中用到的实际数据来源,作者选择这些数据源进行分析,旨在让读者通过真实世界的例子来学习概率统计。通过这些数据的分析,读者能够理解统计思维...
根据提供的文件信息,这份2018年中国程序员研究报告涉及了中国程序员的生活状态、工作状况以及未来规划等多个方面。下面详细阐述其中的知识点。 1. 程序员的生活状态 - 租房与自有住房比例:报告指出,程序员群体中...
- 提供了例如P25、P50、P75、P90等百分位数的薪酬数据,这些数据反映了程序员岗位的薪酬分布情况。 3. 常用岗位薪酬水平介绍: - 报告涵盖了全国各地区常用岗位的薪酬水平。 - 对比分析了不同职业方向的薪酬水平...
然而,关于中国程序员的整体水平是否低于西方,或者是否有中国程序员达到了甚至超越了西方同行的水平,周伟明认为,这需要从技术层级的角度进行具体分析。 周伟明将程序员的技术层级划分为十个层次,每个层次代表了...
【软考程序员级复习资料】是一份针对中国计算机技术与软件专业技术资格(水平)考试中的“程序员”级别的全面复习资源。这份资料集包含了历年来的考试试题解析与解答,以及相关的教程和考试说明,旨在帮助备考者系统...
这个压缩包文件“90年到08年程序员试题及答案”显然是一部珍贵的历史资料集,涵盖了近二十年间中国程序员资格认证考试的全部真题与解答。这些试题和答案是了解编程基础知识,进阶技能,以及当时技术发展趋势的重要...
8. **薪酬数据分析的应用**:报告显示了薪酬数据分析如何作为企业制定薪酬战略的重要依据,对于企业了解市场竞争中的薪酬定位、吸引和保留人才等方面具有实际的指导作用。 需要注意的是,文档内容中存在一些OCR扫描...
【标题】:“高级程序员考试考试真题”指出这是一份针对高级程序员考试的试题集,这类考试通常涉及深度编程知识、系统设计与架构、软件工程实践等多个方面,旨在考核候选人的高级编程技能和问题解决能力。...
该报告的数据是基于大数据系统处理薪酬数据的基础上形成的,每年处理超过3000万条薪酬数据,为全国200个行业、180多个城市和地区的838个报告之一。 报告详细展示了网页程序员在不同公司类型下的薪资水平。根据报告...
报告可能涵盖了一系列的数据分析,包括程序员及其他岗位的薪酬中位数、平均值以及不同类型的公司(如外商独资企业、合资企业、本地私营企业和国有企业)中程序员的薪酬分布情况。这份报告可能是由一个专门从事大数据...
在2011年中国程序员薪资调查报告中,对当时国内程序员群体的薪资状况进行了细致的分析。报告指出,中国程序员的薪资水平呈现出显著的地域分布特征,工龄、跳槽经验、所掌握的编程语言以及所处行业都会对薪资产生重要...
P25表示25%的程序员薪酬位于该数值以下,P50即中位数,表示一半程序员薪酬高于此值一半低于此值,P75表示75%的程序员薪酬低于该数值,P90则表示90%的程序员薪酬低于该数值。对于不同类型的公司,薪酬水平存在明显...