我的2020年保研之旅——计算机软件工程专业

目录

  • 一、我的情况
  • 二、前期准备
    • 机试部分
    • 面试部分
    • 准备申请
  • 三、正式夏令营/预推免
    • 同济大学软件学院
    • 南京大学软件学院
    • 东南大学软件学院
    • 浙江大学软件学院
  • 四、总结

前言:2020年的一场疫情,几乎影响了所有事物的正常节奏,今年的推免工作也不例外,连正式的推免也延后到了10月。在正式拿到录取结果后,决定开篇博客分享一下我的保研之旅,提供一些自己的经验,也记录下这不太平凡的一年。

一、我的情况

  • 学校:某地方211
  • 专业:软件工程(学科评估A类)
  • 成绩:1/80
  • 外语:CET 4:562,CET 6:532
  • 科研:参加过学校课外学术科研项目,主持一项国家级大学生创新训练计划项目
  • 竞赛:校级“挑战杯”竞赛二等奖
  • 获奖:国奖*1,校级奖学金*n
  • 成果:软件著作权4篇、发明专利1项、CCF一作论文2篇

以上就是我的基本信息。我主攻的科研方向是数学图论领域,比较冷门。成果里的软著和专利都比较水,两篇论文都是一作,但在参加夏令营和预推免的时候都还未正式发表(最初觉得未发表会比较有影响,但实际上老师们也都认定,可能也比较了解今年的形势,一切都比较滞后),其中一篇是CCF B类(二审),一篇是CCF C类(一审)。而竞赛方面没有任何成果,只有一项含金量比较低的校挑战杯。

接下来是我的夏令营/预推免情况:

  • 同济大学软件学院:夏令营申请未通过
  • 南京大学软件学院:夏令营结果良好,进入wl(waiting list,等待队列)
  • 东南大学软件学院:夏令营结果优秀,拟录取
  • 浙江大学软件学院:夏令营非优秀营员,预推免预录取

最后讲讲今年的计算机保研形势,用一个字概括起来说就是:

我的2020年保研之旅——计算机软件工程专业_第1张图片
由于疫情原因,今年基本各大高校的夏令营和预推免形式都改成了线上,参加起来十分方便,加上国外形势严峻,有很多本打算出国的同学又选择留在国内,导致今年参加夏令营/预推免的人数猛增,大家卷的不亦乐乎

“这是一个人均海王的时代。”——**川

二、前期准备

各个高校计算机专业的考核一般都是机试+面试,前期的准备自然也是这两个部分。

机试部分

首先是准备机试,在大三左右可以准备刷题了,我常用的平台是 LeetCode 和 PTA。

  • 力扣 LeetCode:这是我刷题的主要平台,各个题目都会有算法标签和题解等等,非常适合学习算法的小白。我的刷题策略是只刷困难以下的题,以突破中等题为目标。前期会有瓶颈,对各种算法不了解,但没有关系,某道题长时间想不出就直接看题解学习,慢慢地掌握。另外制定好自己的进度,我大概是从2月份开始刷,一直到9月底,总共做了近900题,差不多是题库的一半了。

  • PTA:这是浙大的一个刷题平台,与力扣不同的是它会考察输入/输出(这点很重要,因为高校的机试一般都是控制台输入用例,打印结果,而不是力扣上以一个函数来返回结果,如果不练习可能输入就会超时)。题库的选择建议是PAT甲级题库,题目是全英文,风格和力扣上确实不太相同,尤其喜欢考察图。

PS:如果有意参加浙大预推免的同学一定要关注PTA平台,浙大预推免的机试是可以用当年PAT甲级或顶级考试的成绩代替的。PTA平台可以进行报名,里面也有对应考试的练习题、真题等等。我因为时间紧凑的原因没有报名PAT考试,直接参加了预推免机试,机试平台也是PTA。

做题的语言尽量选择C/C++,如果像我一样都没学过(笑哭脸),只学过Python和Java,那就选择Java,因为一些高校的机试是不会支持Python的,Java有很多封装好的数据结构,用起来也很方便。

具体怎么做题根据自己实际情况来就好,经典的算法一定要掌握(动态规划、回溯、DFS/BFS、双指针等等),更重要的是语言的功底,有了这些就不用太担心机试。

面试部分

