2020 保研历程(哈工大、南大、浙大计算机)

2019 年 9 月 28 号凌晨 3 点 8 分,我正式同意了浙江大学计院的待录取通知,这标志着从 5 月中旬开始到现在的保研经历告一段落。虽一切已经尘埃落定,但是这其中的准备经验、得与失、收获的教训、感想都值得分享给大家。与大家共勉!

已同意浙江大学待录取通知

基本信息

  • 本科院系:哈工大计算机学院 计算机科学与技术 2016 级
  • 学分绩排名:56/256
  • 综合排名:32/219(我申请的时候都是用的学分绩排名)
  • 四级 637,六级 474
  • 美赛 M 奖,全国大学生数学竞赛三等奖
  • 人民奖学金三次
  • CCF 270 分,哈工大基础学部新睿创新杯程序设计大赛二等奖
  • 两个大创项目,一个国家级、一个校级;还有几个小型的项目
  • 创业公司实习经历

我很明白自己很明显的一个缺陷是学分绩确实不算高。所以申报过程也不是很理想。只过了两所学校的初审,不过幸运的是,最终都拿到了 offer,也成为了别人羡慕的对象~

  • 申报学校:复旦计算机夏令营、上交大计算机夏令营、北航计算机夏令营、南大计算机夏令营、浙大预推免
  • 初审通过:南大计算机夏令营、浙大预推免
  • 复试通过:南大计算机夏令营、浙大预推免

当时报夏令营我一直想着南大没另外几个学校那么好都不太想去,结果没想到反倒是这个过了初审哈哈。南大夏令营正式开启了我的保研之路,给予了我巨大的信心。

前期准备

在大三下学期刚开始不久,我也曾加入找实习的大军中,当时因为准备不充分加上没有经验,妄想着只要面试就会取得比较好的结果。结果发现,想要进大厂没有较强的实力和充足的准备是完全不可能的。在这个时候就知道了,自己确实缺乏对算法的训练、对专业知识没有系统的复习,并且简历准备的不够充分。面试过那么多公司都被拒了打击还是挺大的,于是痛定思痛,好好提升自己。

简历非常重要,之后花了很长的时间来准备自己的简历,尽量把自己的优点展示出来。在我失败的同时,看到 PiEgg 发布了他春招的经历,从中找到了自己今后的努力目标。说实话,看到这篇文章,最大的感觉就是羡慕,很庆幸自己看到了这样的一篇文章,也找到了今后努力的目标。

后来就觉得自己现阶段最重要的还是学习,今后既然打算读研究生,那么实习经历显得不那么重要。不过保研的事情,我也是一直都知道,却一拖再拖,记得好早的时候,我的同学和我说,他在准备简历,想着联系一位很牛的老师作为自己的研究生导师。当时我对自己极不自信,更不敢想着主动去联系导师,但是也感觉时间越来越紧迫了。

后来的我还是鼓起勇气,迈出了保研的第一步——联系本校老师。

哈工大海量数据研究中心

哈工大计算机两个公认的最好的实验室就是 SCIR 实验室和海量数据研究中心了。我联系海量数据研究中心的老师是五月底到六月初,正值数据库考试结束,这位老师就是数据库的授课老师。老师治学严谨、思路清晰、对待作业考试都很认真,给我留下了比较好的印象,所以非常想找这位老师做导师。

这段时间,家人和杰杰给了我很大的帮助,他们给我出了很多主意,我到现在为止都非常感谢他们。中间遇到的很多问题,都是和他们共同商量选择一个比较好的做法,他们也经常为我出主意,非常用心。

比较好的就是,这位老师对我也是印象深刻,夸我上课认真听讲、指出老师的错误、帮助同学解答疑问。我们通过邮件聊了很多,老师的研究方向,我自己读硕士的想法,感兴趣的方向,业余爱好等等。后来就去找老师面谈,大致上就是闲聊什么都有讲到,然后回来之后几轮邮件老师就同意了我。后来海量数据研究中心还组织过面试,我也不用再去了,就直接算是通过了。

面谈的时候,老师稍微提了一下有没有打算还出去参加夏令营的。我就坦诚地说报了一些夏令营,可能会去南大一趟。老师也说,之后如果要走记得和我说,免得实验室这边到时候没人了。

