QQ在線客服

世界編程競(jìng)賽中國(guó)碼農(nóng)拿下全球第一!

2016-09-20 13:49 來(lái)源: 站長(zhǎng)資源平臺(tái) 編輯: 佚名 瀏覽(988)人   

  世界編程競(jìng)賽中國(guó)碼農(nóng)拿下全球第一!世界著名的編程競(jìng)賽組織 HackerRank 剛剛發(fā)布報(bào)告:根據(jù)各國(guó)程序員在各項(xiàng)比賽中的表現(xiàn),排出算法、數(shù)據(jù)結(jié)構(gòu)、分布式系統(tǒng)、編程語(yǔ)言等幾個(gè)領(lǐng)域的冠亞季軍。在總得分榜上,中國(guó)程序員獲得了第一名。美國(guó)則只排在了 28 位。


世界編程競(jìng)賽中國(guó)碼農(nóng)拿下全球第一!


  這一事實(shí)或多或少讓人感到驚訝。美國(guó)擁有世界上最為知名的黑客文化,幾十年間 “江山代有人才出”。而中國(guó)互聯(lián)網(wǎng)行業(yè)更引以為豪的是模式創(chuàng)新。如果中國(guó)的程序員已經(jīng)擁有如此強(qiáng)大的技術(shù)水平,那么距離 Facebook、谷歌這樣的世界一流企業(yè),我們還缺少什么?


  為此,我們翻譯了這篇來(lái)自 Priceonomics 的文章,并采訪了一系列創(chuàng)業(yè)公司 CEO 如何看待 “中國(guó)工程師技術(shù)能力世界第一”。他們有的是國(guó)內(nèi)最大開(kāi)發(fā)者社區(qū)的 CTO,有的則在谷歌、亞馬遜工作十余年,對(duì)這一問(wèn)題都有一定的思考。在他們的回答中,“技術(shù)領(lǐng)導(dǎo)力” 一詞被反復(fù)提及。就像特色場(chǎng)地預(yù)訂平臺(tái)百場(chǎng)匯 CTO 朱瑞清所說(shuō)的,“相比編程能力,給公司的技術(shù)方展、框架設(shè)計(jì)提供經(jīng)驗(yàn)、商業(yè)上的指導(dǎo)更為重要?!?/p>


  哪個(gè)國(guó)家能夠在編程奧林匹克競(jìng)賽中獲勝?最好的程序員哪家強(qiáng)?


  許多人會(huì)認(rèn)為是美國(guó)。畢竟,美國(guó)是比爾·蓋茨,肯·湯普森(Ken Thompson),丹尼斯·里奇(Dennis Ritchie, 與 Ken Thompson 聯(lián)合發(fā)明了 C 語(yǔ)言和 Unix 系統(tǒng)) 和唐納德·克努斯(Donald Knuth,現(xiàn)代計(jì)算機(jī)科學(xué)的先驅(qū)人物,創(chuàng)造了算法分析學(xué)科)等諸多編程名人的故鄉(xiāng)。但話又說(shuō)回來(lái),印度擁有許多諸如印度理工學(xué)院等著名科技院校,而俄羅斯的黑客一向以 “高效率” 而著稱。


  那么,是否有一種方法可以來(lái)衡量哪個(gè)國(guó)家擁有最好的程序員呢?


  通過(guò)分析來(lái)自 HackerRank(Priceonomics 的客戶之一)的數(shù)據(jù),我們找到了答案。HackerRank 定期為程序員舉辦眾多的編碼挑戰(zhàn),通過(guò)參與挑戰(zhàn)來(lái)提高程序員的編碼技能。成千上萬(wàn)來(lái)自世界各地的程序員參加了各種編程語(yǔ)言以及知識(shí)領(lǐng)域的挑戰(zhàn),諸如 Python 語(yǔ)言、算法、安全領(lǐng)域以及分布式系統(tǒng)等。HackerRank 根據(jù)程序員完成挑戰(zhàn)的準(zhǔn)確性和速度,對(duì)他們進(jìn)行評(píng)分和分級(jí)。


  根據(jù)數(shù)據(jù)顯示,中國(guó)和俄羅斯擁有最具才華的程序員。中國(guó)程序員在數(shù)學(xué)、函數(shù)式編程以及數(shù)據(jù)結(jié)構(gòu)領(lǐng)域的挑戰(zhàn)中擊敗了其他所有國(guó)家,而俄羅斯程序員在最受歡迎以及最具競(jìng)爭(zhēng)的算法領(lǐng)域具有統(tǒng)治地位。盡管美國(guó)和印度有眾多程序員參與了 HackerRank 的挑戰(zhàn),但在排名方面,他們僅獲得了第 28 和第 31 名。


  在開(kāi)始進(jìn)一步分析之前,我們先來(lái)觀察一下參加比賽的程序員最熱衷參與的挑戰(zhàn)類型。在 HackerRank 比賽中,程序員可以選擇參與 15 個(gè)不同領(lǐng)域的挑戰(zhàn)。有一些領(lǐng)域要比另一些更受歡迎。下表顯示了各領(lǐng)域完成挑戰(zhàn)的參與度比例。


  最受歡迎的是算法領(lǐng)域,有接近 40% 的程序員參與其中。這個(gè)領(lǐng)域的挑戰(zhàn)包括數(shù)據(jù)排序、動(dòng)態(tài)規(guī)劃、關(guān)鍵詞檢索以及一些其它基于邏輯的任務(wù)。而作為算法領(lǐng)域的挑戰(zhàn)者,程序員可以使用任何編程語(yǔ)言,這也部分解釋了為什么該領(lǐng)域如此受歡迎。(算法也是程序員面試過(guò)程中的一個(gè)關(guān)鍵內(nèi)容。)


  與算法相比,參與度第二的 Java 領(lǐng)域和第三的數(shù)據(jù)結(jié)構(gòu)領(lǐng)域就相差很遠(yuǎn)了,這兩個(gè)領(lǐng)域分別有接近 10% 的開(kāi)發(fā)人員參與挑戰(zhàn)。而分布式系統(tǒng)領(lǐng)域和安全領(lǐng)域是參與度最低的挑戰(zhàn)領(lǐng)域。


  那么,基于這些挑戰(zhàn),哪一個(gè)國(guó)家的程序員得分最高呢?


  為了找到答案,我們分析了每個(gè)國(guó)家在各領(lǐng)域中的平均分。在取平均分之前,我們首先對(duì)每一個(gè)領(lǐng)域的得分進(jìn)行了標(biāo)準(zhǔn)化處理(將每一個(gè)獨(dú)立得分減去平均值后再除以標(biāo)準(zhǔn)差,即 z-score)。這樣處理后,我們就能夠在不同領(lǐng)域之間進(jìn)行平等的分?jǐn)?shù)對(duì)比。接下來(lái),為了方便理解,我們將得到的 z-score 換算成 1-100 的分值度量。


  我們選取了 50 個(gè)國(guó)家的數(shù)據(jù)。來(lái)自這些國(guó)家的程序員在 HackerRank 比賽中參加了數(shù)以千計(jì)的比賽(最少的也參加了 2000 多個(gè))。下面是我們的發(fā)現(xiàn):


  中國(guó)得分最高,因此中國(guó)程序員獲得了 100 的分值,名列第一。然而和第二名相比,中國(guó)只是以十分微小的優(yōu)勢(shì)取勝——俄羅斯的得分是 99.9 分。波蘭和瑞士則得到了接近 98 分的好成績(jī),分列第三和第四位。在名單中,巴基斯坦以 57.4 分墊底。


  印度和美國(guó)雖然貢獻(xiàn)了最多數(shù)量的程序員,但甚至沒(méi)有進(jìn)入到榜單的前半部分。印度得到了 76 分,名列 31 位;美國(guó)得到了 78 分,名列 28 位。


  雖然中國(guó)在平均分上戰(zhàn)勝了其他所有國(guó)家,但這并不意味著它在每個(gè)領(lǐng)域都能排名第一。那么,在某一特定的技能領(lǐng)域方面,哪個(gè)國(guó)家貢獻(xiàn)了最優(yōu)秀的程序員呢?讓我們?cè)倏纯丛诿總€(gè)領(lǐng)域方面名列前茅的國(guó)家。


  不出所料,中國(guó)在很多領(lǐng)域的表現(xiàn)都相當(dāng)優(yōu)秀。來(lái)自該國(guó)的程序員在數(shù)據(jù)結(jié)構(gòu),數(shù)學(xué)和函數(shù)式編程領(lǐng)域擊敗了對(duì)手,排名第一。


  另一方面,俄羅斯在最受歡迎的算法領(lǐng)域拔得頭籌。在該領(lǐng)域波蘭和中國(guó)分別排名第二和第三。


  那么,如何解釋不同國(guó)家在不同領(lǐng)域中的表現(xiàn)差異呢?一個(gè)可能的解釋是俄羅斯的程序員更熱衷于參與算法領(lǐng)域的挑戰(zhàn),并從中獲得了更多的鍛煉機(jī)會(huì)。而中國(guó)程序員更熱衷于參與數(shù)據(jù)結(jié)構(gòu)領(lǐng)域的挑戰(zhàn)。


  我們還比較了各國(guó)程序員,在不同挑戰(zhàn)類型中所花費(fèi)的時(shí)間,并將其與參加該項(xiàng)挑戰(zhàn)的 HackerRank 用戶的平均數(shù)據(jù)進(jìn)行對(duì)比。經(jīng)過(guò)這樣的分析后,我們發(fā)現(xiàn)了在各個(gè)領(lǐng)域中,哪些國(guó)家的程序員更愿意接受挑戰(zhàn)。


  中國(guó)程序員在數(shù)學(xué)領(lǐng)域的參與度遠(yuǎn)高于該領(lǐng)域的統(tǒng)計(jì)平均值。這也許可以幫助解釋為什么在該領(lǐng)域中國(guó)程序員能夠占據(jù)榜首。同樣,捷克程序員在 Shell 領(lǐng)域展現(xiàn)出了很高的參與度,而在該領(lǐng)域捷克排名第一。


  但除了這兩個(gè)例子以外,其他國(guó)家的數(shù)據(jù)并沒(méi)有顯示出這樣的相關(guān)性。一個(gè)國(guó)家的程序員更愿意參加某項(xiàng)領(lǐng)域的比賽,并不代表他們?cè)谠擃I(lǐng)域的得分排名就能更高。


  我們也想知道不同國(guó)家是否對(duì)編程語(yǔ)言具有特殊偏好。印度程序員是否更鐘情于 C++?墨西哥人會(huì)使用 Ruby 編程嗎?


  總的來(lái)說(shuō),各國(guó)程序員對(duì) Java 挑戰(zhàn)的參與度要高于任何其他編程語(yǔ)言挑戰(zhàn)(也有少數(shù)例外,例如馬來(lái)西亞和巴基斯坦的程序員更喜歡參與 C++ 挑戰(zhàn),而在臺(tái)灣,Python 挑戰(zhàn)最受歡迎)。斯里蘭卡對(duì) Java 挑戰(zhàn)的偏愛(ài)度排名第一。而為 HackerRank 貢獻(xiàn)了大量程序員用戶的印度位列第八。


  巴基斯坦、斯里蘭卡和尼日利亞在榜單中墊底,這些國(guó)家的程序員可以向瑞士程序員學(xué)習(xí)他們的堅(jiān)韌不拔的精神。當(dāng)一名程序員在 HackerRank 進(jìn)行挑戰(zhàn)時(shí),如果在挑戰(zhàn)開(kāi)始就放棄,那他/她只能得到零分。而在所有國(guó)家中,瑞士程序員的零分比例最低,這也使瑞士程序員成為當(dāng)之無(wú)愧的 “全世界最頑強(qiáng)的程序員”。


  每一天,世界上的程序員都在相互競(jìng)爭(zhēng),希望能夠成為下一個(gè)比爾·蓋茨或唐納德·克努斯。


  如果我們現(xiàn)在舉辦一場(chǎng)編程奧林匹克競(jìng)賽,數(shù)據(jù)顯示中國(guó)將獲得金牌,俄羅斯將帶著銀牌回家,而波蘭將取得銅牌。盡管美國(guó)和印度在科技展示推廣方面做出的努力值得稱贊,但他們連排名的前25位都進(jìn)不了。


    2898站長(zhǎng)資源平臺(tái)手機(jī)網(wǎng)站排行榜:http://afrimangol.com/webmain/sjwz.htm 


【版權(quán)與免責(zé)聲明】如發(fā)現(xiàn)內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息發(fā)郵件至 kefu@2898.com ,我們將及時(shí)溝通與處理。 本站內(nèi)容除了2898站長(zhǎng)資源平臺(tái)( afrimangol.com )原創(chuàng)外,其它均為網(wǎng)友轉(zhuǎn)載內(nèi)容,涉及言論、版權(quán)與本站無(wú)關(guān)。
投稿

關(guān)注我們

站長(zhǎng)資源平臺(tái)微信公眾號(hào)

微信二維碼