對競技程式設計的明星來說, 這項運 動意味著學習和工作的機會

「每次招到在這類競賽上成績好的 人, 他們工作表現都極佳」

在加州門洛派克 Facebook 總部舉 行的黑客杯 (HackerCup) 大決戰, 跟「超級盃」是天壤之別。在一間無聊 的多功能活動室裡擺著四排帶輪子的白 色工作台, 大約 25 位小夥子— 對, 全 是男的 — 把自己的手提電腦連上大螢幕顯示器, 手邊放了一個筆記本和 一支鉛筆。從外形看他們都甚少涉足健 身房, 但在競技程式設計這個小小世界 裡, 他們個個都是狠角色。

跟多數這類比賽一樣,Facebook 的黑客杯由一系列邏輯難題組成, 參賽 者需要用效率最高、運行速度最快的代 碼來一一解決。國家和國際級的程式設 計競賽從上世紀 70 年代末就已經開始出 現, 通常由大學和聯合國教科文組織之 類的國際非牟利機構主辦。矽谷是最近 幾年才開始把它當做一種人才挖掘制度 的 。 谷 歌 ( G o o g l e ) 和 F a c e b o o k 在 2 0 1 1 年開始舉辦一年一度的黑客杯, 讓來自俄羅斯、東歐 、亞洲的電腦科學青年才俊飛到這裡, 和本國人一起爭奪獎金, 享用免費壽司, 跟矽谷的招聘方見面。

投資軟件生產商 Addepar 工 程副總裁諾瓦科夫斯基 (Vladimir Novakovski) 說, 招募年輕程式設計人 才的做法開始流行起來, 因為這麼是有回報的 。「 每 次 招 到 在這類競賽上成績好的人, 工 作 表 現 都 極 佳 ,」諾 瓦 科 夫 斯 基說, 他自己也曾經是參賽選 手, 至今仍在密切關注賽事。「他們一般會比較快 、準確, 做事更主動。」

競技程式設計領域有一個公認的 超級巨星。在兩大線上競賽主辦網站 Topcoder 和 Codeforces 的 排 行 榜 上, 現年 21 歲的柯洛特科維奇 (Gennady Korotkevich) 都位列第一。二年級的 時候, 柯洛特科維奇在祖國白俄羅斯的 一個重要賽事中得到第二名, 這個成績 足以直接進入一個頂尖理工大學就讀, 不需要參加傳統的入學考試。在 11 歲那 年, 他在高中水準競技程式設計領域 的最高賽事國際資訊學奧林匹克競賽 (IOI) 上排在第 26 位。日後他將創紀錄 地三次奪得該賽事冠軍。

「吉恩納迪大概是唯一一個以競技程式設計為生的人, 因為他贏得太多比賽 了,」諾瓦科夫斯基說。「像他這樣的我們找不到第二個。」Facebook 的比賽頭獎金是 1 萬美元 ; 諾瓦科夫斯基說, 柯洛 特科維奇在這些實體或線上競賽上稱王稱霸, 每年大概能拿到 25 萬美元的獎金。

柯洛特科維奇不愛說話。在 3 月的黑客杯上, 他對採訪請求的回應是三個 字,「看情況」, 而後不回應通過朋友發出的資訊。他拿著一杯水, 平靜地坐在自己的手提電腦前, 像一個身著黑帽衫、黑褲 、黑鞋的代碼刺客, 全神貫注 地等待 Facebook 賽事工作人員宣佈比賽開始。

終於, 一個工作人員拿起話筒, 開始宣讀比賽規則, 他的身後是一些 俗氣的海報, 上面用猙獰的印刷體寫「FOCUS」( 專 注 ) 和「BEHOLD」( 見 證) 之類的口號。一共五道題, 不用按 順序解題。三個小時。程式要盡可能簡潔。在最短時間內寫出最乾淨、最準確的代碼的人獲 勝。

「願最強者獲勝! 」題目聽上去很簡單— 比如找到三藩市和洛杉磯之 間的最短路線, 或某種圖案 的地磚的最佳鋪貼方案, 不過往往需要在一個知名的演算法或數學 結構基礎上做出有新意的變化。頂尖的競技程式師必須迅速找出潛藏的邏輯, 相信自己的能力。「你必須在開始階段就 讓自己相信, 這個思路是正確的,」參與 了黑客杯主辦工作的 Facebook 軟件工 程師梅 (Wesley May) 說。

程式設計比賽其實沒什麼看點。參賽者在相當一部份時間裡是一動不動的。柯洛特科維奇是個例外。在考慮問題的時候, 他的雙腳會以一個固定的節 奏上下抖動。他會抓起筆在手背上一遍又一遍地轉。他會去拿水杯。摸面頰。

過了十分鐘, 他開始打字。腳依然不安 份, 雙手在鍵盤上高速敲打, 彷彿嗑了冰毒的法庭速記員。眼睛大概每隔七秒 鐘眨一次。