后来被老师拉进了学生群,还去老师的实验室看过,新搬到的科技大厦非常阔气。参加过老师的两次组会,老师的水平很高,对学生的问题能够一语道破天机。老师性格和善,有一次同学没有认真准备,他也是婉言批评并且终止了组会。可能是因为第一印象吧,反正我对这位老师的认可度是非常高的,至今觉得他是一位好老师。

南京大学夏令营

夏令营通知一般都是发布到各个学校计算机学院(当然上交、北大不是计算机学院,而是电院、信科)的通知版面的,有时候没有是因为还没有发布,所以在 5 月到 6 月这段时间一定要频繁地关注各个学校的学院官网。

05.18 收到南京大学复审材料的通知,26 号收到了南京大学的入围通知。这时想留本校,但是又想去一所更好的学校,抱着试一试的心态我觉得去南大参加夏令营。

南大夏令营机试 300 分,两个小时,一共 3 道题,用的是一个小飞机图标的开源 OJ,占比 50%;面试总分应该是 100 分(我也不太清楚),也是占比 50%。

看了往年很多前人总结经验贴,于是我从头到尾看完了 MIT 6.006,并且一直在 Codeforces、Leetcode、洛谷(跟着 https://oi-wiki.org)刷题。在去之前还模拟了一次,刷了去年的真题,结果好像是做出来两道吧。刷了很多题,但是不成系统,没有分知识点去做。

南大夏令营住宿是四星级酒店真心不错,准备的很认真,后来听开幕式才知道准备周期大概有一年。夏令营是在 07.12 - 07.14,其实真正用来考核的时间就是 12 号的机试和 13 号的面试。

机试一共三道题,我没有一道题全对:

  1. 一个很长(长度为 tt)的数字字符串,要求删除 kkktk \le t) 个数,使得得到的数最小。(60/100)

    需要思考的较多,写起来很简单。越大的数,越先删除,对于需要删除的同等大小的数,其余的数都不比他大,所以先删除前面的。但是有特殊情况需要考虑,例如 219219,删除 1 位的最佳选择应该是直接删除 22 而不是 99,因为这样会使最高位得以降低。这种情况需要优先处理。我当时就没有考虑到。

  2. 男孩女孩排列问题,要求连续男孩的个数不超过 kk 个的可能的排列个数。(70/100)

    动态规划问题,划分子问题求解。当时使用的递归结果超时了。

  3. 给定前序和后序,计算中序有几种情况。(40/100)

    这是一个定式,前序,后序给定划分子问题时可能有多种左右子树的划分方式,参见柳神对 PAT 1119 的解答,适当变形即可。

170 分的成绩不太理想,不过后来联系了老师也比较顺利。联系到的老师是做编程语言的,人很好,对我很热心,而且老师的学术也很不错。我发简历发过去后老师立刻拨通了我的电话,和老师面谈了两次,感觉老师没有一点架子,待人平和,是好导师。

后来 13 号的面试就是闲聊了,中文自我介绍、闲聊(当然有专业问题)、最后问一个英文问题(我的是介绍一位科学家,我介绍了 Eric Demaine)。

后来不到一周结果就出来了,专硕,当时还是非常不甘心的,为什么机试就是没考高一点,也确实是怪自己没有充分准备。不过咨询了导师和招生老师,只是在学费(专硕一万,学硕八千)和毕业证上有区别,转博资格是一样的。所以还是觉得去南大是一个更好的选择,南大学术氛围好,地理环境也不错,名气上应该还是比工大要高一些。我也是在参加南大夏令营时候开始思考,或许以后应该出国深造,继续读博士。

回来之后,我立刻和海量数据研究中心的老师说明了去意,本来以为老师会责怪我,没想到老师非常鼓励我,客观地帮助我分析问题,我非常感激老师如此地大度,老师还说没事,之前本来说好了可以出去看一看的嘛。

另外,我在这里遇到了同班同学,一起度过了难忘的几天。遇到了高中的同学康康,他非常优秀。还认识了重庆大学的一位人很好的同学,结识了清华大佬,四人在一起逛校园非常难忘。本来想着以后会去南大就没有多难过,现在看来是去不了了还是有一点不舍,他们几个最终都去了南大,就我一人歪打正着去了浙大,想想这人生还真是很多不确定性呢。

浙大预推免

浙大预推免机试完全按照 PAT 甲级的难度规定,占 20%(今年是第一年加入机试);面试占 80%,和考研复试应该是差不多的,都是有红白纸的问题。

