1. 程式人生 > >ACM以及大學兩年半經歷

ACM以及大學兩年半經歷

應老師要求,我就大概總結一下這兩年半大學的經歷吧。

大一上學期:

第一個月就是軍訓+社團面試巴拉巴拉。當時還是很小白很單純很耿直,導致幾個面試(一級社團)結果不是太好。

接下來有一些社團活動(賺課外學分、開會),對學校課程十分上心,可以說大一是學校課程學的最好的一年了。後來大概期中考試之前實驗室開始納新。總結了一下社團面試的失敗,打算從第一個實驗室開始面,能進哪個進哪個。

第一個是網協,拿到網協納新題發現都是c語言題目(連結串列之前的所有內容)。然後開始快速學習c語言和過面試題。由於大學之前學過易語言,而且有一定的程式設計經歷(雖然比不過OI選手),印象就是隻花了幾天就跳著看完了c語言基礎語法。然後當時學校斷電了幾天,就趁斷電百無聊賴花了許多小時邊查書邊寫了個貪吃蛇。

然後,雖然很忐忑,網協一面機考,二面都非常順利(雖然自己不知道,但當時的水平在新生裡還是挺不錯的,畢竟打過OI的都是絕少數)。

然後就稀裡糊塗地進了網協。自然也沒面軟協。

大一上學期個人印象是學校課程學的非常好,忙於掙課外學分(方法不當,轉學分走了很多彎路),然後就沒別的了。

大一下學期:

中間的寒假髮現有人組織程式設計訓練(年前年後四個星期的樣子),一開始做了幾個題發現,太水了打不起精神來做......

最後一週時組織者拉了BFS、DFS專場,花了幾天時間反覆做了一下,最後閉著眼都能把程式碼背下來,感覺學到了不少東西(當時還是菜)。

第二學期開學,發現有個叫做“西郵第二屆ACM程式設計大賽”的東西(班助是張浩然),大一大二學生參加的。當是自我感覺還是挺良好的,覺得至少可以拿個銅吧,甚至覺得可以試一下衝銀(而且綜測學分很誘人),然後在班助的號召下班裡組了個隊去打了打(我,李思遠,高嘉兩),然後稀裡糊塗拿了第一名(嗯,感覺很爽)。

再之後,就又聽說有個ACM省賽的東西,然後就報唄。不過心想著自己還是菜,要是可以補一下演算法就好了。當時想的是抽時間補一下,也就是說不是主打ACM。

然後很悲劇地+莫名其妙地被拉到了一個叫做“ACM戰鬥隊”的QQ群裡,在沒有被告知的情況下就開始了“訓練+考核”。

嗯,當時心氣還是挺高的,想著學一下作業系統之類的東西,然後先學彙編把。就搞了兩本書學彙編,然後課程學的也不錯。

然後被一下子告知“每週都有一堆訓練題,週五下午集合講題“。我???,這是什麼情況???。就像馬路上竄出一個人來通知你:”你每天必須在家做30個俯臥撐“一樣莫名奇妙。好吧,做就做吧,畢竟是學長。然後本來學習作業系統的計劃的時間被強行縮減拉去做題。當時還是菜,連什麼是演算法都不知道,更別提資料結構亂七八糟。拿到題,能想到一個很麻煩的做法就開始剛、調bug,往往是週一釋出題目,週一晚上從7點到11點可以剛出一個,週二去自習補作業,週三週四可能又剛一晚上。也不知道百度一下有沒有優美的解題姿勢。最後其實也沒從訓練中有太大的收穫。最後又莫名其妙地被從集訓隊中踢掉。(原來加了群就算是集訓隊的了,咦我還沒同意呢/捂臉,這也解釋了為什麼會有學長強行拉去做題了)。

中間經歷了3G、Linux小組的納新。3G自然是沒考慮了。當時也糾結了一下是不是從網協跳Linux,但是想了想網協協會長還是老鄉(雖然協會長也建議跳,一個計科的同學在網協確實有點尷尬),然後就看了一下《Linux鳥哥的私房菜》,然後最後去一面的時候學長問多久能寫出搜尋,我說5min(感覺上電腦5分鐘足夠了),然後讓用筆手寫了一個BFS核心部分,我也不知道哪裡是核心啊,就從頭開始手寫,用筆手寫可能費了好久的時間給學長留的印象不好,自己心裡不由開始吐槽面試官哪有讓人五分鐘手寫程式碼的,就算是抄也得抄十分鐘啊。然後問了DFS和BFS的區別,莫西莫西。第二波面試官讓寫了一下二分查詢(好像是楚東方學長),還有其他各種問題就記不清了。最後查面試結果的時候,狀態是加面。

