15级数理方向。@ 南大计科

说明

以下是个人经验,而我的经历具有偶然性。在写的时候尽量集中在了可重现的部分。即使如此,因为没有他人经历做参考,有些内容可能要靠脑补,请以实际为准。

个人经历

作者本身对编程很有兴趣,初高中的计算机相关课程都学得很好,大一的程序设计基础也取得了比较高的成绩。

大三上决定转CS,并根据个人情况选择了本校保研。这个学期略微刷了一些Leetcode的题,主要还是把重心放在自己的课上。

大三下选了一门类似于算法导论的课,在这节课上表现活跃,成绩优异(毕竟是别人大一大二的课)。期间和课程的老师频繁接触,看了一些论文。最后这位老师成了我的研究生导师,并且正好老师有一个小课题,这学期的后半段就跟着导师干了些活。这个学期同时刷了很多oj题。

这学期后半段就要报名保研了。五月初开始一直关注着官网和微信公众号,顺利地报了名。期末之后就是机试面试了,已经做好了准备所以没遇上什么困难,最后就保研了。

保研流程

去年的流程参考这篇公众号文章。具体内容我也不记得了,总的来说就是报名提交材料,参加机试和面试,等待结果。这些跟着要求来就行,不展开讲了。注意不要错过报名ddl,从五月初开始就可以关注通知了,这个网址对应的公众号应该会有推送,不放心的话可以直接给计科的招生办打电话问。

准备

很多人会问我现在想保计科研还来不来得及,回答这个问题主要看你处于哪个时间节点。原则上来说,距离保研越久就有越多的时间准备。而事实上,只要不是还有两个月保研就开始了(也就是大三下学期的三四月份),作为匡院学生,你的智力是完全能够做好知识上的准备的。

当然,如果你很早就想准备保研的事了,你还是有很多可做的,比如:

  1. 考虑更好的出路。

    我不是在说南大CS不好,相反,南大CS很好,是很多CS学生梦寐以求的院系。但是到时你已经在南大读了四年了,不妨想想,你是不是还想继续在这里学习三年?会不会希望这二到三年在一个不同的地方度过?毕竟你不像我,还有很多时间做选择和准备。

    如果你并没有那么多的时间为别的选择做准备,或者就是想选择本校CS保研这条比较稳妥的道路,那么你可以:

  2. 联系导师。

    浏览计科及各个实验室(最有名的当然是lamda了,但你也可能在学长学姐或者计科方向/专业的朋友那里听说别的实验室)的官网中老师的介绍,向你(根据他主页写的研究内容)有兴趣的老师发去邮件。直接问“我想保研去您那里该怎么做”可能会令他难以回答,不如看看他发表的论文,针对不懂的地方向他提问,或询问该阅读什么书籍/论文才能了解他的研究内容。如果顺利的话,可以在合适的时候询问是否能跟着他读研。如果这个老师也很欣赏你,那么他很可能会给你一些有用的建议(有的组还会有自己专门的面试,也请提前了解);即使他对这个想法不感兴趣,也不会直接拒绝你,你依然可以正常准备保研,并在之后再次尝试,或者转去了解别的组。

  3. 与科班出身的同学比,只要准备充分,你在面试机试并不会遇见更多的困难。在这方面他们可能的优势其实主要在于代码的熟练度和与老师有更多的接触(并且已经在某个组里做了一段时间了)。你更可能的劣势在于没有写过大的项目,因此在一些老师眼中缺少经验。(从实用角度讲,你的老师当然希望你尽可能一上来什么都会,可以直接开始干活。)所以你最好提前做一些力所能及的小工程。最可行的是选修一门中等难度的课,跟着上机并完成大作业。如果你想自己来,也可以选定一个目标并在网上查找相关文章跟着做(比如写个爬虫、把数据存入数据库,用CNN实现验证码识别等等,都可以找到现成的教学)。或者干脆问你有兴趣的导师“有什么我能做到的项目实践吗”。完成并且能看懂自己的代码,会让你在面试的时候有话可说,并且体现出专业水平。

正式准备

以下是为了通过保研考试你需要知道的事和要做的准备,可以说是你需要有的“硬”实力。

  1. 理论

    这一部分主要对应于科班的算法导论或问求的课程,是你为了通过机试所需要的最基本知识,也是面试你可能被问到的内容。

    你需要熟悉阅读《算法导论》1-12,15-17,22-25及34章,未被列出的章节最好也了解一下。(这个范围不一定精准,你可以询问计科方向/专业的同学和学长学姐,让他们给出建议)。你也可以选修对应的课程。但不管怎么说,算法导论这本书都会是你做理论准备时的圣经。

  2. 机试

    准备方法是把Leetcode的medium难度题都做一遍,那之后机试对你来说就不是威胁了。这也是除了看书外,准备保研主要的花时间项目,请至少提前两个月做好规划。建议使用C++。如果你连C++都不会,把这个教程看一遍。

    机试的具体内容,(在我参加的这一次)是三道大题目,每个题目有10个左右的测试case,可以现场上传并获得测试结果。测试结果就是你的最终分数(也就是打分和测试用的是同一组数据(是的,你甚至可以猜测数据来返回结果,以此来骗分))。

    根据我的学长的说法,机试非常简单,大家都是冲着满分去的。但我这一年不知道是变难了还是我太笨了,每一个大题目都没完全做出来。但总之你把Leetcode都刷一遍就行了。(我当时甚至有一道原题)。

  3. 面试

    面试为三到五个老师的单面,会问你一些专业问题(要是问到你的盲区了记得直接说不会,能不能换一个问题),有的会比较具体,可以现场打草稿;可能还会根据你的简历问一些问题,记得做好准备;最后还有一个老师会问一个比较简单的英文问题,不要紧张,听懂题目之后回答就行了。

  4. 导师

    我在“准备”板块里也提到了提前联系导师的事了,理想情况是你报名保研的时候已经找到一个情投意合的导师了,没有的话也没关系,保研的官方说法是本科生开放日,你会跟着老师参观计科的各个实验室并和感兴趣的老师交流,你可以到那个时候再确定导师。但我是在那之前就找好的,本校学生基本都不会参与参观的部分,所以还是推荐提前找好。如果你觉得邮件联系不稳妥,也可以多选修一些计科的课,这样不仅可以在现实中和老师搭讪,也能帮助你学到更多东西。

最后的话

我们都知道手册这种东西更多的是给自己安全感,实际操作还是要看自己,反正我这篇文章就是带着这种心态写的。如果你觉得没有太多干货,我先道个歉,毕竟我能回忆起来的内容不多,我的经历也没有太高的可重复性。我只是尽量把我关于本校CS保研的知识记录下来,希望当匡院非计科方向的同学想这么做的时候,这篇文章多少可以给他一点依靠。至少我能打包票的是,作为匡院的学生,这绝对不是一件难事。