跳转至

Zhuanlan.zhihu.com p 418347688

前言

2021年保研到现在已经接近尾声了。在我准备保研的过程中,学长学姐写的保研经验贴令我受益匪浅,所以我一直计划在我填完系统之后也写这个贴子为后人提供经验,但结果一直拖到国庆假期的最后一天...

和大部分同学不同,我本来计划出国而后来因为个人原因又决定留国内读研,在7月末才着手准备保研的,因此我没有参加任何夏令营。当时刚做决定转保研的时候心里很慌张,因为身边的大部分同学都已经在夏令营的时候上岸了,而自己还什么都没准备。好在还有集中9月份的预推免算给我续命,我抓住仅剩的8、9月,每天去自习室复习和准备,并在准备的过程中心里逐渐有底,最后也是去了心目中理想的院校。在这里我也想告诉学弟学妹们,如果你们夏令营没有上岸也要稳住自己的心态,不要自怨自艾,抓住假期的时间准备,预推免也有很多机会!


个人情况

本科院校:次9计科小班(珠峰计划)

Rank:1

CET-4 620+,CET-6 560+,TOEFL 100+

获过国奖+校奖若干。有两年科研经历,一篇一作文章在投。带队完成过较多项目。


预推免报名院校

  • 报名的院校(按时间):哈工大计科、哈工深计科、清华软工、清深计算机、浙大计科、南大计科、北大软微软工、复旦计科

除清深外均通过初审进入复试。

  • 参加复试的院校(按时间):哈工大计科(学硕)、哈工深计科(学硕)、清华软工(专硕)、南大计科(学硕)

参加复试的院校均获得了offer,在南大参加复试的那天下午获得清软的offer,所以后续院校均未参加复试。

最终去向:清软专硕


哈工大计科

  • 复试时间:2021.08.26
  • 复试形式:四轮面试,每轮5分钟,分别考察逻辑思维、专业基础知识、科创与实践、沟通与交流
  • 难度:较简单

逻辑思维面试

这个环节老师问了我两道题,分别是:

  1. 燃烧若干根不均匀的绳,每条绳子燃尽是1小时,如何计时1小时15分?
  2. 给你一个6L和5L的杯子和一个无限容量的容器,如何量出4L的水?

这两道题也是我当年大学自招的时候被问过的题,还是比较简单的。

专业基础知识

老师问了计算机网络和操作系统方面的问题:

  1. 阐述TCP和UDP区别?TCP的机制?
  2. 详细讲一下TCP阻塞控制?(接上一个问题,问的应该是TCP的slow start,fast retransmission,fast recovery等)
  3. 影响操作系统调度的性能指标?说出你知道的操作系统的调度算法?

由此可以分析哈工大计算机问的侧重于基础概念,可以重点准备一下408的概念题。

科创与实践

这个部分就是介绍一下你的科研项目、编程项目之类的,你的项目基本上老师也不太懂,所以也不会刁难你,放心侃就行。

沟通与交流

这个环节就是考察你沟通能力的,比如说会问你研究生期间导师让你做你不喜欢做的事情你会怎么办?不太需要准备。


哈工深计科

  • 复试时间:2021.09. 03(机试)2021.09.07(面试)
  • 复试形式:笔试(线上,选择题)+面试
  • 难度:较难

哈深其实也是我一直很想去的院校,选拔复试难度来说也是比哈工大本部要高的。这里还要提醒大家,哈深和本部的推免系统是分开的,可以同时报名大家不要漏掉。

笔试

哈工深笔试考察面很广,想要全部复习到需要下很大功夫,在这里列举一些考察的知识面:

  1. 数据结构
  2. 计算机组成原理
  3. 操作系统
  4. 计算机网络
  5. 离散数学(群论、逻辑、图论)
  6. 组合数学(平面嵌入、点覆盖、边覆盖...,这块知识是真忘了)
  7. 编译原理
  8. 数据库系统
  9. 程序分析(C++代码)

满分是150分,70道选择和10道判断题。我是100分左右,并没有询问其他同学的分数。虽然考察面广但是问题都不难,不会就是真的不会,作答过程也不会紧张。

面试

面试的话是15分钟左右,自己准备PPT,因为笔试考察过所以不会再问专业课知识了。主要是询问你PPT展示的相关问题,考察的英文问题是让我用英文介绍我PPT上写的一个科研项目。综合来说,哈工深的面试难度较小,好好准备就没问题。


清华软工

  • 复试时间:2021.09.15(机试)2021.09.16(面试)
  • 复试形式:机试(清华OJ)+面试
  • 难度:难

清软是我参加的预推免唯一没有建群的,只用邮件进行通知,好在清软的招生老师很nice基本上有问题必回答所以体验和建群差不多。

机试

今年的机试题比往年的简单,我的机试一直是我的弱项,清软的机试最后也拿了70+,还算心满意足。

题目一共是四道,题目我在下面列出,分值分别是20+25+25+30,大家可以估一下自己的分数,样例说明因篇幅有限就不列了。

1. 棋子

现有一个两行n列的棋盘。第i行第j列表示为(i,j)。在棋盘的第一行有一些己方的棋子,在棋盘第二行有一些敌方的棋子。现在要将己方棋子进行移动,移动规则如下:
如果一个己方棋子(1,j)正下方(2,j)没有其他棋子,则可以将其移动至正下方。
如果一个己方棋子(1,j)左下(2,j-1)或右下(2,j+1)有敌方棋子,则可以将其移动至那个有敌方棋子的格子,同时敌方棋子消失。
现在要将己方棋子进行若干次移动,使得有最多的己方棋子到达第二行。(敌方棋子不会移动,只会被己方吃掉。)

