中國大學生計算機編程第一人樓天城訪談

25歲的樓天城有“中國大學生計算機編程第一人”的稱號,也被參加競賽的學子們敬稱爲“樓教主”。他的傳奇經歷一直激勵着衆多年輕學子:從2001年開始參加計算機編程競賽,並連獲全國一等獎;2004年入選國家集訓隊,同年獲得IOI金獎並被保送到清華大學;2008年開始在首位亞裔圖靈獎獲得者姚期智院士的理論計算機中心攻讀博士;2007年和2009年兩次帶隊參加ACM/ICPC全球總決賽並獲得第二名。《程序員》近日專訪了編程奇才樓天城,讓他與我們分享一下他傳奇的編程競賽之路。

記者:請簡單談談你的童年經歷。童年哪些人、哪些事對你的影響最大?

樓天城:小時候,我比較愛玩,並不怎麼喜歡學習。後來在8歲那年,我跟隨父母一起到清華大學遊玩。身處中國的最高學府,我不自覺地受到了感染,當時就給自己定下了童年的第一個目標——要在學習上投入更多的精力,嚴格要求自己,將來一定要到清華大學讀書。這是童年中對我影響最大的一件事兒。經過十年的努力,現在這個願望已經實現了。

父母是童年時代對我影響最大的人,他們特別注重對我心理、性格等素質的培養,而不是侷限於學業。他們認爲高素質對人的影響遠遠超過學習能力的影響。在高中我能如願參加各項編程競賽,也離不開父母的支持,但前提是數學等智力科目不會受到影響。這類競賽並不屬於高考科目,而且勢必會對學業產生一定影響,如果沒有父母的支持,參加競賽這條路是走不通的。父母的支持支撐着我一直在競賽這條路上走下去。另外,我比較喜歡各種棋類,還喜歡踢足球。棋類可以鍛鍊人的思維,而運動也會培養人的思考能力。小時候我就考慮,向對方球門底線帶球(如果是向球門帶球,一定是越向前越好),球門與球的角度是越變越大還是越變越小;往前帶球,這個角度是越大越好,還是越小越好。經過計算後,我發現把球帶到某個地方時,角度是最大的,再往前帶就會變小,而這個地方就是射門的最佳位置。結論是:這個最大的角度與距球門的距離有關。

記者:你是什麼時間開始接觸編程的?在學習編程過程中,都開發過哪些應用?

樓天城:我從高一開始學習編程相關知識。編程對於高中生來說,確實是一門特別的科目。我所開發的應用中印象比較深刻的是黑白棋。當時在聯衆的遊戲平臺上,它有90%的勝率。最初設計的黑白棋只能搜索到六層,它的“棋藝”並不理想,當時很多此類的黑白旗遊戲也能做到這一步。爲了突破這一侷限,我研究了各種優化技術、博弈算法及搜索技術,對算法進行了優化,使原來的搜索增加了四層,它的計算能力、博弈水平也隨之提高了很多,一時很多人都難以勝過它。雖然這個遊戲並沒有像李開復當年寫的黑白棋那麼優秀,但對我來說,還是蠻有成就感的。另外,我還做過很多其他的應用,但大多是實現一些涉及核心的關鍵問題,並沒有作爲產品公佈出來。

記者:你第一次參加編程競賽是什麼時間?在之後的競賽經歷中,遇到了哪些挑戰?

樓天城:2006年,我第一次參加編程競賽,是Google編程挑戰賽。由於一個失誤,我與冠軍擦肩而過。大賽結束後,我非常沮喪。後來在父母和老師的鼓勵下,我下定決心要再等機會,贏取冠軍。

兩年後,直到2008年,我纔有機會再次參加Google編程挑戰賽,並在最後8分鐘趕超了當時領先於我2小時52分的南非選手,獲得了冠軍。這次大賽對我來說可以算作一次真正的挑戰。

記者:2010年舉辦的topcoder公開賽,你取得了一個不錯的成績,對此有什麼感受?

樓天城:topcoder公開賽是世界範圍內一年一度的編程大賽,2010年在賭城拉斯維加斯舉行。我參加的其中兩項不同的比賽都進入了決賽,一項是24小時的類似馬拉松的Coding比賽,另一項是算法編程。這次比賽比較可惜的是,在最後決賽階段犯了一個小小的錯誤,而滑到了亞軍的位置。以後再有同樣的機會,爭取能夠獲得更好的成績。

記者:請談一下現在讀博的感受。

樓天城:我從2008年開始在姚期智院士領導的清華大學理論計算機中心攻讀博士學位,現在還處於學習和提高階段,研究方向主要是以組合算法爲主。總之,很幸運能夠得到姚院士的指導,這段時光註定將成爲我人生中最重要的階段之一,我會用心努力做好每一天。

記者:除了編程競賽,你之前還參加過很多數學方面的競賽。有些人認爲編程與數學沒有太大的關係,你怎麼看?

樓天城:可能是我們所遇到的問題不太一樣吧。我遇到的問題多側重於核心部分,往往比較抽象,對效率要求也很高,要解決它們,必須有深厚的數學基礎,從這個方面來說對數學要求還是非常高的。

記者:你怎樣看待編程競賽?對有志於投身編程競賽的人有何建議?

樓天城:編程競賽是一個“公平、刺激、酷”的腦力遊戲,除了能獲得樂趣之外,還能很好地鍛鍊自己的思維,磨鍊堅韌隨和的性格。參加了多次競賽,我真實地體會到它的殘酷性。編程競賽是頂尖高手之間全方位素質的較量,即使一時的狀態不佳,也會讓你與冠軍失之交臂,最終換來的將是幾年的漫長等待。但也相當刺激、公平。這也是我喜歡它的主要原因。我感覺自己很幸運,能夠接觸到這些編程競賽。這種比賽形式,完全符合我的思維方式。在這十多年來,無論在思維的培養還是對性格的磨鍊上,它對我都起了很大的作用。

至於建議,像我們這些靠理性思維來解決問題的人,平時過於依賴自己的計算能力,不相信定式、經驗之類的東西。而實際情況卻是,有一些憑藉經驗才能做到的事情,我們做得不夠好,只是想當然地以爲計算等於一切,結果卻與目標相差很遠。所以有很多非智力因素也需要去掌握。否則,你可能會因此而落後於他人。這算是我的一個建議。

另一個建議就是不要把參加競賽當作上大學的一個途徑。競賽可以幫助你提高自學能力和綜合素質,鍛鍊思維能力,也可以幫助你提高其他科目,但平時一定要注意協調好競賽與其他科目之間的關係,不要把其他科目落下,不要讓競賽成爲影響正業的事情。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章