一般来说各个高校的面试都是以下几个部分:自我介绍+专业知识+项目经历+其他唠嗑环节,也会考察英语能力,那么要准备的也就是这几个部分。

  • 自我介绍:准备一段中+英自我介绍,不需要太长,能陈述好自己即可。
  • 专业知识:我的复习对象是四大名著之三(数据结构、操作系统、计算机网络)+数据库系统原理+软件工程专业知识(分析、设计、测试等知识)。
  • 项目经历:谈一谈你的项目经历,同样也是能陈述好就行,可以着重讲讲自己的贡献、创新点和成果等等,我原本也是中+英一起准备的,但实际面试这一段都是中文问答。

在面试的过程中,如果被问到一些不会的专业知识,可以让老师再问一遍,给自己一个缓冲思考的时间,或者直接说明不太了解,切忌明明不清楚但却硬着头皮回答。如果是项目方面被问到一些不了解的技术,还可以尝试把话题往自己擅长的领域领,比如:

“老师您说的这个xxx我并不是很了解,我在我的项目中有类似的xxx经验,它是由xxx技术完成的。”

那么老师接下来就很可能提问你说的这个话题。

总的来说,面试部分的准备不用太早,在参加夏令营之前准备也不迟,因为都是些记忆背诵的东西,可以类比于考研中的政治。面试通常是考核里比较重要的一部分,认真准备,保持自信很重要。

准备申请

从5月中旬开始,就可以关注各个学校学院的招生信息了。各个学校会陆陆续续发布夏令营信息,按照他们的要求申请就好。这里不建议只报一所学校,当然也不建议报n多个学校,除了心仪的学校外,还可以有一些留作保底的和冲一冲的更高平台。

这段时间可以充分地去了解一下各个学校往年的招生信息(录取多少人)、招生简章(学费、学制)、录取办法和自己志愿的研究方向等等。最为重要的就是导师信息,每个学校选择导师的阶段可能都不一样,有些会在录取之后,有些可能在夏令营之前,除了考虑自己感兴趣的科研方向外,切记上一下导师评价网,避免踩雷(虽然网站被墙之后需要氪金,但为了今后的研究生生涯,花点钱了解一下也很有必要)。

三、正式夏令营/预推免

7月-9月就是正式参加各个学校的夏令营/预推免的时候,这段时间可能会比较焦虑,一边要准备各种考核,一边要确定本校的推免资格,所以,保持一份好的心态。下面就分享一下我参加的这几个高校的大致情况。

同济大学软件学院

