2018计算机专业保研面经(清华、浙大、华科)

时间:2023-01-09 18:40:49

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跻身名流高校学习也许会十分百分的困难吧。但既然我能够去,那么就说明我的确有这样的资格和能力。想通这一点,向往和憧憬就胜过了不安,只要尽力去做就足以了。共勉 :D

最后总结一下一点心得:

  1. 计科出身无论是保研还是找工作,对算法确实是会有一定要求的,所以即使不打竞赛,算法题仍然需要练习。看原理推荐红皮的那本《算法》,看做题技巧推荐《挑战程序设计竞赛》(大一的时候买的看了一章就觉得很吃力,到现在才大多能够看懂)。做题的话我是做LeetCode的题,easy+medium+hard按照5:3:1的比例去刷就足够,或者可以只做medium题。
  2. 保研资格几乎按照绩点排序,在实验班前10左右都有机会,在确定保研资格前就可以提前准备好个人信息和简历,后期再不断的完善和修改。(我的简历改到最后大概有十几个版本orz)
  3. 联系导师就准备一份自荐邮件海投就行了,收到拒信也没关系,脸皮厚一点就好。
  4. 面试的时候被问到不会也不要慌,能答多少答多少,面试考核的不仅是专业水平也是综合实力。

写到这里大概已经有9k字了,能看到最后的十分感谢,我也是服了自己居然能写这么多(话痨本性),希望有所帮助。