即將到 20 分鐘的時候, 這個白俄羅斯人似乎落後於他的老對手 、俄羅斯裔 的米特里謝夫 (Petr Mitrichev), 此 刻後者已經提交了第一個答案。柯洛特科 維奇在五分鐘後提交了第一個答案。在 比賽的進行中很難判斷誰在領先, 因為 時間只是其中一個因素, 評審還沒有批閱答案。柯洛特科維奇似乎完全無視了緊張的氣氛。在寫了 45 分鐘代碼後, 他 慢悠悠地去了一趟洗手間。這傢夥強到有時間去方便。

在比賽的多數時間裡, 領先者都是在瑞士谷歌工作的米特里謝夫。房間前方的記分牌顯示他提交答案的速度最 快, 不過沒人知道答案是否正確。然而就在剩最後五分鐘的時候, 柯洛特科維奇沖到了第一位, 他是第一個答了四道題的人。Facebook 工作人員查驗了答案 後裁定, 柯洛特科維奇的確是獲勝者。

在眾人的掌聲中, 他露出了一點點笑 容, 然後掀開帽子, 舉起了黑客杯, 獎杯的造型像是一隻高舉的黑色拳頭。再過了一個小時,Facebook 用大巴拉著全體參賽者去品嘗三藩市的當地美食。

柯洛特科維奇可以在矽谷任何一間公司拿到高薪職位。但他還沒打算作一 個職業軟件工程師。今年秋天, 他回到 了俄羅斯的聖彼得堡國立資訊技術 、機械與光學大學讀書, 準備在科學領域開創一番事業。

對這個以解題為樂的小圈子來說, Facebook 的黑客杯或谷歌的年度競賽 Code Jam 不算最重要的賽事, 作為一次全程費用報銷的度假還不錯。(最近兩屆 Code Jam 冠軍得主也是柯洛特科維奇, 分別在西雅圖和洛杉磯。) 兩家公司都是在網上舉辦資格賽的, 而競技程式設計的主要賽場, 至少目前來看, 還是在網上。

jeje

成百上千的程式師在 Codeforces 和 Topcoder 這樣的網站上較量, 前者由俄羅斯薩拉托夫國立大學的一位競技程式 設計教練在 2010 年創辦, 後者是一位前 美國 IT 諮詢公司 Tallan 員工在 2000 年創辦的。Codeforces 不會給參賽者發獎 金, 而現在已經是 IT 諮詢公司 Appirio 下屬機構的 Topcoder, 迄今拿出了將 近 7200 萬美元的獎金, 比賽會持續幾小時或幾周。

Topcoder 的問題通常在現實世界是有用途的, 企業可以從它的代碼庫裡購買代碼, 參與寫這些代碼的人可以得到分成。競技程式設計早年是美國人的天下, 但近幾十年開始失去優勢。從 1977 年到 1997 年, 美國的參賽隊在最重要的大學競賽「國際大學生程式 設計競賽」(ICPC) 上 17 次獲勝。參賽者包括 Zappos 行政總裁謝家華 (Tony Hsieh) 和谷歌公司第一位僱員希爾沃斯坦 (Craig Silverstein)。 自 1997 年至今, 美國再也沒贏過 ; 來自俄羅斯和中國的參賽隊佔主導。

據吳氏兄弟 (Neal and Scott Wu) 說, 美國參賽隊面臨的困難之一是, 美國跟其他國家不一樣, 程式設計比賽的成績不會成為一張入學通行證。「如果你在這種比賽裡成績好, 在中國或俄羅斯根本不需要報考大學,」吳 (Scott Wu) 說,「但在這裡, 成績好的孩子還是會被哈佛拒絕。」

吳氏兄弟在路易斯安娜州巴吞魯日長大, 父母是 1980 年代移居這裡的化學工程師。尼爾在九年級上了電腦科學課, 很快成為全美競技程式設計的頭 號人物。高中時代, 他分別在 2009 和 2010 年兩次輸給柯洛特科維奇, 那段時 間白俄羅斯人創下了空前的 IOI 七連冠。 去年柯洛特科維奇乖乖地待在學校裡, 受哥哥的成功啟發參與到競技程式設計中來的弟弟斯科特成為 IOI 贏家。

對吳氏兄弟來說, 競技程式設計是 一個通往職業程式設計的途徑。兩兄弟都曾被 Addepar 的工程負責人諾瓦科夫斯基相中: 斯科特在延遲一年入讀哈佛 的時候進過他的團隊 ; 尼爾 (Neal Wu) 則是他在問答社區網站 Quora 工作時聘請的。

尼爾目前在為文件分享雲公司 Box 工作。「重點是要有涉入未知領域的好奇心和意願 , 」 他 說 。「 一 開始我對程式一竅不通, 就跟很多人完全不知道怎麼用電腦一樣。這些競賽帶來了很多機 會。」— Ashlee Vance; 譯 經雷

  • 延伸閱讀

簡直是 Coding 界的麥可喬丹,21 歲少年把全世界 coding 大賽全贏光

到底是駭客松還是創業松?台大駭客松引爭議

想學 Coding?不妨從駭客松看看哪種「程式語言」最受歡迎