電腦領域有哪些常見的比賽
- 2020 年 2 月 24 日
- 筆記
公眾號關注 「五分鐘學演算法」
設為 「星標」,每天帶你學演算法!

入了電腦這一行,寫程式碼便是我們安身立命的本領,夜以繼日勤學苦練,希望早日成為編程高手。
和其他行業相比,電腦領域的實驗成本是比較低的,畢竟,我們程式設計師的練習,通常是在電腦上敲擊下一行行程式碼,然後執行查看結果。而很多行業,是需要真真切切的進入實際工作環境,加以學習實操。例如,醫學生想要積攢經驗,需要和真正的病人打交道;土木建築行業的同學,學校都會安排親自去工地體驗一番,感受一下面向黃土背朝天的辛勞。
相對低廉的實驗成本,就促進了行業的快速發展,同時的,也為比賽的開展提供了很好的土壤。每年,電腦領域的各類賽事層出不窮,年景好的時候,獎金數目也是讓人瞠目咋舌。
這些比賽大多數是由企業和科研機構舉辦的,企業是想通過賽事,提高在學生群體中的知名度,希望能將優秀學生招攬進來。科研機構舉辦比賽,多了一些公益的味道,會提供一些機構內部的數據集,讓學生們能夠有機會接觸到前沿的科學研究,促進行業的發展。
雖然同屬一個領域,細分一下的話,賽事還是有所區別的。基本屬於兩大類:經典演算法比賽,數據挖掘及 AI 比賽。
經典演算法比賽
所謂經典演算法,我們從事電腦領域的,基本都是從數據結構學起的,經典演算法注重程式的執行效率、時間和空間複雜度。這一類的比賽最為出名的是 ACM-ICPC 競賽。由於我自己也參與其中一段時間,這裡會著重介紹一下。
這是由國際電腦協會舉辦的國際大學生程式設計競賽。在求職的時候,我們可能會發現,有些面向學生的招聘需求上,可能會加上一條:有論文或 ACM 比賽獲獎經歷者優先。這不是個例,說明很多企業認同了 ACM 選手的實力,從側面表明了這個比賽的重要性。
簡單科普一下,準備面試時我們或多或少會做一點 Leetcode 上的題目,其中等級分為容易題、中等題和難題三種程度。但通常來說,Leetcode 上的難題才是 ACM 比賽的入門題。該比賽的形式,是一支人數為 3 人的隊伍,在 5 個小時的時間裡,去解決若干道編程題目。最終的成績與嘗試提交次數、解題數目、解題時間密切相關。這種比賽,極其考驗隊友之間的溝通、協作能力。
像打怪升級一樣,比賽通常分為網路賽,區域現場賽,和全球總決賽。通過網路賽,可以拿到區域賽的名額,區域賽中前三名的隊伍,才有較大概率能夠進入全球總決賽。
由於能夠進入全球總決賽的人太少了,區域賽的成績就已經被很多企業關注了。通常會有金牌獎,銀牌獎和銅牌獎。銅牌選手一般受不到太多關注,銀牌及以上就能夠為面試提供加分項了,能夠在保研、找工作中受到青睞。
除了 ACM-ICPC 比賽之外,在經典演算法領域的賽事,國外比較知名的還有Google每年舉辦的 Google Code Jam,簡稱 GCJ;Facebook 舉辦的 hackercup,還有 Topcoder 舉辦的 TCO 比賽。中國也有類似的比賽,百度每年舉辦的百度之星,微軟舉辦的編程之美。
華為每年都會舉辦一個全國性的軟體精英挑戰賽,我參加過一次,題目的類型比較偏資源預測和規劃,我有點做不動,感興趣可以看看。
數據挖掘及 AI 比賽
近幾年,是幸運也是不幸,在沉寂了很久之後,AI 又被炒得火熱,有些時候,特別火不一定是好事,畢竟慢工出細活。但不管怎麼說,這一波發展,的確大大促進了整體數據挖掘比賽、AI比賽的數目和水平。
以前也有數據挖掘比賽,但通常數量少、數據規模小,有點像學生之間的小打小鬧,大家都不怎麼當回事。但現在的比賽,往往會發現,哇,怎麼獎金這麼高,總額超過百萬了。不要覺得誇張,百萬獎金比賽每年都有。哇,怎麼數據這麼大,幾十個 G,烏龜網速得下載個幾天。當然,也不是所有的比賽數據都這麼大,數據挖掘和視覺類的數據通常比文本類數據要大。
這些比賽,我是很推薦去做的,因為它的確能夠給我們帶來很多好處。
首先,不管能不能獲獎,只看數據本身,它們是機構或者企業辛辛苦苦整理出來的真實、寶貴的數據,平時我們是不可能有機會接觸到的。這個時代,數據真的很貴。在比賽中,我見過淘寶、京東、知乎、騰訊真實的數據,雖然已經脫敏處理過,但價值還是非常高的。
其次,如果通過一番努力獲獎了,首先能夠得到出題方的青睞,一些出題公司給出直通終面的福利。我總覺得,一線互聯網大廠的面試少了幾道關,算是一件幸福的事情。
常見的數據挖掘比賽平台和賽事有:
Kaggle 比賽平台,上面有很多賽事,也有很多前人的參賽經驗、程式碼分享,對新手十分友好。
天池比賽平台,這是阿里雲旗下的大數據平台,經常舉辦各類數據挖掘賽事,獲獎還是挺有分量的。
AI Challenger,是李開復牽頭組織的賽事平台,已經舉辦了幾屆,賽題和數據的品質都非常硬核,可惜 2019 年沒有再辦了。對了,2018 年的獎金總額有三百萬之巨,十分誘人,希望今年可以重新啟動。
DataFountain,每年舉辦擁有多個賽道的百萬獎金賽事 CCF-BDCI,之前我在這裡開啟了人生第一個比賽。
騰訊廣告演算法大賽,騰訊官方提供了很多廣告點擊的數據,獎金豐厚,水平挺高。
之江杯,之江實驗室每年舉辦的比賽,獎金還是挺多的。
KDD-CUP,每年由 ACM 的數據挖掘及知識發現專委會主辦的數據挖掘研究領域的國際頂級賽事。
DataCastle,注重大數據和人工智慧的競賽平台,成立於 2016 年。
FlyAI,提供 GPU 訓練資源的 AI 競賽平台。
工業大數據產業創新平台,賽題和工業的真實業務結合的更為緊密一些。
JDDC,京東舉辦的和多倫對話系統相關的比賽。
CTF,神秘的網路安全大賽。
暫且列舉這麼多,其他的競賽平台也有不少,類型與這些基本相同,就不贅述了。
結語
以前很多比賽的參賽群體主要是學生,但近些年,由於賽題品質的升級,獎金的提高,也吸引了很多互聯網工作者前來同台競技。比賽的難度和有趣程度,同步提升。如果想要多一些鍛煉機會,和同齡人進行技術交流,提升自己的實習,參加比賽,對我們來說,不失為一個好的選擇。
END ● 一文學會「回溯搜索演算法」解題技巧● 如何利用寒假的時間來準備2020年的藍橋杯?● 一片麵包,帶你理解洗手的重要性● 數據結構和演算法學習指南 點「在看」你懂得