这是我申请的唯一一所上海高校,复交都觉得有些够不上所以没申请,后来发现确实也没有申请的必要,因为同软后来公示的夏令营名单都是985(逃

南京大学软件学院

南软是我原本心仪的学校,准备的也比较用心,但最终结果并不理想。这一年南软夏令营的人数大概七八百+,所以采用了机试筛人+面试考核的方法。

南软机试:这一年的机试一改以往,不再是1道算法+1道面向对象程序设计,而是5道算法题,每题100分,总分500分。由于是线上进行,机试的要求多而繁琐(双机位+录屏等等),平台是南大开发的慕测平台,90分钟。机试的过程比较“有趣”,感兴趣的同学可以移步知乎:“如何评价2020年南京大学软件学院夏令营?”。

由于进行了分组,每组的题目都不一样,在我感觉是力扣上2道简单+2道中等+1道困难的组成。平台的语言除了C、C++、Java外还可以选择Python,提交后可以看到每题的分数,但看不到测试用例 。在进行了一轮又一轮的压力测试下, 机试200分左右就可以进到下一轮的面试了。

南软面试:面试还是一般的组成:

  1. 英文的自我介绍:熟练背诵
  2. 有没有参加其他学校的夏令营:这里我说了实话(汗
  3. 谈谈关于你的项目:科研项目+工程实践的项目
  4. 专业知识提问:我的面试死亡环节

专业知识提问部分让我万万没想到的是,被问到了离散数学:什么是覆盖和划分、偏序集合、强弱连通图。由于这门课压根就没有复习,所以这三个问题我一个也没回答上(大概是脑中有印象,但又实在表述不出来),我也老实地说这门课没复习所以不太清楚(结果老师还接着问)。最后问了个最小生成树算法,我唯一一个会的问题答完后面试也就结束了。

面试结束就知道自己表现得很差,最终结果不出意料也只是良好,原因也只能归结于复习的范围不广。面试中有其他同学没有被提问到专业知识,甚至有因为项目简单被直接请出会议室的,他们最终都是优秀。

东南大学软件学院

东软坐落于苏州,夏令营只有面试部分,原本是我留作保底的学校,但后来充分地了解之后,决定保底还是留在本校。但既然已经参加,就还是好好认真准备。东软的夏令营先是几天的学科讲座,最后进行面试考核。面试中的问题如下:

  1. 自我介绍;

  2. 是否参加了其他学校的夏令营:这里撒了谎,说只参加了本校的预推免(捂脸

  3. 英文问答环节:

    你在项目中的主要贡献是什么(其实当时只get到了contribution这个单词):研究、做实验&证明、正式撰写等等,英文组织了一下回答。

    论文是否是你独立完成的,还是有老师:There are two teachers, and they are both second-authors.

  4. 唠嗑环节:

    xxx是你的co-worker,讲讲他的优点:吹牛

    说一说你和他相比你的优势在哪:吹牛+1

    今后希望的研究方向:软件工程理论的研究,比如开发过程、测试等

    是否了解我们学院在软件测试领域的老师:不了解,然后面试老师给介绍了下

总的来说面试过程十分轻松,并没有专业知识的提问,最终也拿到一个不错的成绩,其实看得出挺水 。后来的名单中还有一部分是东计调剂来的。我最后选择当鸽子,在推免前发了邮件告知放弃自己的拟录取资格。

浙江大学软件学院

浙软是我准备冲一冲的平台。与其他学校不同的是,浙软的夏令营不发offer,正式的offer是在9月的预推免,夏令营的优秀营员并没有太大的优惠。

这一年浙软的夏令营人数达到了1000+,可以说是点击就送。同样地也是先举办了好几天的学科讲座,听下来的感受就是各个实验室、课题组都特别厉害,出来的都是各自领域里的优秀人才,一点也不水。之后是选择分营各自考核,我只希望划水所以去了网易分营,考核的要求是用Unity开发一个小游戏,因为没有学过,也没有给学习资料,加上要准备其他夏令营,所以最后选择当了逃兵(跑

到了9月中下旬就正式参加浙软的预推免,这段时间刚好和本校推免的时间卡在一块儿,着实让人焦虑。预推免的考核同往年一样,15%机试+85%面试。最初预推免的资格也是点击就送,报名群的人数也几乎要满1000,但最后实际人数远没有这么多,具体过程如下:

浙软机试:线上考试,用的是PTA平台和OMS监考系统,要求也比较多(双机位等),可以使用本地IDE,语言没有Python(我当天考试第一题用Pycharm写了一半才发现,于是立马打开Java Eclipse)。和PAT考试一样,3个小时,共4道题,全英文,20+25+25+30的组成:

  1. 对于一个多项式 ( x + k 1 ) ( x + k 2 ) … … ( x + k n ) (x+k_1)(x+k_2)……(x+k_n) (x+k1)(x+k2)(x+kn),给出 k 1 k_1 k1 k 2 k_2 k2,…, k n k_n kn,一共 n n n 项,输出展开结果中 x n − 1 x^{n-1} xn1 x n − 2 x^{n-2} xn2 一直到常数项前面的系数。

    我的做法:枚举。

  2. 定义3个数 a a a b b b c c c 的距离 d = ∣ a − b ∣ + ∣ a − c ∣ + ∣ b − c ∣ d=|a-b|+|a-c|+|b-c| d=ab+ac+bc,给出3个集合 s 1 s_1 s1 s 2 s_2 s2 s 3 s_3 s3 a a a b b b c c c 各来自 s 1 s_1 s1 s 2 s_2 s2 s 3 s_3 s3,求最小的距离以及对应的 a a a b b b c c c

    我的做法:暴力(学艺不精)。

  3. 背景是各个大学学生参赛,由于某种原因参赛信息不完整,给出n行数据,每一行数据包括学生id,队友个数k(不全,不一定是队伍包含的总人数,因为背景就是信息零碎了),k个队友的id,最后是该学生的得分。求总队伍数,并按队伍总得分排序,依次输出(队伍中最小的id,队伍总人数,队伍总分)

    我的做法:DFS(正解应该是并查集,但同样也是学艺不精)。

  4. 有n张优惠券,n个商品,每个优惠券可以使用无限次,但不能对同一个商品使用多次,再给出初始的钱d,求能买到最多的商品和最后剩的钱。第一行给出n、d,第二、三行分别给出商品价格和优惠券面额。

    我的做法:优先队列。

同样每道题提交就能看到分数,也可以看到排名和通过率,最后我的分数是80不到一点,加上用PAT成绩代替的同学,大概排名在100左右。

浙软面试:由于人多+专业多(工设、AI、软工),浙软的面试分成了好几天,面试过程相比之下正常许多:

  1. 自我陈述(准备PPT),5-8分钟,包含一段1分钟左右的英文表述(我选择的是进行英文自我介绍);

  2. 项目提问:

    本科为什么会选择这个方向的研究?(可能老师也觉得我的方向比较偏)

    你的论文成果有什么实际应用价值?

    你的两篇论文的差别是什么?

  3. 专业知识提问:

    数据结构里图中求各个顶点的最短路径的算法是什么?时间复杂度是多少?(时间复杂度我没记住,老师就说让我猜一下)

    什么是临界区?

    死锁和饥饿的区别是什么?

    计算机网络中OSI协议和TCP/IP协议的体系结构是什么样的?

    (紧接上一个)为什么要进行分层?

    什么是广播分组?

  4. 唠嗑环节:

    你觉得本科生和研究生阶段的区别是什么?

与以往不同的是,面试并没有进行简单的英文问答,只有一小段英文自我介绍,也没有经典的思想政治考核,几个问题都比较基础,我回答得也比较流利,没有太大的错误。面试结束的当晚就收到了某位面试老师的短信,说我面试表现不错,如果拿到offer,可以考虑去他的实验室。

浙大的效率还是一如既往的高效,所有面试结束后第二天就公布了结果。面试的成绩都相差不大。虽然前期的人数比较多,但最终的名单里软工只有300不到(好多人在机试放弃了),招收140人,接近是二进一。我的面试成绩较高,在预录取中的总排名在比较靠前的位置,也总算可以开开心心地过个八天双节。

四、总结

在亲身经历体会后,谈一谈夏令营/预推免中的一些注意点:

  1. 经典面试问题:你有没有参加其他学校的夏令营?

    这个问题几乎每个学校都会提问,我一开始想的也是做个诚实的人,实话实说,但在南软的面试中,当我说还参加了浙大的夏令营后,可以感觉到老师的态度有些转变,所以对于这个问题还是厚着点脸皮比较好。如果又实在不想撒谎说只报了贵校,就说我只参加了本校的夏令营/预推免,打一打擦边球。如果老师问愿不愿意来我们学校,一定要肯定地说是,不管是否真的想去,真正的鸽子永远是到填报系统的那一刻才咕咕咕。当然,如果确定已经有更好的offer,那还是尽早和保底的学校说明放弃。

  2. 学院选择问题:计院 or 软院?

    我在选择学校参加夏令营的时候陷入了一个误区,就是我是软件工程专业,就只能选择软件学院,而计科专业才对应计算机学院,但实际上并不是如此(我到了正式参加夏令营时才明白这一点)。各个高校的软件工程专业都会在计算机学院中开设,而且那些学科水平高的(双一流、A类等等)软件工程也是在计算机学院,同时计算机学院也有软工方向的课题组。而软件学院则比较面向实践和就业,科研水平不高,所以填报的时候也是专硕居多。有句话叫做“天下软院一般水”(当然我觉得浙软是不一样的,后面会讲)。所以,填报学院时不用太过考虑自己的专业,无论你是计科还是软工或是AI出身,都可以选择这两个学院,而是多考虑自己的想法和规划。

时间到了10月,在推免系统开放的当天凌晨3点多,收到了浙江大学软件学院的录取通知,也算是不负三年来的努力。

我的2020年保研之旅——计算机软件工程专业_第2张图片
文章的最后就讲讲浙江大学软件学院吧。浙软给我的第一印象就是格局很大,无论你来自哪儿,他们都会接收,以同样的办法考核。如果说有些学校在审核名单时就是把其他都屏蔽,只留下本科学校筛选,那么浙软应该就是反过来,颇有些英雄不问出处的感觉。其次是它丰厚的教学资源,研究生可以选择浙大计算机学院的导师和实验室,也提供转博的机会,各个实验室的科研等水平也很高。学制一共是2年半,第一年在宁波上课,之后就可以按实际情况,到杭州玉泉校区的实验室跟导师等等。

我的2020年保研之旅也就此结束。这条道路上充满挑战,也充满机遇,而最重要的,莫过于保持自信和努力。如果你有意保研计算机专业,希望本文能够给你提供帮助,也愿屏幕前的你能够成功上岸:)

你可能感兴趣的:(我的2020年保研之旅——计算机软件工程专业)