如果有人問你哪里的程序員最牛傅是,十有八九你會覺得是美國。畢竟美國擁有非常多杰出的程序員:比爾·蓋茨、 肯·湯普森喧笔、 C 語言之父丹尼斯·里奇帽驯、唐納德·克努特……
但是據(jù)小編所知,印度這些年书闸,程序員的規(guī)模增長是全世界最快的尼变,俄羅斯的黑客也聲名大噪。那么浆劲,判斷哪里的程序員最牛嫌术,到底有什么可信的依據(jù)呢?
我們一起來看看在 HackerRank 網(wǎng)站上牌借,哪些國家在編程挑戰(zhàn)賽中表現(xiàn)最厲害度气。我們的宗旨是:多看數(shù)據(jù),少YY膨报。
在 HackerRank 網(wǎng)站上磷籍,舉行過數(shù)以千計的編程挑戰(zhàn)賽,吸引來自世界各地的萬千程序員參加现柠。從 Python 到算法到安全到分布式系統(tǒng)都有涉及院领!
根據(jù)數(shù)據(jù)顯示,中國和俄羅斯擁有最具才華的程序員够吩。中國程序員在數(shù)學(xué)比然、功能程序設(shè)計和數(shù)據(jù)結(jié)構(gòu)方面秒殺了世界其他國家的程序員,而俄羅斯程序員則在算法領(lǐng)域占據(jù)主導(dǎo)地位废恋,算法也是最流行和最具競爭力的領(lǐng)域谈秫。
值得注意的是,雖然美國和印度在 HackerRank 上也有不少優(yōu)秀的程序員鱼鼓,但他們也只能排在第 28 和第 31╮(╯_╰)╭
1拟烫、整體綜合排名
我們先從程序員中最受歡迎的測試類型開始分析。HackerRank 程序員可選擇參與 15 個不同領(lǐng)域迄本,下表顯示了各個領(lǐng)域的比例 :
算法名列前茅硕淑,近 40% 的程序員選擇它。該領(lǐng)域包括數(shù)據(jù)排序嘉赎,動態(tài)編程置媳,搜索關(guān)鍵字和其他基于邏輯的任務(wù)方面的挑戰(zhàn)。對于算法測試公条,程序員可使用他們選擇的語言拇囊,這也是該領(lǐng)域如此受歡迎的原因之一。排第二位的 Java和第三位的數(shù)據(jù)架構(gòu)靶橱,分別都占了近 10% 寥袭。而分布系統(tǒng)和安全的占比最低路捧。
那么問題來了:經(jīng)過測試,哪個國家的程序員整體得分最高呢传黄?
我們不妨查看一下各個國家所在領(lǐng)域的平均得分杰扫。
打分標準:
通過從每個分數(shù)減去平均值,然后除以標準差膘掰,也稱為 z 分數(shù)
這樣即使每個領(lǐng)域難度各不相同章姓,但我們也能對不同領(lǐng)域的個人進行打分,并形成從整體到個體的比較體系识埋。為了讓結(jié)果更直觀凡伊,我們根據(jù) z 分數(shù)框架的原理,做了一個 1-100 分數(shù)框架來解釋惭聂。
統(tǒng)計 HackerRank 上程序員最多的 50 個國家窗声,得出下面這張表單:
可以看出中國的程序員得分最高相恃,所以把中國的分數(shù)作為 100 的基準分辜纲,從而得出俄羅斯的分數(shù)為 99.9,兩國僅相差 0.01拦耐。另外耕腾,波蘭和瑞士也以 98 的高分進入前列。巴基斯坦得分僅為 57.4杀糯。
印度和美國為全世界貢獻了最多的程序員扫俺,但沒有進入榜單的前 25 名,只分別以 76 和 78 的分數(shù)排名 31 和 28固翰。(人不在多狼纬,有分則靈~)
2、特定領(lǐng)域排名
中國程序員在數(shù)據(jù)結(jié)構(gòu)骂际、數(shù)學(xué)和函數(shù)式編程方面打敗了其他國家的程序員疗琉。另外,俄羅斯程序員在挑戰(zhàn)舉辦最多的算法領(lǐng)域也摘得桂冠歉铝,其次是分別處于第二盈简、第三位置的波蘭和中國。
怎么解釋不同國家在不同領(lǐng)域的水平差異太示?有可能是因為俄羅斯的程序員更喜歡參加算法類的比賽柠贤,也就會在這一領(lǐng)域投入更多精力,而大部分中國程序員則更喜歡參與數(shù)據(jù)結(jié)構(gòu)類的項目类缤。
來自中國的頂尖程序員 Shimi Zhang 就中國程序員的不同凡響之處表達了他的看法:
「和其他國家相比臼勉,中國的高等教育資源比較少,中國的年輕人學(xué)習編程的路本來就窄餐弱。很多非凡的年輕人在得到來之不易的變成比賽宴霸,會真正癡迷于此镜盯。
在中國,很多年輕人在中學(xué)時期就開始自學(xué)編程了猖败,甚至還嘗試解決的一些在全世界也沒有多少人能解決的難題速缆。
舉辦專門針對青少年工程師的全國性競賽,如 NOIp(全國青少年信息學(xué)奧林匹克聯(lián)賽)和 NOI ( 全國青少年信息學(xué)奧林匹克競賽)恩闻,今年至少有 3 個人在 NOI 中同時獲得了冠軍艺糜。這種針對青少年舉行的編程比賽是近十年內(nèi)的趨勢。
并且幢尚,NOI 中還有一個牛逼的特別規(guī)定:如果一位選手在 NIO 中獲得了金牌破停,他就不能參加國際信息學(xué)奧林匹克競賽的中國隊選拔賽,這就意味著尉剩,在國際信息學(xué)奧林匹克競賽中獲得金牌的中國選手真慢,都是首戰(zhàn)告捷。」
3理茎、不同國家程序員的偏好
接下來黑界,我們比較了每個國家的程序員在不同挑戰(zhàn)賽上花費的時間,然后與 HackerRank 用戶平均花費的時長進行比對皂林。
如上表所示朗鸠,中國程序員在數(shù)學(xué)競賽中的參與度遠遠高于我們預(yù)期的平均水平。捷克人貌似很喜歡 shell础倍,在這個單項他們是第一烛占。
4、不同國家程序員的編程語言偏好
除了剛剛得到的數(shù)據(jù)沟启,我們也想知道其他國家的程序員對特定的編程語言是否有特殊嗜好忆家。比如印度程序員是不是對 C++更感興趣?墨西哥程序員是不是都用 Ruby 編碼德迹?
總的來說芽卿,世界各地的程序員選用 Java 的比例都要高于其它語言(只有極少數(shù)的例外:如馬來西亞和巴基斯坦的程序員更喜歡 C++,臺灣的程序員更喜歡 Python)浦辨。而斯里蘭卡程序員也是 JAVA 比例使用最高的國家蹬竖,在 HackerRan 中也排名排在第八的位置。
程序員在 HackerRank 社區(qū)上沒有努力就放棄了挑戰(zhàn)流酬,得分為零币厕。瑞士的零記分用戶比例是最低,瑞士程序員也可謂稱得上世界上最頑強的程序員芽腾。巴基斯坦旦装、斯里蘭卡和尼日利亞目前排名位于低端,在毅力方面摊滔,他們都需要向瑞士學(xué)習阴绢。
其實對于世界各地的程序員來說店乐,無論你來自何處,都有可能成為一下個蓋茨或者克努特呻袭。
根據(jù)這些數(shù)據(jù)眨八,如果我們舉辦一場黑客奧林匹克比賽,中國將贏得金牌左电,俄羅斯將獲得銀牌廉侧,而波蘭則拿下銅牌。盡管美國和印度的程序員讓人值得稱贊篓足,但想進入前 25段誊,還是需要再繼續(xù)努力的~(*^__^*) 嘻嘻……
+群交流學(xué)習289683894