1. 程式人生 > >有哪些值得推薦的計算機專業的競賽?

有哪些值得推薦的計算機專業的競賽?

咦,被人邀請了。其實我是不太適合回答這個問題的,畢竟都是看自己的孩子好!而我自己用過的OJ、參加的比賽也不多,只能憑感覺點評一下,也許並不公正。一、經典演算法競賽平臺TopCoder:TC大概是全球題目質量最高的了,智商題為主,做題時間短,在我眼裡TC堪稱完美。要說有什麼體驗上的不足就是:得裝個專門的客戶端。有些可惜的是:TC馬拉松這幾年風頭被Kaggle蓋了。當然,TCO仍然是最有分量的比賽。CodeForces:CF的題目質量也很高,但經常有些奇怪的題目,不過大部分的D或E都還正常。有時會涉及一些程式碼量大的題目,除了智商要求,程式碼能力也挺重要(大家都是套板子麼?),這2年的新題不是很瞭解,相信CF會一直保持高質量。CodeChef:CC這兩年毒瘤題氾濫了,好在CC的比賽給了你足夠的時間,你可以想盡各種辦法來解決這些問題。難題當然各有各的難點,其實難一些的高質量題反而相對好出,你可以把一些奇怪的知識點放進去,有時再組合一些極為難寫的,那麼一道難題就誕生了,這些知識點如果有什麼巧妙之處,那麼題目質量也會隨之提高。然而最難出的大概還是TC那種的題目,他們之間的差別就好像技術含量極高的製造業與文化創意產業,創新總是可遇而不可求的。Hackerrank:HR最初從面試起家,後轉型做競賽實屬不易,HR的題目質量還可以,但參差不齊。既有7k+的神題,也有超水且無趣的題目。不過HR的題有一個好,就是樣例解釋清晰,題解完整。適合初學者學習進階。以上為國外常年辦比賽的一些平臺,相比國內的平臺還遠不如以上幾家專業,大家都在努力做,目前比較有影響力的大概是:BC,HihoCoder和我們(51nod)吧,很慚愧,只是做了一點微小的工作。二、演算法大賽GCJ和HackerCup連同TCO,可以算作全球3大個人賽事,個人認為TCO要比另外兩個更體現個人能力。國內持續在做的大賽事大概是:百度之星,程式設計之美。在我眼裡百度之星的地位相當於TCO,程式設計之美相當於Hacker Cup,畢竟才辦了沒幾年。這裡多說一下,Astar儘管遭各種吐槽,幾經波折,難得的是堅持下來了。而之前阿里,騰訊,網易的比賽已經沒了訊息。今年看到計蒜客也開始做大賽了,希望能夠堅持下去,當然其中的困難是很多的,任何一家能夠積極推動的企業,都應得到尊重(什麼,你說賽氪娘…..)。說一下華為軟體精英挑戰賽,這次的題目雖然是馬拉松性質的,但感覺更像出題人偷懶。最後的評分也變為了面對資料做優化,因為不是真實資料,也不是解決實際的問題,又沒有多項式的解法。理論上不論什麼樣的程式,總可以找出一些反例讓程式跑出的結果很差。除此之外,HDU等高校OJ也針對學生,常年辦一些比賽,希望他們也能越做越好。三、OJ平臺SPOJ:spoj把出題的工作開放給每個使用者了,因此上面有很多稀奇古怪的題目,有些很難,有些甚至你都不知道是否可做……Ural:ural秉承俄羅斯人的傳統,既有智商題,也有幾天幾夜寫不完的論問題。當然最難的還是讀題,俄羅斯人的英文讀起來總是很怪,並且他們還特別愛寫背景描述。其他國外OJ用的很少,不瞎評論了。OJ方面國內做的很出色,既有POJ,ZOJ,HDU,Vijos這種老牌勁旅,也有青橙,大視野,UOJ這種新銳(這三家的題目質量都很高)。此外需要特別說的一個是Project Euler:PE可以說是各類數學程式設計題的引領者,往往是先在PE出現了某類新型的題目(黑科技),然後被其他比賽或OJ平臺改編,加入一些新的元素,最終放到了某場比賽當中…..四、面試筆試Codility:雖然是用作面試的,但題目質量是很不錯的,畢竟創始人是某界Final大神。其中有些題目對於競賽黨來說,水過大概可以,但最優的複雜度並不是每個人都能做到,哪怕是acm final選手。並且這些題目不涉及任何高深的資料結構及演算法,大概只要有基礎的知識,就可以上手做。用作面試的話,我首推Codility的題目,不論考官還是考生。lintcode:我沒怎麼做過,只是翻過幾道題,發現還是有難度的,雖然都是lt,但明顯比leetcode難了不少。leetcode:適合作為演算法科普和入門,對於一個完全沒搞過競賽的人,接觸並學習演算法是個不錯的選擇。五、資料探勘及AI比賽Kaggle,TopCoder都有些資料探勘比賽,TopCoder和Hackerrank偶爾還有些AI的比賽,不過比賽的方式不太一樣,TC和HR都是提交程式碼,而Kaggle是提交資料。我們也想做這類比賽,但採用哪種方式還沒能確定。國內做資料探勘比賽的包括:阿里天池以及Datacastle,儘管這兩年ML熱,但這類比賽是很難組織並運營的。印象中,北大有個botzone,是專門做AI對戰的,也很有意思!今年滴滴也辦了一個數據挖掘比賽,獎金極高,相信也吸引到很多牛人蔘與,那麼我們看明年滴滴是否還會堅持來做這樣一個事情。六、商業化(不好意思跑題了)以上我列出的這些國外OJ及平臺,除了學校辦的之外,基本都得到了很好的商業化。TopCoder已經形成了多個領域的眾包平臺。HackerRank有自己的一站式電面產品,很多企業通過在上面組織比賽來招攬人才,或使用他們的線上筆試服務來篩選簡歷。Codility在協助企業筆試,幫助企業評估程式設計師能力方面,做了很多有價值的工作。Kaggle更是成為了很多企業尋找解決方案及技術人才的捷徑。而我上面列舉的國內的一些平臺及產品,只要是企業而非學校運營的,都面臨著生存的困難。商業化方面並不是國內的企業不努力,而是環境不成熟。很多網際網路企業的技術部門,仍然不瞭解演算法競賽這個領域,且技術部門在企業內部並沒有太多話語權。當你向一個業務驅動的網際網路企業的HR去解釋演算法競賽時,內心是崩潰的。——————————————————————————————————————————最後,對於初學者,我建議大概是這樣一個學習路徑:leetcode => Codility => HackerRank(HR有難度分級適合學習,當然大家來刷51nod也是極好的,畢竟我們都是中文題目,並且是精選過的) => 參加一些線上比賽 => …… 走向人生巔峰