麻省理工學(xué)院 | 問與答:麻省理工學(xué)院的競爭程序員如何堅持到底
指南者留學(xué)
2022-11-16 12:58:09
閱讀量:1185
<p> </p>
<p><img src="https://info.compassedu.hk/sucai/content/1668574744902/1668574744902.png" width="808" height="568" /></p>
<p>當(dāng)你想到計算機程序員時,你可能會想到一個孤獨的程序員,坐在小隔間里,沐浴在閃爍的光線中。但你應(yīng)該想象一個團隊——在麻省理工學(xué)院的例子中,一個歡樂、勝利的團隊,由競爭激烈的學(xué)生程序員組成,致力于比競爭對手更快、更準確地解決難以置信的棘手問題。該團隊最近在國際大學(xué)編程大賽(ICPC)的北美錦標賽中排名第一,這意味著他們現(xiàn)在有資格參加明年的第46屆年度ICPC世界總決賽。</p>
<p> </p>
<p>在這里,團隊的三位成員——計算機科學(xué)和工程大三學(xué)生鐘子倩和鄧明陽,以及數(shù)學(xué)和計算機科學(xué)和工程大四學(xué)生Anton Trygub——描述了在頂級計算機領(lǐng)域的競爭是什么樣子的。</p>
<p> </p>
<p>問:我們的許多讀者可能從未見過編程比賽。告訴我們一些基本的規(guī)則:你面臨什么樣的問題,你有多少時間準備或解決它們,以及你被允許使用的工具。</p>
<p> </p>
<p>鐘:我們通常要在5個小時內(nèi)處理10到15個問題。您可以使用Java、Kotlin、Python和C/ c++進行編碼。大多數(shù)團隊,包括我們,更喜歡使用c++,因為它非常簡潔,通常運行得更快。</p>
<p> </p>
<p>鄧:在ACM-ICPC比賽中,一個團隊由三個成員組成,而只有一臺計算機可用,所以平均每個成員只有三分之一的計算機訪問權(quán)限。此外,編程競賽中的問題通常需要實現(xiàn)有效的算法和數(shù)據(jù)結(jié)構(gòu),所以我們通常在編碼之前花大量時間思考解決方案。</p>
<p> </p>
<p>問:你通常了解你的競爭對手嗎,或者在對方球隊有朋友嗎?編程比賽中有垃圾話嗎?換句話說,社會氛圍怎么樣?</p>
<p> </p>
<p>鐘:我之前就認識一些競爭對手,整個社會氛圍都很冷很友好。我們一起玩撲克和各種各樣的紙牌游戲;最后我學(xué)會了兩種新的紙牌游戲!我想在這里講垃圾話不太受歡迎。</p>
<p> </p>
<p>鄧:我同意。我和許多競爭對手交朋友,他們都很好。這里的人們有著共同的興趣和相似的背景。感覺就像一個社區(qū)。所以沒有必要在比賽之外競爭。</p>
<p> </p>
<p>Trygub:競技性編程不同于其他競技性活動,因為你不會像在足球、國際象棋等游戲中那樣直接與某人競爭。你只需要盡你所能做好,這樣團隊之間就不會緊張。在更高的層次上,競爭對手彼此了解,因為我們定期參加相同的比賽。我們在這里結(jié)交朋友,幫助ICPC社區(qū)發(fā)展!</p>
<p> </p>
<p>問:在你看來,是什么讓一個問題特別難解決?在北美錦標賽中,哪個問題是最難解決的?</p>
<p> </p>
<p>鐘:為了解決一個問題,我們思考和編碼。有些問題很難編碼,因為有很多混亂的細節(jié)和案例很難正確處理。對于其他一些問題,很難找到正確的解決方案。就我個人而言,我討厭前一類問題(這又不是打字比賽!),而后一類問題更受歡迎。H問題可能是最難的一個,我們是唯一解決它的團隊。</p>
<p> </p>
<p>Trygub:這個問題可能因為不同的原因而變得困難:它可能只是繁重的執(zhí)行而很少思考,或者需要一些知識,如果沒有這些知識,你可能會放棄,或者有很多混亂的細節(jié)。我更喜歡那些困難在于思考部分的問題,一些創(chuàng)造性的問題。閱讀問題陳述并感受“這怎么可能解決呢?”</p>
<p> </p>
<p>問:告訴我一個你覺得特別有創(chuàng)意的解決方案,或者一個你引以為豪的解決方案。</p>
<p> </p>
<p>鄧:我覺得安東對H問題的解決方案和子茜對D問題的解決方案都很有創(chuàng)意。</p>
<p> </p>
<p>Trygub:我不認為我的解決方案有什么特別的創(chuàng)造性,但是H問題解決起來很有趣。設(shè)置是,“這怎么可能被解決?,然后你開始觀察一些情況,注意到一些觀察結(jié)果,它們突然加起來就是完整的解決方案。</p>
<p> </p>
<p>鐘:D題的細節(jié)我不記得了,但我記得這是一個相當(dāng)簡單的問題,需要一些計算技巧!</p>
<p> </p>
<p>問:你將如何為明年的世界決賽做準備?</p>
<p> </p>
<p>鐘:我想我們會一起多做一些訓(xùn)練比賽。沒有什么秘方。主要就是多練習(xí)。</p>
<p> </p>
<p>鄧:我們會多練習(xí),在練習(xí)的過程中我們會完善我們的策略。</p>
<p> </p>
<p>特里古布:在這一點上,我們必須多聽教練的話!不過主要是練習(xí)。</p>
<p> </p>
<p>問:在過去的幾年里,來自中國、俄羅斯和波蘭的隊伍在世界決賽中占據(jù)了特別的優(yōu)勢。為什么呢?從你的角度看,是不是不同的國家有不同的備戰(zhàn)和比賽方式?</p>
<p> </p>
<p>鐘:我覺得俄羅斯和波蘭的很多球隊訓(xùn)練都很刻苦,他們的策略也很好。我聽說來自莫斯科國立大學(xué)的紅小熊貓團隊喜歡從難的問題開始,把一些容易的問題留到最后一小時。這并不是最優(yōu)的,懲罰(你花在解決所有問題上的時間越長,懲罰就越大),但它可能更好地利用了最后一個小時(最后一個小時通常是非常有壓力的,很難把事情做好)。這和我們通常追求的很不一樣。</p>
<p>特里古布:我不認為我們應(yīng)該在這里談?wù)撃撤N趨勢,來自那些國家的選手碰巧非常強大,幾次進入了世界決賽。我希望我們能在決賽中帶來一點北美的優(yōu)勢!</p>
<p> </p>
<p>問:作為一名程序員,能告訴我像這樣的比賽教會了你什么嗎?</p>
<p> </p>
<p>鐘:我認為這有助于我更快更準確地編碼。在競賽中,一旦出現(xiàn)問題,你就沒有太多時間去調(diào)試。</p>
<p> </p>
<p>Trygub:它幫助我尋找最有效的方法來實現(xiàn)某些東西,同時保持它的整潔,否則我會死于調(diào)試。</p>
<p> </p>
<p>鄧:這也提高了我的協(xié)作能力。在這樣的比賽中,你必須與你的隊友溝通,清楚地表達你的想法,團隊合作,相互信任。</p>
<p> </p>
<blockquote>
<p>注:本文由院校官方新聞直譯,僅供參考,不代表指南者留學(xué)態(tài)度觀點。</p>
</blockquote>