1. 程式人生 > >資料顯示:中國程式設計師是世界上最牛的程式設計師

資料顯示:中國程式設計師是世界上最牛的程式設計師

如果有人問你哪裡的程式設計師最牛,十有八九你會覺得是美國。畢竟美國擁有非常多傑出的程式設計師:比爾·蓋茨、 肯·湯普森、 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,還是需要再繼續努力的~(*^__^*) 嘻嘻……