2. 矩阵取物

给定一个n行m列的矩阵,矩阵第i行j列的有一个价值V(i,j),大小S(i,j)的物品。现在,一个小人从矩阵左上角(1,1)开始移动,每次只可以向下或向右移动,且不可以离开矩形边界,最终到达右下角。小人有一个容量为c的口袋,在路径上经过的每个格子中,都可以将其物品装进口袋,但大小总和不能超过口袋容量。最终的总价值即为取得的所有物品价值总和。
那么,小人可以取得的总价值最大是多少?

3. 平衡结点

给定一棵树,树的每个结点有一个权重w,一棵树的权重为其所有结点权重之和。
若选某个结点作为此树的根节点,则将此结点删除后,树将变成若干子树,将此结点的平衡度定义为这些子树的权重的最大值。
现在需要知道,平衡度最小的结点的平衡度为多少。即,将某个结点删除后,剩余子树权重最大值的最小值。

4. 递推公式

给定一个数列的线性递推公式​ A_i=∑^n_{k=1}c_kA_{i−k} ,其中​ c_k>=0 且为整数。假定​ A_1 A_n ​值均为1,我们就可以确定数列 A
例如,对于n=2,c1=c2=1,A为1 1 2 3 5 8...。
现在,给定n,系数c1到cn,以及m。请求出​ A_m\space\mathrm{mod}\space100 的值。其中mod是指取余操作(C++中%运算)。

面试

清软的面试还是很硬核的,问的问题比较深入,而且没有问408的问题,好在老师都很和蔼所以也不会很紧张。

首先开场是自我介绍,接下来几位老师轮流问问题,但还是照例的会问你自我介绍相关的问题。因为我之前做的科研方向是信息检索方面的,所以第一个老师问了一下我一些信息检索相关的概念,并问了一下之前的科研项目的实验设计。第二个老师应该是清软图所的老师,问了我图形学方面的问题,光线追踪,蒙特卡洛方法等。第三个老师问的英文题是让我英文介绍之前做过的一个用来参加比赛的项目。第四个老师应该是做数据库或工程经验比较多的老师,问了我一个之前做过的SQL语句OJ的项目,问的比较深入,还借项目问了几个数据库相关的问题。第5位老师问了一下与沟通交流相关的问题,和哈工大的沟通交流问题差不多。

综合来说,清软面试还是结合你的自我介绍进行,老师工程水平高所以问的可能比其它学校要深入一些,尤其是你的编程项目,所以一定要用心准备。


南大计科

  • 复试时间:2021.09.19
  • 复试形式:面试
  • 难度:较简单

南大计科的复试只有面试,而且可能我是上午最后一个面试的人,所以面试时间也比较短只有15分钟。我报的研究方向是计算机系统和中间件,面试有3位老师,轮流提问。问的问题大部分和编程语言和数据结构相关。

首先第一个老师让我用英文介绍一个算法,我介绍的是快排。之后老师让说一下时间复杂度和最坏情况,之后又给我了一个问题让我实现算法,问题其实是Huffman树怎么实现和时间复杂度。第二个老师问的是编程语言相关的,让我说一下C++和Java区别,JVM的优点,多继承和相关知识等等。第三个老师问了几个操作系统专业题,比如读者写者问题要求设计算法。

南大计科的面试的下午清软就发offer了,遂放掉其它offer,之后也就没再继续进行别的学校的预推免,保研就告一段落等28号填系统了。


后记

综合起来总结一下我的保研经验,虽然每个学校的考核不尽相同,但彼此还是有共同之处。

1. 初审

首先材料初审部分,我认为rank是各个学校初审的通行证,只有过了初审关,进入复试大家才能各显神通。所以低年级同学能为保研做到的性价比最高的事情是保rank。

2. 机试

如我上文说的,我之前没有竞赛经历所以机试对我算是一个弱项。而且因为保研准备的晚,机试的话我只在8月份刷了一个月的题,在leetcode上刷完了hot 100题,然后当时还打算报考浙大,所以在拼题上也刷了一些PAT的题目(后来才知道浙计没有机试...)。这一个月的话其实对我机试水平还是有提高的,最近一次的CSP也过了300分。如果学弟学妹和我一样是非竞赛选手,也可以多刷刷题。最起码像我这样临时抱佛脚也有用。

3. 面试

对于面试中专业知识复习,我自己准备了408的内容,优先级是:操作系统>计算机网络>数据结构>计算机组成原理,然后因为清软和软微侧重软工,所以额外又复习了一下编程语言(C++/Java)和编译原理。但经过我的预推免经验,常考的还有数据库系统。我的复习方式就是从头到尾过一遍教材,重点在于基础概念,然后总结出大纲。如果觉得都复习一遍太累,也可以针对不同院校的专业知识考察面做准备。

对于面试环节的自我介绍,要有主次的介绍,要找到自己的强项并重点介绍,给老师立靶子,吸引火力到你准备比较充分的部分上。面试通常就是20分钟左右,不是你说话就是老师问你,所以抓到自己擅长的问题就一定要多说一些,不要错过发言机会,你不能保证老师换的下个问题还是你能侃的。面试表现不光体现在你的回答质量上,还一定程度上体现在你的回答内容量上。

竞赛科研少的同学可以像我一样贴一些自己参与实现的编程项目,只要项目有可说的地方就可以贴出来。即使自己的项目不是竞赛项目也不是实习项目只是个大作业也不能让你的PPT太单薄,导致老师没什么可问的,这就相当于把主动权过早地交到老师手上。


最后祝保研的学弟学妹们最后上岸理想学校!

颜色主题调整

评论区~