2018計算機專業保研面經(清華、浙大、華科)
開始寫這篇博客的時候是在從浙大返校的路上。一路過來真不容易。旁人眼中對保研可能只是艷羡,仿佛就只要坐等offer似的,雖然我在此之前也確實沒想過會跟打戰一般的度過這幾個月。
先大致說明下個人條件。福州大學計算機實驗班,排名專業第2(九月初印的成績單),拿過一次國獎和數次校級一二等獎學金,兩次校級三好學生,建模國二,美賽H獎,服務外包國二,還有一些零零碎碎的小獎。拿到保研資格應該是沒太大問題。
3月份開始意識到差不多要准備保研的事情,加了兩三個學長姐問了下需要開始准備什么東西,大多數都是說可以開始整理簡歷和聯系導師那些,去年保上浙大的學長說他4月份就開始聯系導師了,遲了可能會沒有名額,但也有告訴我現在太早聯系等到暑假夏令營那會老師都已經忘記了。
那時候不太懂沒名額是什么意思,難道在復試之前就能先發offer嗎,后來我是五月份中旬開始給各校導師發郵件的。基本都收到回復了,但大多都是類似於“歡迎報考我校推免生”的官回,復旦的老師回復說夏令營碩士名額少可以投直博OTL(直博確實普遍會比直碩更容易些)。
現在回想起來我感覺那時候發郵件其實確實太早,如果不是有十足的把握比如本科C9成績很好肯定有條件能入營,或者能得到本校實驗室合作關系的老師推薦什么的,完全可以等拿到入營資格再發。因為至少以我的條件,對方老師並不會這時候就能答應給你留出名額來等你進復試。
夏令營的報名從6月份前后就陸續開始了,在此之前我整理了大學期間獲得的所有獎狀(電子版掃描件)、競賽/項目經歷,思考整理自己拿得出手的所有資本,還包括白底和藍底的電子版一寸照、從各個學長姐請教面經的聊天記錄整理成篇、以及導師推薦信模板等。我投了的夏令營有清華、科大、華科、北航、復旦、華理。除了清華投的是軟件,其他都是計科。海投其實挺累人的,因為各個學校的申請表、填報系統、需要的資料都不同,即使是大部分個人信息都早有准備的情況下,填完這些七七八八的東西仍要花上不少時間,而且還要跑學院樓蓋各種章,請各種老師簽推薦信什么的。特別想吐槽復旦那個報名系統,是我見過的所有高校中最麻煩的,就仿佛有種不是為了收集信息,而是為了考驗對復旦的期待值是不是足以撐到填完這個系統。本來還想投同濟,但那會恰好在參加清華夏令營結果沒注意就錯過了申請時間。
清軟的復試時間特別早,是在6月初,這時候其他大部分學校甚至都還沒有發夏令營公告。夏令營的形式是實驗室講座+機試+面試。第一天上午聽了一早上的介紹,中午就在會議室吃盒飯orz 中午12:30開始機試,機試4道題,時間好像是3個半小時,不是oj,就是給了一份寫着題目的紙質試卷,難度中等偏容易。我其實刷的題不多,那段時間也就每天一兩道LeetCode以及打打周日的比賽,結果在一道題看錯題目的情況下居然仍然拿了前十orz,題解在這里。
機試無疑給了我很大的信心,原本以為來這里大概只能看着神仙打架,沒有想到機考結束出來交流了一下發現不少人都沒能全做出來,甚至有些本科是沒有經歷過這種機考的... 我猜想可能是投的軟院而不是計科的原因,各校的軟院考核都普遍比計科容易些,這也是為什么清華我只敢投軟院orz。第二天是學院面試和實驗室面試,面試前我才想起可能需要把簡歷帶上每個老師發一份,臨時跑去打印了5份簡歷,結果發現現場有近10位老師簡歷不夠發orz(所以面試前一定要印上十幾份的簡歷,多余的自己放在面前,回答簡歷問題的時候還有個參照會更有把握一點)。學院面試問的專業基礎問題不多,以及問了你覺得昨天機試情況怎樣,然后也有問了簡歷(因為寫着面向對象助教於是被問道你們本科生就能做助教了嗎orz)。口語題是用英文說說你做過的項目吧,我這時候完全沒有經驗,根本沒有准備項目介紹,如果用中文還有可能當場梳理描述,英文就別提了。於是老師改口說,那用英文說說你來清華的這兩天吧。我就磕磕巴巴的說了兩三分鍾,覺得自己說的挺爛的,組織成句能力太差了... 然后實驗室面就比較輕松,自我介紹了一圈后問了下興趣愛好什么的,然后就散了,各自找導師私聊。私聊的時候我才知道這個夏令營原來是直博夏令營,老師說這時候沒法確定給offer,如果想申碩所以得九月份推免復試通過了才能發offer。雖然網站上的公告各校都是只寫着“優秀大學生夏令營”,沒想到清軟是直博夏令營。結果還是吃了信息不充分的虧。
雖然沒有拿offer,但是好歹體驗了一下夏令營是怎么一回事。痛定思痛,知道自己欠缺的地方還有非常多,然后就一邊完善自己的材料一邊等其他學校的夏令營通知。科大是最早出的,沒進。然后復旦、北航,都沒進。本想着華理打底的結果尷尬的也沒進。那段時間屢屢被拒真的非常不好受,壓力很大,懷疑人生,甚至想要不然去投廈大吧,極不情願地填完了網上報名表之后才發現還需要寄送紙質材料,那時候就快截止肯定來不及了。最后就只進了華科夏令營。
華科是得知入營后才開始聯系導師。我找的是分布式方向的老師,聯系的第一位老師用英文回復郵件讓我發一份中英CV給他。我完全沒有寫過英文版本的簡歷,連忙求助了一位好友覺得他可能會有相關資料,然后在得到的模板上寫了一下午,第二天回復過去之后就再也沒有收到回信orzz 但正是因為這件事我有了一份條理清楚中英完備的簡歷,后來的所有簡歷我都是用的這一份。等了兩天無果后聯系了另一位老師,郵件回復讓我發下成績單,然后就加了qq,問了我可計算性理論學了些什么、分別解釋下P, NP, NP-complete, NP-hard。問我對區塊鏈有沒有了解,然后發了一份區塊鏈相關的論文給我,讓我夏令營可以去找他。
夏令營那會武漢是真的熱,室外溫度40,在戶外半天就能一身汗。機試那天早上剛踏進門被一個老師攔下來,我一臉迷茫的看他,心里想難不成是要先簽到,結果他掏掏掏遞我一包紙巾!我簡直差點要笑出來,趕緊道謝接過來擦汗,到這種地步orz(華科印象分++)。
華科的夏令營只有機試,也是人工判分不是oj。題目偏簡單,幾乎不需要用到數構和算法知識,一題判素數一題字符串處理,但是對於做慣了oj的來說挺怪的,試卷上是兩個大題,每題下面3道小題,數據范圍也沒給。現場問了下數據范圍,但回答也比較模糊就說是整型數,滿頭問號,那反正就閉着眼睛瞎打。然后就純憑機試成績拿優營。優營結果第二天早上出,那時候我正去導師實驗室的路上,看到進了優營之后就更有底氣去面導師了。進辦公室之后稍微聊了下,那位老師對我成績單上寫着“數學與計算機科學學院”挺感興趣的,他說組內需要數學好的人,福大的離散中心很好,你們又是數學和計算機一起的學院,所以對我簡歷很感興趣。我心里想老師你可能有所誤解,但也沒敢多說什么orz 私聊結束后老師讓我跟他一起去隔壁棟參加組會。組會是在討論讀區塊鏈那篇論文的進展,氣氛相當好,盡情發言,老師也完全沒有架子。哇,我才知道組會原來可以是這樣的,好向往。后來組會結束老師送了我一段,邊走邊聊,基本算是發了口頭offer。(結果就因為參加了一早上的組會忘記去拿優營證書!!orz)
到此夏令營就結束了。回來之后的一個月暑假我就留在家里咸魚,每天睡覺看書偶爾打題。非常推薦去看機械工業出版社的那本《計算機科學導論》來作為保研面試專業基礎課的復習。因為不是考研,不需要每門都復習到精通,重要的是本科上過的課程中重點內容不能忘記。而這本書基本上把三年的知識串了一遍,看到書里略寫但記得上專業課的時候比較重要的東西再去翻課本或者查搜索引擎,我大概每天看個一章花了20天左右看完,能把框架知識撿起來大半。
九月份開學的時候就差不多開始投推免復試申請了。這次有華科打底,於是只投了清華、浙大、復旦、同濟,也再次聯系導師發了自薦郵件。
先是接到了復旦老師的回復,問我明天什么時間段有空能電話聯系。雖然我其實一整天都有空,但什么都沒准備就直接電面怕是會狗帶,於是回復了下午和晚上的時間段。然后第二天花了一整個上午詳細的把簡歷里提到的每一個項目都過了一遍,理順了能夠充分回答“這個項目是做了什么”的任務目標、做法、相關算法等。然后下午在圖書館的一個安靜的角落抱着電腦打開簡歷等電話,結果后來還是晚上回宿舍后接到了- -||| 於是拿着簡歷、紙和筆,跑到走廊邊上有燈的拐角接。電面基本上把簡歷上幾乎每條都問了一遍,問項目問得非常細,具體到解釋一下用到的算法,你覺得最出彩的是哪個項目、獨特的地方在哪里。我說完了之后老師說,你看過相關領域的論文嗎,這個早就有成型的做法了(體驗極差好嗎!!)然后問了看過哪些課外書,自學能力怎么樣,感興趣的方向是什么,然后介紹了自己實驗室的情況,全是本校的學生,ACM區域賽金牌啥的一堆,最后一年都不用去實習還在實驗室干活因為有工作來找他們,對自己的標准要定高一些,有同學來問畢業標准是什么,那是給最低要求的學生用的,我的學生都是每人一篇頂會,總之嚇得我一愣一愣的。因為本來今年是收滿了的結果被一個突然出國放了鴿子,所以反復確認我還參加了哪些、有什么offer、確定會不會來。本着實誠的態度我把還投了清華並且有華科offer的信息供了出去,然后明顯的感受到對方老師有點不悅,最后我篤定的說如果復旦給學碩肯定會去。(其實我后來才感覺到供出offer這差不多是面試的大忌了,不管對哪個學校都至少應該說雖然報了其他學校但希望很小啦肯定會去之類的orzz)
復旦的申請截止日和清軟一樣,但清華審核速度超快,沒兩天的就能在系統上看到結果了。推免也一樣和夏令營要過去參加復試,但和夏令營不同的是不報銷旅途費用也不再包吃住了,而且還要交一張毛爺爺的復試費。而且非常不巧的是清華的時間和本校推免資格面試撞了,我前一天才剛剛定好的機票,第二天就收到學院面試通知,面試開始時間和機考時間完全重合,根本沒有錯開的可能,簡直是晴天霹靂。那時候正在圖書館,一看到就跑出去給輔導員給導師打電話求助,能不能協調本校面試讓我去復試,一邊聯系清華,看看有沒有能夠單獨機考的可能。當然清華給的回復肯定是不可能為一個人單獨出卷,要我和本校協商好。輔導員這邊又勸我資格面試是根本,沒拿到推免資格根本就沒法保研。那個時候真的有哭出來的沖動,心里想自己運氣怎么會差到這種地步。心情非常復雜,內心中其實有一絲逃避只身赴京的輕松,這樣放棄也就算了吧,但又怎么都不甘心,即使希望渺茫,也不想就這樣連嘗試的機會都沒有就失去了。抱着一定要爭取復試的心情打了一整天的電話,聯系各種老師。最后在諸多老師的幫助和協調下,包括學院和學校研究生院商量后,終於同意讓我通過網絡面試的方式參加本校資格面試。事情確定之后,第二天我就飛去了北京。
和夏令營一樣,清軟推免的復試安排也是兩天,第一天中午機試,第二天上午面試。我到的時候是前一天的下午,空氣很干而且輕度污染,下飛機之前就感到鼻子不適。本想在清華校內的食堂找地方吃,但逛了一圈走了三層都毫無胃口,全是蓋澆飯,連一碗湯都找不到,內心吐槽這粗糙的北方,后來在外面吃了一碗牛肉面,咸得不行,面超多吃不完。晚上一個人走在黑漆漆的巷子回賓館的時候,內心是深深的茫然,百費周章且花了近3k的旅費,到一個不喜歡的城市參加一場幾乎不可能通過的考試,不懂自己在干嘛,壓力很大。打了個電話給我媽,沒接通就掛了,覺得還帶着哭腔就干脆別打了,然后掛着眼淚查看第二天考試的時間地點、發微信約夏令營時候認識的南大的同學明天一起行動。然后A了道題吃了個橘子,心里想着算了吧,好歹收獲了自己一個人出遠門的經驗,還見了好久不見的隊友(在快手實習),還逛了夏令營時候沒能好好逛過的清華校園,不論結果,盡力不辜負就行了。
第二天的機考明顯比夏令營難度有所提升,三個小時三道題,中等稍偏難,三題其實都不能算純簽到題。第一題是時間轉換,把x年x月x日x時x分x秒換成另一個計數制度下的時間輸出。其實也就是考慮下閏年然后把時間換成秒,再不斷的取模轉化成新計數就好了。唯一的坑點是在轉化計數制度的乘除中會爆int。剛好我那段時間在敲CCF考試的歷年題,做了好幾道有關閏年的,判閏年的方法背的一清二楚。第二題是數學題,給定P,問 2^P-1 的位數並輸出后500位,位數只要用換底公式變成 P/log2(10) 取上整就好了(顯然2^P和2^P-1是同位數的),后500位開個數組維護下和2連乘就行,有點忘了P的數據范圍,但那時候算了下時間還OK。第三題是區間DP,給一排氣球,每個氣球有一個收益值,當爆掉某個氣球的時候收益會是它的值乘上左右緊鄰的兩個氣球的值,爆掉之后原來隔壁的兩個氣球又會挨在一起,問按照最優的爆氣球順序最后得到的最大總收益是多少。后來考完出來后得知這道是LeetCode原題,而且我才恍然想起來我好像還做過...orz反正我是三題都交了,最多有地方沒考慮到可能會錯上幾個case。問了下其他人好幾個卡第二題的,也有不少放棄第三題的。但沒能多說我就先打車回賓館去參加學院網絡面試了,時間也趕得上,最終面試比較順利。
這時候已經和南大軟院的那群同學混的相當熟了,因為機試前他們在聊算法就忍不住的插嘴一起聊,然后又聽他們聊了獎學金啊實習啊項目啥的,蜜汁得到認同感和歸屬感,最后一起吃了晚飯回院樓看了次日的面試順序。面試一組14人,我排在第7個,從九點多到那開始等起等到了十點,期間一直在背英文自我介紹和項目介紹那些,特別虛英語面。進去后仍然是中文自我介紹,又像夏令營那會一樣問我覺得昨天機考多少分,然后問我是不是打ACM的為什么不打之類的- -||| 然后問了下項目,偏偏就只問的是做的最不好的那一個,我只說了用的什么庫之后就沒再問了OTLL(其實我這樣的回答是非常糟糕的,其實這時候說一下這個項目做的時間很短不太好而另一個項目我認為做的比較好就能把話題引過去了,導致被問的非常被動)。英語題是用英文說一下你寫作能力怎么樣。我又又磕磕巴巴的說了兩三分鍾,沒甚邏輯說的亂七八糟的,比起夏令營的時候並好不到哪去...囧。然后又問了下研究生是想做research還是做工程、學碩和工碩的意向、有沒有聯系導師有沒有過來實驗室實習過啊什么的。總之十分緩和輕松沒有任何刁難人的地方,我覺得很可能是因為機試成績比較好印象分加成的原因。
從北京回來還沒幾天就收到了浙大的復試通知。浙大和復旦的時間撞了,並且最終沒進復旦復試,所以就安心准備去浙大。向去年保研浙大的學長了解的情況是,沒有機試,總成績是20%學校背景+成績排名比+6級成績和80%面試。確定復試之后我才開始聯系導師,用qq郵箱發的第一封郵件等了兩天沒回,有好友建議我用gmail試試,果然一會就回了,抄送給了所在實驗室的另一位負責老師,通知我去參加實驗室提前面試(之前發清華用的是qq郵箱沒這問題,因為是經常查看的常用郵箱而且提醒及時,夏令營時候用gmail收到的通知進了垃圾箱沒注意查看差點錯過考試,不過就此看來部分高校郵箱還是有屏蔽qq郵件的,以后最好還是用gmail發orz)。
浙大實驗室面試時間是學院面試的前一天晚上,我准時到了那邊發現只有一位同學在門口等,驚了,原本以為這個特別出名的實驗室應該有特別多人來面試。沒等幾分鍾,就有一位年輕的老師出來和我們確認了一下名字,然后轉頭問我第一個進去怎么樣。雖然滿頭問號為什么連個抓鬮的機會都不給,但卻又因為是第一個就毫無在場外等待的壓力,拿了早准備好的簡歷深呼吸就進去了。在場應該是實驗室所有老師都到齊了,有六七個。看我拿了簡歷說不用了已經有了(在聯系導師的時候我有發電子版簡歷過去)。然后開始面試。先是自我介紹,然后問我有沒有帶成績單,我說成績單在外面書包里orz於是問我最拿手的課程是什么,我說是數據結構與算法,實驗室大老板笑了下問我學過紅黑樹沒有,雖然數構課上沒學過但我看過紅皮的那本《算法》,於是說學過一點,老師就說那你說說看紅黑樹是什么吧。內心os:看到那個笑就應該覺得不妙了,既然不熟的話就應該說沒學過好嗎!!於是按照僅有的一絲印象按照《算法》那本書的描述說了下2-3樹,而紅黑樹是它的一種實現,說的過程中還搞混了紅黑樹和AVL樹OTL,老師馬上打斷我問,紅黑樹和AVL樹的區別是什么?紅黑樹的根節點是紅還是黑?一個紅節點下可能有幾個黑子節點?我說我不記得了OTL 老師說,那不會就說是不會(掩面而泣)於是就讓我描述一下AVL樹、為什么要有旋轉操作,那問到這個就非常熟悉了信手拈來,然后還問了怎么在最小堆中插入一個節點(怎么找到父節點)、最小堆要用什么數據結構來存,然后話鋒一轉又問了堆和棧的區別,我一愣,按操作系統答了,老師也愣了一下沒說啥orz 接着就開始問項目了,讓我把簡歷上提到的每個項目都介紹一遍,問的超級詳細,具體到數據量有多少,包括一個提到了推薦算法的有問用戶點擊量多少,想知道一下稀疏度,還被質疑了用某個算法庫的正確性,我做過的基本都是應用為主,使用到的庫底層的原理一時答不上來,然后另一個老師就給他科普,兩個老師聊得津津有味orz 問完簡歷之后問了想做的方向,還問了個相關方向實際應用的問題,說沒深入接觸過沒關系,讓我現場想解決方案。我答了一個初始想法,然后在引導下答了個勉強近似的答案。整個面試持續了半個小時,我出來的時候發現在隔壁等候的同學又多了兩個,都問我為什么面了那么久,這應該是我經歷過感覺最像面試的面試了,每個問題都完全不水全是扎扎實實的干貨。不過90%的問題都答上來了,整體感覺還是不錯的。
然而第二天的學院面試就沒有這么好運了。原本聽說面試順序是按照學校排名安排的,上一屆的學長是一早到那邊等到了下午才輪到,結果這次好像全是亂序,一組有將近30人,我排第13個,偏偏前幾名同學好多都沒有來,我大概是第4個左右就輪到了,叫到我名字的時候大概才過了不到一個小時,看來去復旦的咕了不少。參加了這么多場面試,到那時中英文自我介紹早已滾瓜爛熟,等候的時候都沒東西可看了,於是很淡定的就去了。
浙大的英語題是由抽簽決定的,一疊紅紙一疊白紙各抽一張,我抽到的白紙是鏈表相比起數組的諸多好處和缺點,紅紙是下推自動機(Pushdown Automation)和有窮自動機的區別。在等候前一名同學出來的時候有大概快20分鍾時間看這兩張紙。這時候無比慶幸自己學過可計算性理論,雖然已經忘了大半,但憑着印象也至少看得懂它在說啥。其實每張紙上有字的只占半頁,時間足夠我反復看了兩三遍。進去后沒有自我介紹環節,發完簡歷后就直接英文問,描述一下鏈表和數組的區別。這不就是把白紙上的內容再講一遍嘛?我雖然現場組織造句的能力很差,但是因為近三個多月都在用流利說打卡,復述跟讀練習不可能難得倒我,於是balabala說了一通完全沒斷過,只要能快速成句發音那些都不成問題。然后就開始問中文問題。我運氣超級差,遇到了一整個組的老師都不是我所熟悉方向的,說說超流水線超標量是什么、linux文件管理的元數據是怎么組織怎么對應到數據本身的、描述下網絡的擁塞控制、c++的多態是怎么實現的、mapreduce的map輸出是怎么傳遞給reduce的(要不要這么硬核啊哭了)實在卡殼答不上來的時候,我很無奈的說這些我不太熟悉,擅長的是數據結構與算法,結果這組老師都不是做這塊的。然后有個老師說那我問你一個算法:5雙黑手套3雙灰手套2雙白手套最壞情況下不放回要抽幾次能成雙。這不是概率論嗎!這到底哪里算法了!!我按概率論答了半天,她讓我別想太復雜,然后告訴我答案是11,當時沒反應過來出來之后才想明白確實是11。然后另一個老師就問了下最短路算法有哪些復雜度是多少,這是我答的最快的一個問題orzz 總之整體體驗極差,不僅問題的范圍廣而且一考就是考該科目內容中最重難點問題。出來就聽見兩個妹子在一臉怨念的談論面的都是啥問題差點當場面哭23333。早有傳聞浙大的面試難度可怕,這次算是真的體驗到了。
面完了這最后一場,剩下的就是忐忑地等着結果。中午在學校附近的店鋪里吃了飯,因為玉泉校區靠近西湖,周圍的商業街有不少好吃的。下午和浙大面試時認識的小伙伴去逛了西湖。然后晚上吃飯時接到了浙大實驗室offer的電話,回賓館后收到了清軟的預錄取郵件,意外的沒有太大的心理波動orz 唯一的聲音就是,一切都結束了。
總之這一段時間下來,劇情也算是跌宕起伏了,就最終而言,應該是我所能取得的最好結果了。問了下之前認識的幾位小伙伴也收到了通知郵件。其實早在之前,南大的那位同學說,“我本來就是把你視為要來清華,咱們做三年同學的。”何德何能,非常感動了orz。意識到的一點是,不管什么東西都要靠自己去爭取啊,雖然迷茫感到壓力很想逃避,但不爭取就一定得不到。不得不承認的是,始終支撐着我這一信念的是一部叫花牌情緣的番,感動於女主對於歌牌比賽的執着和熱忱,從不逃避也不走捷徑,愈難而愈加挑戰和向往。去年年末的時候,有朋友問過我如果保外校失敗會選擇保本校還是考研,我說會保本校,因為考研的不確定性、壓力、艱辛程度都是難以想象的,又為什么要放棄保研機會呢。但在保研的這段時間里,我所看到的外校的氣氛、同學的水准都讓我無比向往。直到面完浙大當晚心情復雜的等通知的時候還在想,如果保不上,那我就考研。我想去那樣的地方。
接下去的路要怎么走呢,從一所211躋身名流高校學習也許會十分百分的困難吧。但既然我能夠去,那么就說明我的確有這樣的資格和能力。想通這一點,向往和憧憬就勝過了不安,只要盡力去做就足以了。共勉 😄
最后總結一下一點心得:
- 計科出身無論是保研還是找工作,對算法確實是會有一定要求的,所以即使不打競賽,算法題仍然需要練習。看原理推薦紅皮的那本《算法》,看做題技巧推薦《挑戰程序設計競賽》(大一的時候買的看了一章就覺得很吃力,到現在才大多能夠看懂)。做題的話我是做LeetCode的題,easy+medium+hard按照5:3:1的比例去刷就足夠,或者可以只做medium題。
- 保研資格幾乎按照績點排序,在實驗班前10左右都有機會,在確定保研資格前就可以提前准備好個人信息和簡歷,后期再不斷的完善和修改。(我的簡歷改到最后大概有十幾個版本orz)
- 聯系導師就准備一份自薦郵件海投就行了,收到拒信也沒關系,臉皮厚一點就好。
- 面試的時候被問到不會也不要慌,能答多少答多少,面試考核的不僅是專業水平也是綜合實力。
寫到這里大概已經有9k字了,能看到最后的十分感謝,我也是服了自己居然能寫這么多(話癆本性),希望有所幫助。