好吧,本來加面也沒什麼,但是這不是還要繼續拉著acm刷題麼。而且最近繼續學彙編、看一些別的書、事情很煩還覺得還是留在網協吧,一氣之下就禮貌地簡訊回絕了。

大二上學期

好吧,中間的暑假確實沒學什麼東西,只是跟著大三的同學刷了點題,當時是翻了翻大三同學的題,發現沒有什麼難的題就跟著做了兩場(後來瞭解到他們不知道什麼原因拉了一堆水題)。

然後這個學期,除了資料結構課秒殺以外其他學校課程跟高中差不多了。自己處於一個迷茫期,實在是浪費了很多時間(後來瞭解到Linux小組留校學了不少東西)。除了在圍棋比賽上撿了個第一名以外也沒什麼可以說的了。

大二下學期

中間的寒假確實好好地學了一下dp,分門別類地做了不少題。(不過後來還是感覺那些進集訓隊的演算法比較牛逼)

然後又是一輪校賽,班裡之前的隊友一個在Linux小組,一直沒學演算法。另一個在集訓隊。就只好拉著Linux小組的隊友加上一個大一新同學一塊湊了個隊。嗯,打OI的還是比較厲害,被虐了一場拿了第二,後來也覺得打acm挺有意思的(就是頭有點冷),剛好集訓隊有個人退出了,被之前的隊友邀請過去,走了一個正兒八經的流程式的面試,算是正式的加入集訓隊了吧。好吧,我覺得以之後我們面其他人的水準,我還是太菜(瘋狂腦補面試官的嫌棄),不過把握還是挺大的,畢竟學演算法的就那麼幾個人什麼水平大概有點數,還有人推薦(咳咳)。

然後這個學期課也比較清閒,就開始上課刷題,下課刷題,各種刷題。開始接觸一些正確優雅的演算法、資料結構。雖然是很菜,但比之前好多了。

中間去寧夏打了個邀請賽,驚恐地發現題目都是我喜歡的,水了個銀牌。

好吧,一說到學習就沒得說了,因為學習從來不是一個富有波瀾的過程。

大二、大三中間的暑假

嗯,留校刷題。

跟著大佬的思路,然後還是學到了不少,也見識到了很多大佬的風範。
大三上學期

一開始一塊打網路賽,一塊訓練,風風火火,感覺還不錯。

打完南京,開始感覺力不從心,然後是焦作打鐵。

對自己整體上自我反省,發現自己技術上有很大欠缺。就算拿到ICPC的牌子也找不到好工作。不能太冒險,雞蛋不能裝到同一個籃子裡。

然後就向學長請教、各種自學技術。

從焦作回來之後立馬重感冒,沒有一絲絲防備,強行撐著打完排位之後勉強拿到了ec名額,跟兩個學弟組了一隊。接下來兩週除了拉了幾場訓練,基本都去學技術了,雖然自己感覺拿獎無望,但是訓練賽還認認真真打下來了,畢竟不努力就一定沒有回報,現在還沒有到放棄的年齡。

兩週後EC Final,由於一個隊友讀不了題,自己成了隊內英語暫時最好的。為了提高效率只能用流水線的策略。所以是我讀了五道題,然後跟隊友各種商量題目,出反例,理論推導。一個隊友數學不錯,就把解析幾何的題目丟給他不管了。最後拿銅,但不知道為什麼只有”至少有個交代了“的感覺,沒有太多興奮。最後,EC Final比賽結束==退役。

現在

現在還是在大三學期末。

現在還是在努力補技術的缺口,能補多少補多少。

集訓隊沒有技術這一說,只有演算法。那好吧,誰讓它的名字叫“acm集訓隊”呢。

不過作為學長,還是建議學弟學妹在其他實驗室,或者自己好好學一下技術,不要把雞蛋裝到同一個籃子裡,ICPC牌子是今後考研、工作很大的加分項,但是也不能落下技術這個基本項。

之前的學長學姐們大部分都去考研了,集訓隊對外宣傳也就只是宣傳拿到的獎項。但是從楚東方學長在新生大會上引起的反響來看,  “我拿到了阿里的offer、騰訊的offer、華為的綠卡”  在他們心中更能激起巨大的波瀾和轟動。

希望在集訓隊以後的宣傳中,不僅能拿出各大賽事的獎項,還能有更多的offer。