学习 PAT 的话就是开始一直在刷题,后来走之前一天考研浙大的室友给我推荐了 宇宙无敌PAT-A不完全考纲,鼓励我把所有的知识点全部过一遍,并且把柳神的刷题记录pdf共享给了我,这个真的是帮了我很大的帮。室友告诉我 90 以上才算是比较高的,我之前还一直想着考个 80 几分就很不错了,听了这话之后我就在心里下决心一定要过 90。

除了刷题,我把《剑指offer》、《C和C++程序员面试秘籍》、《程序员面试宝典》里面不会的算法、专业问题都刷了一遍,看了一些计网、机器学习的面经,看了一下《C++ Primer》发现这本书不太适合查读,每篇文章都很长,就直接用 cppreference。走之前准备了英文的自我介绍和对家乡的介绍。

机试是 09.23 晚上 18:30 - 21:30 一共三个小时,由于中间客户端出了点小问题集体延时了 10 分钟,结果我机试考了满分,20:45 就做完了,但是出来的时候已经一共有 54 个满分,后来才知道完全结束之后有近 100 个满分,加上用 PAT 成绩代替的得有 100 多个满分了吧。

机考题目如下(我和我室友都觉得今年出的题还是偏简单,PAT 考试应该会难一点,至少不会出原题):

  1. happy 数:任给一个数,求其各位平方和,求迭代到 1 所需次数,或者形成圈的起始数
  2. 给定无序数组排序给定宽度并用 Zig zag 输出(PAT 原题)
  3. 给定前序判断是否是 avl 树(PAT 原题)
  4. 给定图,给定顶点子集,排序输出顶点子集图中度前 3 的点,度相同输出编号小的

在我写到第二题的时候,oms 客户端突然断开了,这个时候我写完了,然后测了自己生成的几组数据,发现了末尾不完全为一组的 bug,要不是这段时间被拖延了,我可能并不会自己去构造数据,也不会发现自己的错误所在,然后一直找 bug 找不到,反而会浪费更多时间,最终会造成没有这么顺利,可能后面的题也做不错来。

一鼓作气,这是我最大的体会,前面时间留多了,后面再怎么样都不再怕了哈哈。最后一题我刚开始超时了,是因为在 cmp 函数里面反复调用函数计算 ip,没有实现重用,改为计算一次存在缓存数组里面就好了。还有一个很傻逼的错误,把 m 当成 n 来用,最后搞得浪费了好多时间,用 cout 才找出错误来,现在想想真的是好幸运自己找出来了这个 bug。

第二天的面试总共有6位老师,进去之前有很长的时间看红白纸上面的文字,每张纸上三四段文字不算长,肯定是可以读完的。一进去,老师首先要我用英文介绍一下我的学校,因为临时组织语言有点卡,所以导致说到半路 1450 回归的历史的时候,老师打断了我,可能这个时候老师感觉这个学生还不是特别厉害。

但是马上问我白纸上的问题我回答 merge sort,当时脑袋抽筋了,后来才想起来是 heap sort,老师应该还是比较满意了。为了机试成绩,我说 100,这时候可能是比较佩服了。

之后聊成绩,这么低的成绩还可以保研哈哈(听说浙大只保研了 20%,我们是 28%),我说有加分竞赛。之后就是红纸上的 compiler vs. interpreter,还有数据库事务的四个特性,undo redo checkpoint 等等。

还问了机器学习你学过什么,朴素贝叶斯解释一下。

问了你报过其他学校吗,有录取了吗?回答就是南京大学。

你想读那个方向,联系过浙大的老师吗?回答是计算机视觉和计算理论。

之后还闲聊了一些吧,不太记得了,总之算是所有的问题都应付过来了,表现得还算是比较有气场,所以老师好像对我也比较认可,最终结果也不知道会怎么样,希望能过吧,不过也没有太大的关系,之后打算好好找导师。

和我一起去的同学的问题比较奇葩,红白纸上是计算机系统指令,下推自动机太难了吧,还有就是问了 C++ 内存分配,以及两阶段锁协议。

中午的时候,面试主考官给我打了电话,说是想找我谈谈,然后说是2.30-3.00去蒙民伟楼的 CAD&CG 实验室找他,让他的学生和我面谈一下。

