保研老炮的七城记 - 软工学子的CS渡劫之路
保研老炮的七城记
软工学子的CS渡劫之路
作者:芣苢
0 写在前面的话
9月21日上午在浙大面试完之后,我就知道自己的保研奔波之旅终于宣告结束。当天晚上我就收到了清华大学的录取offer,自己三年的梦想终于得以实现。9月28日填完学信网的志愿,并完成了"三次握手",一切终于尘埃落定之后,我就想着,是时候写点东西作为总结了。
保研之路,实属不易。往长了说是三年的厚积薄发,往短了说也是大半年来的冲刺与努力。在这一路上遇到了太多太多的好心人——不厌其烦地为我签字盖章的老师们、耐心为我解答问题的师兄师姐们以及给予我无限关爱、鼓励的家人、同学、朋友们,在这里再一次非常真诚地对你们表示感谢!
像众多优秀的师兄师姐一样,我也打算把我对于保研的所闻、所见、所感以及自己积累的一些经验心得写下来,分享出去,助力更多的师弟师妹们。
我一直觉得保研是一项传承性很强的活动,师兄师姐的经验对于师弟师妹们的抉择至关重要。这个时候,我总会觉得自己身上的责任更重了,也更有意义了。
当然,在写这篇经验贴的时候,我尽量斟酌字词,防止因为自己的主观、片面的观点对师弟师妹们造成误导。不过由于笔者水平有限,疏漏错误也是在所难免的,还请各位看官多多提出批评与建议。
提示:本篇经验贴特别适合于立志攻读计算机专业硕士学位的师弟师妹们,有些局部可能对于其他专业不太合适,望慎重!
我的联系方式:QQ:634428559 / 2043739214
欢迎交流。因为某些原因,可能不能及时回复。有时可能会忘记回复,如果这样请再**** 联系我一次。带来不便,敬请谅解。
1 个人经历
对保研过程稍有了解的同学都应该知道,保研大体是可以分为夏令营(6-8月)、预推免(9月)和推免(9-10月)三个部分的。因为大多数的offer都会在夏令营和预推免阶段发放完毕,推免一般剩下的机会就已经很少了,所以师弟师妹们一定要在前两个阶段好好把握,把offer拿到。
事实上,笔者就是在夏令营和预推免阶段就已经拿到了心仪的offer,所以在9月28日填写学信网的系统的时候只是走了个过场,直接拿到了待录取名额。
在书写个人经历时,我把自己的个人经历简单地划分为哨前战、征战夏令营和决战预推免三个部分。
1.1 哨前战
所谓哨前战,就是在参加夏令营之前能做的一些事情,其中包括了定位、简历制作、文书编写、自我包装、自我介绍准备、联系导师等。
我先来简单说一下我自己的定位,自己本科是软件工程,非常希望在研究生阶段能够跨保去CS。事实上,我参加的7所学校的夏令营/预推免活动,除了THU,其他我报的都是CS。
剩下的简历、个人陈述、自我介绍(中/英,最好10s/1min/5min的都准备一下,如果你有充分时间的话,没有的话一定要准备一下5min的)最好尽量早地做好,哪怕写个粗糙的版本出来也成,方便后面不断打磨加工精细。另外,简历上的东西一定要真实,能自圆其说,千万不要给自己挖坑,更不能弄虚作假!
当然,最最重要的事情就是联系导师,通过邮件与老师套磁了。下面,我将着重说一下自己联系导师的过程。
我从5月份开始着手联系导师,各个学校勾搭的导师实在不少。不过可能是因为时间太早,大多数邮件发出去都是有去无回的。联系导师之前应先去相关学校院系的官网了解老师,详细了解老师的研究方向是否是自己感兴趣的,另外还应该从学术水平、人品、对待学生、学生就业情况等多个角度来对老师进行了解, 这一过程千万慎重 (具体方法我会在后面贴出)!另外,不同学校的老师可以同时联系,但是同一学校(特别是办公室都在一块)的老师们同时联系就需要非常慎重了!
下面我就着重说一下自己联系得比较成功的几个老师吧。
[1]北航
受高中同学(在北航念CS)推荐,我联系了北航的A老师。令我没有想到的是,A老师对我还是蛮感兴趣的,邮件一来一回就加了微信。当时(5月初)他就约我前往北京与他见面交谈,由于当时正值期中考试,我就没有接受这个邀请。事实上,如果时间精力等各方面都允许并且真的对这个老师很感兴趣的话,我还是建议前往提早与老师面谈的,这样做会稳很多。
后面我也一直与A老师保持邮件联系,日常分享自己的学习情况。直到——大概6月初,他突然发邮件询问我是否愿意念他的直博生。我当然对于念博士是没有很明确的打算的,更觉得直读博士可能会有一些风险,于是就拒绝了A老师的这个邀请,不过我还是在邮件中明确表示了非常愿意攻读他的硕士研究生。
可是,在我拒绝了老师的直博邀请之后,我再通过邮件联系他时他就不理我了!当时的内心是崩溃的,自己苦心经营的一个老师就这样被自己的两次拒绝给溜走了(泪目)。
[2]复旦
复旦大学计算机学院的FNLP小组很强也很有名,因为自己之前一直想去做NLP,所以就毫不犹豫地联系了其中的老师。不过FNLP组内的三位老师都比较高冷,只有一位老师回复了我(摊手),而且回复还是官回,希望我进入夏令营之后再去联系他。
而后自己又联系了做Data Mining的A老师。不得不说,A老师人真的是不错的,邮件只一来一回就愿意与我面谈。吸取上次北航的教训,我毫不犹豫地就答应了老师前往上海与老师面谈。
FDU计算机系的老师们主要分布在张江校区和邯郸校区,A老师的办公所在地是在邯郸校区的。第一次来复旦,不得不说邯郸校区很美很美,很旧却很精致,光华楼建得很宏伟很气派。
与A老师见面之后,就和A老师聊了起来。首先他对着我的简历问问题,问的问题全都是我在简历上写的诸如数学建模用了什么模型、做的项目用了什么算法等等。因为准备得不是很充分,所以有些答得并不是很好。所以这里就需要注意了(敲黑板),写在简历上的东西一定要确保自己是理解的,能够自圆其说的,能够娓娓道来的,不然就是在给自己挖坑。
下面的事情就比较高能了。而后A老师让他的一个博士生继续面试我。那位博士生拿着我的成绩单和简历一路问,有些领域问得特别细节(比如说说Java中HashMap的原理、C++多线程等),因为当时自己准备得实在是太不充分了,所以有些问题全程懵逼,只能非常尴尬地回应"不记得了",然后被怼(泪目)。
虽然后半阶段的学长面试感觉自己在坐过山车,惊险刺激,很多问题答得都是乱七八糟。但是我出了A老师办公室之后还是比较开心的,可能是我的心态实在是太好了…
[3]南大
南大应该是我花时间最多的一个学校了。众所周知,南大的LAMDA实验室非常有名,有ZZH这样的大佬扛把子,众多MLer也是从西瓜书开始入坑Machine Learning的。所以抱着试试看的态度,我最初就联系了LAMDA实验室的老师。
当然,ZZH这样的大佬我是不敢联系的,于是我就联系了很年轻的A老师,做的是Reinforcement Learning,虽然自己之前对强化学习基本没有过了解,但还是对这个方向充满了兴趣。果然不出所料,A老师是官回。
虽然是官回,但我还是已经很高兴了,因为有回复总比没有回复好,对吧(捂脸)。于是我就在那个阶段花了一个星期时间把强化学习入了个门,并写了好几页的学习报告/笔记,企图通过这种方式来引起A老师的注意,不过后来发现,自己真的是想多了(泪目)。
这里又是一个知识点了,就是如果真的对某个老师很感兴趣的话,可以花一些时间阅读该老师相关研究方向的论文或者该老师所在小组的论文,并做一些学习笔记/报告之类的东西发给他,老师是会很感兴趣的。不过,这种做法成本略高,如果时间较为紧张的话还是不要尝试了,免得花的功夫不够 出现很多疏漏 会偷鸡不着蚀把米。
这里再提醒一下,南大的LAMDA实验室是需要提前报名的(不同于南大的计算机开放日报名),并且他们的面试也是会早于南大的计算机开放日的。所以笔者在6月1日儿童节这一天就非常荣幸地收到了LAMDA的拒信,于是自己的LAMDA梦就彻底幻灭了(泪目)。
不过还有个小Tip,那就是即使被LAMDA拒了,仍然是可以去参加LAMDA的面试的,因为有些LAMDA老师是允许霸面的,如果对LAMDA非常向往的话不妨尝试一下。 不过,我自己是没有去霸面的,这些是笔者偶然在网上看到的,真实性有待考量。
在经历了LAMDA的挫败之后,我又赶紧联系了某个做信息检索的B老师。B老师为我安排了一场电话面试。让我先从他给定的三篇论文中选择其中一篇,仔细研究理解并做成PPT,在面试的时候讲解给他听。我选择了一篇信息检索类的论文,因为之前自己对这方面略有了解,于是看得还并不太费力。
电话面试一共持续了大约50分钟,我首先花了15分钟讲解了那篇论文。接下来就是和老师闲叙。B老师针对简历问了一些工程技术上的细节问题(我想主要就是为了考察我到底有没有认真参与其中对做那些项目),诸如如何调参、如何进行项目管理等。而后还询问了我一些常规问题,诸如研究生阶段是更喜欢放养还是更喜欢导师带着、还有没有联系其他学校/老师等。
在电话面试完之后隔了几天,B老师又让他的某位研究生师兄对我进行了视频面试,视频面试首先就是给了我2道算法题,让我在纸上写解决问题的伪代码。我印象中一道题是多叉树的搜索(好像是),还有一道题是DP。写完算法题之后,学长又对着我的简历问了一些技术上的问题。
在视频面试结束之后几天,就收到了B老师的邮件,说是通过了初步的考核,只需要在南大计算机开放日的时候前往接受最终考核即可。不过,我最后南大计算机开放日根本就没有获得入营资格,所以一切努力也都化作泡沫了(泪目)。
不得不说,B老师人真的很好,在我没有入围开放日的时候仍然给予了我很多鼓励与帮助,并为我出谋划策,真的非常非常感谢您。
[4]北大
自己也成功地勾搭上了北大某做NLP的A老师。A老师在信科和叉院都有招生名额,但是他在信科的招生名额已经用完了,在叉院仍有名额,愿意着重考察我。
这里补充一个小知识:对于计算机类的同学来说,北大可以报名的夏令营比较多,一共有四个——信息科学技术学院(简称"信科",包括了北大计算机科学技术研究所)、前沿交叉学科研究院大数据科学研究中心(简称"叉院")、信息工程学院(简称"信工",在深圳)、软件与微电子学院(简称"软微")。其中,前两者的申请难度明显高于后两者。而笔者非常作死地只申请了前两个,结果被北大二连拒。
而后我就一直做着"北大梦",与A老师邮件不断,直至最后被信科和叉院二连拒(泪目)。
1.2 征战夏令营
[1]西交
西交的夏令营格外的早,我记得好像是在6月中旬,只有两天。我报的是西交的计算机系,事实上整个西交电院(除了计算机还有通信、自动化等)的夏令营都是在一块举办的。
西交电院夏令营中真正有活动的也就只有2天,时间安排得也非常紧凑。第一天是面试 + 参观实验室。西交的面试真的略水,我记得上来就是让我先做一段英文自我介绍,说完了之后就开始闲叙,问的问题都是六级成绩怎么样/为什么想来西安/来自什么学校等,没有问任何涉及专业的问题。这是我的第一次保研面试,就这么轻轻松松地结束了。
接下来就是参观计算机系一个比较大的实验室,这个实验室内分了很多小组,不同小组的研究方向也略有不同。这里有一个技巧,那就是自己的简历一定要随身带着。我记得当时我听完某做NLP的A老师(青千头衔)的报告之后,立马就上前与他攀谈,并将简历递交给了他(遇到心仪的老师一定要主动出击,千万不要犹豫)。当天晚上我就接到了另一个做网络的组的B老师的电话,B老师表示希望第二天能够抽时间与我交流。第二天去的时候发现被约见的同学有很多,基本就是和组内的老师/师兄聊聊天,提前了解一下组内的情况。
第二天的活动基本全部都是讲座。首先上午是一个大的讲座,类似于开幕式(但是夏令营在这一天就结束了呀),请了很多领导讲话。对了,西交还有和香港理工大学的合作项目,不过这个我没有很深入的了解过。下午就是计算机系各个研究小组的单独的报告,很多很多,听得也很疲惫。
大概过了一些时间夏令营的优秀营员结果就出来了——过了。不过西交的夏令营确实算是比较水的了,很多人都过了,感觉好像基本上没有筛人。
还记得我之前说过的A老师嘛,我给了他我的简历,果然起了作用。西交夏令营大概结束了几天吧,他就联系了我,并表示愿意接收我,希望我能够在六月底之前给他具体的答复,因为他会给我留名额。
[2]中科院软件所
我在七月上旬的时候前往北京参加了中科院软件所的夏令营。对于计算机类的同学来说,京区的研究所中自动化所、计算所和软件所都是很不错的选择的。软件所的夏令营内容还是比较常规的,主要就是分为讲座和考核。
对了,软件所的夏令营也是有两期的,两期的时间间隔很短,大概也就只有一周。不过,我还是建议如果没有什么特殊情况的话,一定要选择第一期,因为第一期的选择空间会大很多(事实上我后面的自动化所夏令营就吃了很大的亏)。
讲座就是所内不同的实验室、研究所分别对自己的研究领域、实验室发展情况进行介绍。这一部分我就不一一介绍了,具体的机构部门可以在软件所的官网上查看。不过,据说软工中心是最最热门的选择,因为就业很不错。
软件所的考核是我见过最全面的,因为它机试、笔试、面试全都有!!!软件所的考核不同于其他院校,他是各个实验室单独安排考核,基本上只要你选择的实验室/老师愿意接受你,那么你就基本上可以进入软件所了。所以如果你报名的实验室很热门的话(比如软工中心),那么通过的概率就会比较低。
我报名的实验室是中文信息处理中心(没办法,因为当时自己真的一心想要去做NLP),大概有20个左右的同学报了这个实验室,最后只招了5个人。
机试C++和Java都是可以的,C++的环境是VS2010.机试的题目有两套,你只需要选择其中一套即可。第一套是分了三档,每一档一共有3道题,你只需要做其中一道题即可,一共做三道题,分值(好像)是30、30、40。第二套只有一道题(100分)。
第二套的题目好像是要让你写一个小系统,我当时觉得业务逻辑还蛮复杂的,就没有做,而是去做了第一套题目。总的来说,第一套的题目还是偏简单的,如果你稍微有些算法基础,那么这对你来说应该都不是什么问题。第一档我选择的题目是"水仙花数",第二档不太记得了,第三档我选择的好像就是背包(0-1背包/多重背包之类)。
笔试的题量略大,给的时间好像是1h左右。我记得的大致的题型有:
- 英文题:一般就是一些简单的计算题,关键就是需要看懂英文,理解题目意思,只要你能看懂题目意思,那么基本上就可以迎刃而解了。
- 逻辑题:有点像考智商的题目,一般都需要绕一点弯子才能写出来。
- 专业题:这个就比较常规了,数据结构、操作系统、计网都考了好像。
- 概念题:让你写出一些名词的概念或者是你对它们的理解,好像有DevOps、敏捷过程等,总之有好几个。
- 英文翻译题:给你一段计算机专业相关的英文,让你把它翻译成中文。
- 大题:我印象中大题都是比较开放的,具体的题目我只记得一道(原谅我),大概好像就是说说你在一次工程项目中遇到的问题/如何解决的/如何理解软件工程之类的。
最后是面试,软件所事先让我制作了一个用于自我介绍的PPT。所以面试刚开始我就是花了大概5min介绍了一下自己。然后就是回答老师们的问题,不过令我吃惊的是,面试居然问的很少专业问题,与其说这是一次考核,不如说更像一次闲谈。老师问了很多常规的家常问题,比如为什么想来这里/推荐你最喜欢的三本书/高考考得怎么样等。对了,还问了一道英文问题——你最喜欢的运动是什么。
三轮轰炸之后,当天晚上就接到了通知,说是老师愿意第二天约我单独面谈。第二天自己就去了,被约谈的同学还有好几个,大致就是与老师聊聊天,更加深入地了解组内的情况,还询问了我学硕/硕博/直博更愿意哪一个。不得不说,组内的老师人都是很好的,非常尊重学生们的选择,在这里我再一次向你们对我的关照表示感谢。
[3]北航
北航的夏令营大概位于7月中旬,时间也很短,只有三天。
首先北航的夏令营是不包食宿的,其次去校医院体检的费用也是需要自己承担的。北航夏令营的流程大致是这样的——第一天早上报到,你可以交你的CCF CSP证书,如果你考得还不错的话,是可以免去机试的。接着就是各个实验室的介绍报告,各个实验室的老师分别上台介绍自己实验室的发展情况、研究领域等。然后就是机试了,因为我已经交了CCF CSP证书了,所以我的机试是免了的了。这一连串活动时间安排得非常紧凑。注意,北航的夏令营的最后评分是机试和面试综合在一起的,机试(100分)+面试(200分)(好像是这样)。
另外如果是免机试的话,分数是如何计算的话,这个我也询问了,不过当时询问WYH老师的时候,老师说了一通正态分布、归一化啥的,我一脸蒙圈,并没有理解到底是怎么计算的,只能把这个归结为是某种神秘操作了(笑哭)。
说到北航的机试,我还得再提一句——那就是免机试并不一定就是好事情,因为你的CCF CSP成绩(好像是说主要看你提交的单子上显示的百分比排名)所换算的机试成绩并不一定就是很高的,事实上可能你去参加机试也许能够获得更高的机试成绩也说不准呢,而且好像机试也并不是很难。
接下来两天都是面试(因为北航的夏令营入营的人很多,好像有550+的人),我被安排在了第一天面试。面试大概包括了以下几个部分(不同的面试组可能面试内容是不一样的):
- 政治题(这个是不计入面试成绩的)
- 英文自我介绍
- 朗读一段英文段落(专业相关),并将它翻译成中文
- 专业问答
这里我再来分享2个面试技巧。一、很多同学害怕提问基础课程知识,因为大多数课程都是在大一大二学习的,现在基本上都忘记了,如果提问的问题很细节的话,那就很尴尬了,很难回答上来。所以如果可以的话,可以大概查一下你的面试老师的研究方向、教授课程等方面的信息,这样或许可以大概猜到他们会着重提问哪一方面的专业知识。二、自我介绍、面试时将自己的简历发给面试老师这些方式都可以很好地引导老师,让老师提问自己真正擅长的方面。
在面试的过程中我大概被问到的问题有:图论(根据最小生成树算法,如何获得最大生成树/什么是偶图)、线代(什么是秩/线性无关)、离散数学(命题逻辑和谓词逻辑)。还有一道场景题——为什么航空公司更愿意安排一小时一班的大飞机而不是十分钟一班的小飞机。
然后老师就问我对什么感兴趣,我说数据挖掘、自然语言处理,然后他们就问了我一些相关的算法,还就着我的简历问了一些问题,然后就结束了。
接下来的经历就非常戏剧化了。说实话,我一直以为北航是我最十拿九稳的一所学校,因为我对它的关注最早,做的功课最足,也早早地就从学长、朋友那里打探了很多情报。结果因为自己作死,差点就翻车了。
当天面试完的晚上,之前联系的某A老师就电话联系了我,并约我见面。A老师所在的组正是我神往已久的WYH老师的组,于是我就兴高采烈地拿着自己的简历去见他。见面聊天时他问了我很多数学问题(什么是偏序关系/什么是线性无关/可微和可导有什么关系等),还就着简历问了我一些项目上的问题,以及为什么想来北航等。前面的数学问题自己准备得很不好,因此答得也不是很好,结果被一顿怼。估计是回答得太烂了,A老师最后非常无奈地说"你还是回去好好看看书吧"(泪目)。
第二天晚上在北航主楼闲逛,突然收到之前联系的软件国重的B老师电话,他说我已经拿到优营,问我是否愿意去他那里,如果愿意可以把我挂在L院士名下然后让他带,自己自然欣喜不已,毫不犹豫地就答应了。
后晚上想想决定尝试一下神往已久的WYH老师的组,于是不死心地发邮件给了组内负责人A老师(就是之前约我见面的那位老师)。A老师告知需要次日上午开会商议,然后决定。次日就是激动人心的抢导师大战了。
明明自己可以很稳地...结果翻车了...次日临近中午的时候H老师电话来说名额紧张,问我是否愿意调剂,我对自己总是蜜汁自信...于是拒了调剂...结果最终被拒:(
这时候再去联系软件国重的B老师,结果发现名额已经没了...就这样自己把新主楼G座 H座跑了个遍...找了软国重的X老师,虚拟现实国重的J老师 X老师等等都已经没了名额...
这个时候肠子都悔青了,还是希望大家不要学我,做事可以稳一点…
最后抱着一丝希望拜访了D老师,D老师居然还有名额,这下我可要紧抓不放了,不然真的没学上了...老师看了成绩单之后问了一些离散、线代的问题,然后开始问项目(这个我比较擅长哈哈哈),最后总算拿到了D老师的offer...很满意了。
其实只要你通过了考核,就算没有签到导师也是没有关系的,因为学院到时候也会帮你分配导师,不过分配的导师可能并不一定是你自己真正满意的,所以还是尽量提前签到导师会比较好。
[4]中科大
说实话,中科大的夏令营办得是相当丰富、有趣和走心的。盛大的开幕式、参观企业、素质拓展活动、讲座、实验室开放日、走心的食宿服务等,满满的感动。
学院的最终考核面试被安排在最后一天,是很水的,基本上是不筛人的。我进去之后先做了一下自我介绍(中文),然后专业问题大概就问了图的存储结构之类的问题,剩下的就是在闲叙。
其实,科大夏令营真正难的并不是学院的考核,而是各个实验室单独的考核。特别是像CEH老师的实验室这样超级热门的实验室,想进去是非常难的,筛率极高。我自己报的是LXY老师的实验室,因为我觉得这个实验室的研究方向虽然没有机器学习那么热门,但是组内的老师都是特别强的,头衔很多。
实验室面试也是这样,先制作了一个PPT来进行自我介绍,然后老师们就是就着我的简历一直问,把我的项目/科研经历都问了个遍。好像还有英文问答,不过我真的是不太记得了。
面完的当天晚上就知道自己通过了,还是非常开心的。
[5]中科院自动化所
自动化所的夏令营大概是位于八月中下旬的(8.20-8.24)。我在这里说明一下,自动化所的夏令营是有两期的,第一期位于七月中旬,第二期位于八月中下旬,两期一共隔了一个月,这是非常坑的。当时自己因为某些"神秘"原因,非常傻里傻气地报了第二期的夏令营,结果导致等到八月份的时候,自己最最想去的模式识别国重的导师们已经被第一期夏令营的同学们抢得差不多了(泪目)。所以我在这里再次强调一下,如果你参加的某所院校夏令营有多期的话,一定要越早参加越好,毕竟"先下手为强"。
不得不说,自动化所夏令营办得也是相当用心的,活动非常丰富,包括了参加ICPR会议、各种大佬讲座、实验室参观、素拓活动以及最后结营晚会和晚宴等,收获了很多友谊,也认识了很多非常nice的同学老师、学长学姐,非常开心。
自动化所夏令营的考核方式主要有笔试、心理测试和面试三类。首先是笔试,笔试大概就是20道选择题再加几道大题(四选二)。选择题主要就是一些考查逻辑、观察能力等方面的题目,有一点像是在考智商。不过选择题中也有"自动化所是什么时候成立的"这样非常不正经的题目(笑哭)。我记得的几道大题大概就是:
- 共享单车的"乱停乱放"问题如何解决。
- 图像处理,如何识别图片中的汉字(好像是)。
- 拼音输入法拼音转汉字的算法(有兴趣的同学可以看看《数学之美 第二版》第21章 拼音输入法的数学原理)。
- 好像是关于苹果进货销售的调度之类的问题,因为我没有选做这一题,所以实在是不记得了。
然后就是心理测试,心理测试的题目很多,有500+的题目,而且要求在1h内写完,涂卡涂得手疼。题目全部都是是否题,而且都是询问一些你的个人情况。虽然是心理测试,但是也一定要认真完成,千万不要作死瞎答一通!
最后是面试,面试也同样是最重要的。自动化所的面试大概包括了以下几个环节(不过不同的组可能不一样,我总结的只是我的个人经历,仅作参考):
- 中文自我介绍
- 英文问答,问我的是我的认为自己的长处/强项是什么。
- 数学问题,问了我一致收敛、对称矩阵、特征值等。
- 专业课程问题,问了我图论、数据结构等。
- 简历问题,问了我数学建模采用的模型/算法,解释一下LDA等。
面试结束之后就是告别晚会和晚宴,大家有说有笑,又唱又跳,玩得还是蛮开心的。另外,自动化所的录取比例是这样的,50%直接通过,30%备选,20%直接不通过。
大概在夏令营结束一周之后吧,我就收到了邮件——过了。当时还是蛮开心的,立马就联系了模式识别国重的某位牛导(还没有被第一期选走)。
自动化所的夏令营是这样的,当你通过了之后,你就可以联系心仪的导师,如果对方也愿意接收你的话,那么你们就可以填写双选表(学生先填,老师后填),填写完毕之后由老师交至招生老师处,此时就算是大功告成了。当然,非常热门的老师通常是会有很多人联系的,所以此时老师会挑选、会再安排面试(一般是电话面试)考核来决定是否接收你。
1.3 决战预推免
预推免我去了清华(软件)和浙大两所学校,这两所院校的共同点就是没有直硕的夏令营,所以我寻思留给我的机会应该还蛮多的吧。
[1]清华大学
报清华的软件学院而不是计算机科学与技术系考量的原因是很多的。首先是自己太虚了,毕竟贵系大佬太多,感觉自己去是去做分母的;其次似乎清华的学硕非常难以得到,而专硕的话计科的专硕是在深圳的,软件的专硕是在北京本部的。所以综合来看,报软件是非常不错的选择。
预推免的时间安排得非常紧凑,基本就是第一天上午报到,中午下午机试,第二天面试,然后就结束了。
清华的机试在我看来是非常有水平的(并不是太简单,但也没有难得让人下不了手,我觉得可以很好地衡量一个人的编程水平),机试时间是3h,环境是VS 2017。一共有三道题目,而且都是按照通过样例来评分的:
-
时制转换,大概意思就是说一种新的度量时间的方式是——1年有10个月,1个月有10周,1周有10天,1天有10小时,1小时有100分钟,1分钟有100秒(大致意思是这样,具体的数字可能不正确),每天的时间长度是不变的,现给定正常的时间表示方式(比如10:10:10 2001-2-5),让你把这个给定的时刻转换成新的度量方式下的时刻。
-
给定数字p(注意,p是比较大的),让你计算一共有多少位,并输出低位的500位(不足用0补全)。
-
DP题,大致意思就是有n个排成一列的气球,表示第i个气球上的数字,戳破第i个气球可得分(表示气球i左边存在的气球的数字,如果气球i左边没有气球了,那么,同理。式子好像是这样的,不过式子不是最重要的,主要还是看DP的方法对吧),按照某种次序将n个气球全部戳破,求可以得到的最大分数。
接下来是面试,面试的内容主要包括了以下几个方面:
- 自我介绍
- 英文问答,NLP的主要方法有哪些(问这个主要是因为我的简历上写了我对NLP比较感兴趣)
- 专业问题,先问了我哪门课学得最好,哪门课学得最不好。我说我数据结构学得还行,于是主要问了我数据结构,问了堆排序和平衡树。
- 简历问题,就着简历问项目细节。
- 常规问题,日常的学习方法/如何保持成绩的等
- 政治题,如何看待前一段时间的中美贸易战。
大概等待了一周多的时间吧,就收到了清华发来的邮件——过了。当时心里微微地起了一些涟漪——终于结束了…
[2]浙江大学
浙大的预推免考核更简单粗暴,令我惊讶的是居然连机试都没有,只有面试!因为参加复试的人还蛮多的,所以面试一共持续了一整天(上午+下午)。
浙大的面试(我所在的组)分为了英文和中文面试两个部分。英文面试主要就是英文自我介绍和英文问答,老师问了我"你觉得杭州和哈尔滨这两座城市有什么不同?"。对了,在进去面试前15min左右吧,你需要抽取两张纸(一红一白),纸上是两大段英文(专业相关),我抽到的是"AVL树"和"XPath/XQuery",你需要快速浏览、阅读、记忆,进去面试之后老师会随机抽取其中一张纸,并用英文询问你上面的内容。面试老师用英文问了我AVL的特性、各种操作的时间复杂度等问题。
中文面试就比较多了,就着简历问了一些项目上的细节问题,还问了数据结构的一些专业问题,老师还考查了我一个算法题——给定许多数字,如何找出和为k的数字对数。当时自己有点懵,不过自己在老师的引导下一边思考,一边说,最后还说了一些出来——1. 暴力,O(). 2. 排序+折半查找,O(). 3. 哈希,最理想可以达到O()
除了这些问题,还有一些常规题,比如手上还有没有其他学校的offer/对什么研究方向比较感兴趣等。最后还问了一道政治题——对FLG的态度,直接回答坚决反对就好了!
面完了之后,其中某个面试老师似乎对我还蛮感兴趣的,居然直接起身和我一块出门,与我聊了起来。原来他是CAD&CG国重的老师,并和我说了他的研究方向,如果感兴趣的话可以邮件联系他。面试完了之后我们是需要填写志愿的,一共有4个专业可选——①学硕-计算机科学与技术,②学硕-软件工程(不是浙大软件学院,而是计算机学院),③学硕-网络空间安全,④专硕-计算机技术。我填报的志愿顺序是①②③④。
自己的浙大之旅还蛮顺利的,心里还是挺开心的。另外杭州真的超美的,我去的玉泉校区就在西湖旁边,于是上午面试完,下午就去西湖骑行了一圈,很带感。
大概到27晚上吧,录取名单才出——过了,学硕。不过自己已经是铁了心要去清华了,所以也就无所谓啦。
2 经验谈
[1] 如何快速找到夏令营的信息,防止自己错过夏令营的报名时间?
保研论坛(http://www.eeban.com/)每年都会有夏令营通知的汇总,可以关注一下。另外,计算机类的同学可以关注一下GitHub上的这个repo(https://github.com/dhx000/CSBaoYan2018),这是今年(2018年)保研的计算机类夏令营的通知汇总,各位可以按图索骥。
[2] 联系导师的邮件一般是什么内容?
一般格式是(1)表明来意 (2)个人情况概述(名词、专业、突出经历) (3)师从原因(夸一夸导师/为什么对这个研究方向感兴趣) (4)表示感谢,祝福语。另外最好再附件中附上自己的简历、成绩单、未来研究规划(非必需)之类的东西。还有一点,千万不要用QQ邮箱!!!请尽量选择自己学校的邮箱或者163、Gmail之类的也成。
[3] 导师不回复邮件怎么办?
三天原则,等待三天,如果不回复的话就再发一封试试。如果还是不回复的话就只好先去联系其他的老师啦。
[4] 常见的常规问题有哪些?
我大致总结了一下,我被最常问到的有以下几个:
- 为什么想来这里?
- 还有没有联系其他的老师/手上还有没有其他学校的offer?
- 家庭背景
- 你还有什么问题要问我的嘛?(最好不要说没有,会显得没有诚意)
这些常规问题也是很重要的,请千万事先想好该如何作答。
[5] 如何找到心仪的导师/判断一个老师是否合适自己?
这个想必是大家最最关心的问题了,方法也是很多的。主要的衡量标准就是①科研水平、学术能力②个人特质。
科研水平和学术能力我们可以通过相关院校官网查询导师的头衔(院士、杰青优青、长江学者、百人千人万人等),前往导师的个人主页查看导师的近年来发论文/科研项目情况。如果有时间有能力的话,可以看一看导师的论文(注意投递的期刊/会议的等级)更加深入地了解导师的研究方向是否真的是自己感兴趣的。不过如果你觉得麻烦的话,我倒是有更加简单粗暴的办法——可以直接去谷歌学术或者Aminer(https://www.aminer.cn/)查看导师的h index来快速判断,哦对了CS Ranking(http://csrankings.org/)也是一个不错的选择(主要针对计算机类同学)。当然,这些都是只能做个参考,不要过分迷信就好。
个人特质最好的查询方式就是逛各大论坛,询问相关的师兄师姐(这个在夏令营的时候机会是很多的)。当然,导师评价网(https://mysupervisor.org/)也是不错的,只是上面的信息有的时候是不充足的。
[6] 准备夏令营/预推免的一些小建议(有些可能只是针对计算机专业)
- 简历上的东西一定要能够自圆其说,确保写在简历上的东西自己一定是弄懂了的。
- 千万不要小看英语的作用,如果你的英语口语很溜的话,可以在面试的时候让老师眼前一亮,获得很好的印象。
- 关于机试,夏令营/预推免的机试一般都是简单的(较于ACM ICPC)。所以,千万不要在那些很难的题目上浪费时间,最起码的C++ STL的那些API得用得很好,基本的模拟、字符串处理、图论、经典的DP算法要能写得出来。如果你是ACM 大佬,那么请忽略我说的话,因为我相信机试对你来说应该没有问题。否则,我不太推荐看刘汝佳的书来准备机试,我觉得《挑战程序设计竞赛》和《算法笔记》都是很好的选择,特别是《算法笔记》,可以配合着在PAT和codeup上刷题,很棒。另外还有北大百炼/POJ、牛客网也都是些不错的刷题平台。
- 原则上上过的专业课(数据结构、操作系统、计网、计组、离散数学、数据库、高数线代概统等)都是可能会被问到的,但我觉得(仅个人感觉,不一定准确)数据结构、操作系统、离散数学应该是比较重要的,当然如果面试老师的组内很重视数学的话,对矩阵、概率论和可微可导那些也是很偏爱提问的。 提示:以上内容主观因素太强,仅作参考。
码字不易,转载请注明出处。