到了之后就是和学长面谈,学长说了实验室的一些研究方向,有科学数据可视化,医学影像模拟,口腔透明牙套,电磁学影像模拟等等。实验室环境不错,计算机配置一两万,发论文,做项目按照自己的兴趣来。学长刚进来的时候是搞电磁学的,后来转向了搞科学可视化。研究生可以住在紫金港校区,好像是三人寝,上课需要三个校区跑,这是没有办法的其他校区也是。学长对我没有问什么专业问题,问了一下语言基础,项目经历,有没有 ACM 竞赛经历等等。还说如果来的话,到时候可以过来做毕设,做好一点到时候发个比较好的期刊,说是开学就可以申请新生奖学金一两万左右。还说老师会给安排住宿,很不错。因为 CAD 是国家重点实验室,资源是比较丰富的。聊来聊去聊了大概 40-50 分钟。东扯西扯,感觉这个博士学长挺好的,很平易近人,听上去对课题了解颇深,比较靠谱。

这个博士学长也分析了他当时面试的一些经历,说是红白纸也是比我难,考的什么编译原理自顶向下方法什么的哈哈。

还有就是老师说今天我在所有面试人的队伍中是比较有竞争力的,还问我有没有联系过其他学校,本校的其他老师,我都如实回答联系过南大给了 offer,并且正在尝试联系其他老师。老师很肯定地说愿意给我 offer,并且说让我回去再考虑考虑,我觉得现在真的是稳了哈哈。

后来就是去 CCNT 实验室面试,三位老师,全程看简历闲聊,老师都非常和善。老师比较看重我的数学成绩,说我机考不错,然后水平也不错,问我有没有找老师,我说被面试官看上了,老师听后很佩服,标注上了优秀的标签。问我感兴趣的方向,说是计算机视觉和计算理论,之后说愿意把我推荐给另外一位搞理论的老师,让我可以和老师联系一下。我就说我也不确定我可以过,老师说没事的多了解了解。之后第二天还收到了 CCNT 一位老师的面谈短信。

其实我当时还是感觉自己发挥的不错,但是还是知道自己是在和很多优秀的人一起竞争,过是肯定可以的,但不一定拿到计科学硕。结果总分只有 87.2 分,果然最终的结果就是——第二志愿软工学硕。不过这对于我来说已经算是不错了,我愿意欣然接受之。

还有就是浙大这边联系导师建议去之前就联系好,我因为去之后联系的,大多数好导师应该是都招满了,有的回复一下,有的干脆都不回复了,有点受挫的感觉。

我之后就向南大的老师解释了自己去浙大的决定,老师表示理解。其实我去之前都是和老师说过的,这样老师一般就比较好接受。在和南大面谈的时候,出门前最后谈到的就是,如果还想去别的学校试一试,尽情去,但是我们保持联系~

收获

暑假中间断了一个月的准备。其余时间几乎都在思考准备保研这件事,在这个过程中,我还去参加过联发科的面试,也算是通过了没去拿 offer,不过这个确实比较简单。

通过这阵子不断的提升,首先是发现了自己确实有很多不如别人的地方,学会了向优秀的人看齐,同时巩固了这三年学的专业知识,提升了编程能力,以后的日子还要居安思危,多多刷题,多多积累专业素养。

身边有很多同学,一路走来,也是有的欢喜有的忧,不过只要付出过努力,最终的结果也都不算特别差,付出和收获还是成正比的。

未来打算

目前导师还没有完全确定下来,不过大致上有了自己的主意,选导师也不必太过纠结,不能要求太高,毕竟以后还是靠自己的努力,但也不可太随意。

多多参加比赛,多多积累自己的实力,要有自己的思考,多想想为什么别人能够如此优秀,兴许我从现在开始追赶也不晚。

长期的计划是,硕士期间早早做好就业的防备,但是仍以学术为主,争取交流的机会,希望能够有机会积累实力,硕士毕业之后出国就读博士。

短期的计划就是,首先联系好导师,学好 TOEFL,然后再把大创项目顺利完成~

致谢

  1. 网络上众多的保研贴,各大保研公众号
  2. 陪伴我的家人、杰杰、豪豪、旭旭等一大批给我帮助的同学、还有万般友善,在我无法去之后表示理解的老师
  3. 母校——给了我知识,给了我坚强的后盾
  4. CSRanking, Google Scholar, Aminer

其实这保研途中还有好多细节,要写下来真的是很长很长,这段经历也算是很独特的吧,也收获了许多感动和警醒,人生中就那么一些关键的转折点,在这个时间点里一切都是惊心动魄的,但是过去之后回看感觉也是很自然的吧,希望对你有所帮助~

文章作者: upupming
文章链接: https://upupming.site/2019/09/29/2020-bao-yan/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 upupming 的博客