2019年保研夏令营复试经验分享(浙大软件/南大软件/南航计算机)
作者分享了自己在计算机专业保研过程中的经历,包括夏令营、跨专业考试以及最终选择浙大的故事。在南大夏令营期间,作者遇到了软工专业的教授,并在机试中表现优异,最终获得优秀营员资格。然而,因跨专业考试失利,作者不得不重新考虑保研目标。最终,作者通过预推免成功进入南航计算机专业,并在浙大软件专业面试中表现优异,最终选择浙大。文章总结了作者在保研过程中遇到的挑战与收获,强调了努力与机遇的重要性。
撰写这篇博客的原因不言而喻,一是为了记录过去几个月中经历的各种经历,二是或许能为未来的学弟学妹提供些许帮助。因为在这段时间里,我也收藏了许多宝贵的经验贴,确实体现出收获颇丰,因此在此表示衷心的感谢,也希望能够将这份分享传递下去。
目录
-
-
个人情况
-
夏令营
-
-
- 南大软件
-
-
- 面试
- 机试
- 转折——跨专业考试
-
预推免
-
-
- 南航计算机
-
-
- 报到
- 面试
-
浙大软件
-
- 机试
- 面试
-
总结
-
个人情况
学校/专业
成绩
项目
获奖
科研
夏令营
首先,我是一个江苏人,同时具有恋家情节和父母对其的极大宠爱,因此,我未曾考虑过江浙沪以外的学校。但事实上,北方确实存在许多计算机类的优质学校,值得我们去探索。我们的专业本质上属于半跨专业,许多计算机专业的硬课都没系统学习过,也没有足够的时间进行补习,因此,我选择了报读软件学院。在夏令营期间,我曾向南大、浙大、上交和复旦表达了志愿,但最终仅成功入营南大。尽管如此,我的目标始终只有南大,这或许与江苏人普遍具有南大情结不无关系。
南大软件
面试和机试安排在同一天,白天进行面试,晚上安排机试。其他时间除了固定讲座,可以自由安排,主要进行私下联络导师的面谈。南大夏令营要求必须确认一位联络导师,最后需要提交相关材料,其中,导师意见的占比也会影响最终成绩。
面试
面试安排一整天,具体出场顺序由随机排序决定。面试时长无固定界限,通常在20分钟内完成。尤其是一些较晚出场的考生,老师通常会感到疲惫,10分钟内完成也是常见的现象。
英文:自我介绍
中文:
- 请介绍你在其中投入较多的项目
- 你具体参与了哪些内容
- 这个平台是否为你们学校的学生所使用?(即上述提到的项目)
- 这个“软件设计师”资格证是否由国家人力资源工信部颁发?
机试
我主要采用bilibili上的课程来学习数据结构与算法相关知识,每天在LeetCode上练习两三道题,总共完成了70道左右的题目。为了确保知识点的全面掌握,建议按照题目标签进行分类练习,每种题标下完成几道题后,再进行随机练习,这样可以有效巩固所学内容。
- 算法:采用多叉树剪枝算法
- 面向对象:该小型商店管理系统主要包含商品模块、进出货模块等其他相关模块
讲道理这次机试确实有难度,尤其是第一道算法题冗长且难以把握其核心逻辑,小坑较多(题目我已经保存下来,需要的可以联系我)。在弄清题意后,我迅速转向了面向对象的题目。算法题的解题思路是关键,但即使找到了思路,也不一定能够顺利写出代码。不过,没想到面向对象的题目量如此之大!我几乎一整天都在敲代码,持续了近两个小时,还在细节部分反复调试,花费了不少时间。无奈之下,我决定集中精力完成这一题。次日导师面谈邮件传来好消息,但很遗憾,我未能在算法题上取得突破,反而有同学在算法上投入了更多时间,导致无法完成面向对象的题目。因此,我的建议是——如果算法题一开始找不到好思路,就果断先完成面向对象的题目,这样你至少保证完成了一道题,就有可能领先于相当一部分同学。
夏令营结果:南大夏令营结果分为三个级别——优秀营员、良好营员、合格营员。评分标准由面试、机试、联络导师意见三部分组成。夏令营结束后一周左右会发送通知邮件,很幸运,我最终获得了优秀营员。然而,南大的优秀营员只是优先录取资格,并不能明确给予offer。联络导师告知,为了确保生源,优秀营员通常会多提供一些名额,因为可能会有人放弃(鸽巢效应)。因此,只要你不放弃,大概率机会还是存在的。
———————————夏令营结束分割线—————————————
转折——跨专业考试
我始终将南大视为理想目标,凭借优营资格,我已不再考虑其他学府。然而,本校推免考试于12日顺利结束,我以为一切尽在掌握时,南大却于17日下午发布通知,要求所有一级学科非计算机、软件学科的考生参加跨专业加考。加考科目包括软件工程与数据结构,然而,我此前并未系统学习软件工程,且对跨专业加考的概念完全陌生,因此毫无准备。面对失去南大这一理想的选择,这四天的经历让我感慨万千,远超高考备战的强度与 dedication。面对失去南大这一理想的选择,这四天的经历让我感慨万千,远超高考备战的强度与 dedication.考试重点包括软件工程与数据结构,重点考察基本概念与算法实现。此外,还涉及数学分析与线性代数,要求掌握核心理论与应用方法。考试重点包括软件工程与数据结构,重点考察基本概念与算法实现。此外,还涉及数学分析与线性代数,要求掌握核心理论与应用方法。
数据结构:
约十个选择题,涵盖多种经典数据结构的实际应用,包括链表、堆栈、队列、树、图、散列等。
一个编程题,具体要求是:给定两个基于链表表示的集合A和B,要求计算它们的并集减去交集,即(A∪B)-(A∩B)。我的实现方法类似于归并排序的扫描方式。
软件工程:
- 涉及多方面的概念题:
- 黑白数值测试的原理及应用
- 敏捷开发模式与瀑布模型的异同点
- 配置管理涉及哪些活动
- 持续集成的主要特点与优势
- 其他题目记不太清了……
- 关注设计模式的深入理解:
- 3C制造商如华为、小米、联想均生产手机、电脑及电子产品,请画出UML图并写出代码实现。(第一反应就是工厂模式)
- 针对一段代码进行分析,需回答以下问题:①指出其存在的缺点②提出改进措施。(主要涉及信息隐藏原则、高内聚低耦合原则的违反与南大教材中单例模式实例的分析)
- 其他设计模式相关问题记不太清了……
虽然我认为自己在没有问题的情况下,但因为一周才能收到结果,我不能无动于衷,因此开始关注其他学校的预推免。最终,我在23号 diao 了第2个电话,才从招生老师那里得知跨考获得通过的消息。然而,此时我已经进入了浙大复试(微笑)。反思这段经历,我意识到自身存在一些问题。首先,我应该更加关注官网信息,事实上跨考的说明在9月3号就已经发布。然而,我误以为夏令营结束后,官方会通过QQ群等方式通知后续消息,因此没有给予足够重视。此外,我认为招生群里重要的信息为何被放置在复试招生说明中,以及为何在消息醒目处注明“参加过夏令营的同学不要再报此次复试”这一细节,让我一度感到困惑。同时,群里禁言状态和通知时间(临考前4天才通知)也让我感到不满。回想第一次夏令营期间,完全没有提及跨考相关信息。总之,我建议各位在关注推免信息时,务必保持警惕,即使在群里有老师通知,也应仔细查看,不要轻易忽略任何可能影响你的情况。
预推免
曾经一度觉得自己不需要参加这个阶段了,真的是计划赶不上变化。
南航计算机
南航预报名是在夏令营公布结果之前进行的,本来就没有打算去,然而在跨考的关键两天,由于内心存在诸多不确定因素,担心万一跨考失策,就会影响自己的学业,所以最终还是选择前去一试。
报到
下午16时报到,按照相关要求需提交材料。具体材料请参考官网信息。由于复试通知要求准备的材料并不完全,导致现场许多人未能带齐所需材料(包括我在内- -),未带齐的材料后续需进行补寄。
面试
17号上午到达后,我递上手机……没错,就是交手机,据说是为了防作弊。然后会进行现场抽签确定面试顺序。抽签前,我一直在祈祷能早点抽到好签,因为下午还有南大考试要做,结果还是抽到了倒数第二位(o(╥﹏╥)o)。不过,由于参与面试的人数不多,最终还是能在中午顺利面试结束。
抽到的题目:
- 数据库的完整性约束三要素
- 计算机组成原理相关习题(未掌握的可替换题)
- 网络的七层通信模型
- 进程与线程的区分
老师提问:
- 你是什么学院的(我是理学院的,大概是因为我说没学过计组换了题)
- 你学过哪些专业课(其实我学过不少啊啊啊,C++、Java、数据结构、操作系统、计算机网络、Matlab)
- 你认为编译型语言和解释型语言有什么区别
- 你做过什么项目
- 解释一下MVC模型,已经SSM和MVC的关系(上面的项目里提到了)
- 说一个你开发的类
- 你觉得数据结构的算法和机器学习的算法有什么区别
- 思考一下排序算法背后的数学模型
整体上来说,面试表现平平。不过,因为心思都放在南大跨考上了,面试结束后迅速投入了南大考试的准备。
浙大软件
在第18天收到通知后,我顺利进入了浙大复试流程。说实话,参加浙大复试确实存在诸多不确定因素。由于17号当天刚刚通过了南航面试并考完了南大,结果却均未公布,当时我处于零offer的状态,同时还有许多江浙沪的学校可以申请,然而,最终却发现所有申请都已错过截止日期,令人深感遗憾。all!全部在25号截止,能想象当时我的心情吗……相比之下,浙大是所有学校中最好也是竞争最为激烈的,软件工程专业录取了85人,最终有近400人申请,其中包括了优营计划。虽然心中还有未遂之愿,但最终还是决定一试。
机试
机试在23号晚上,南大夏令营机试之后一直在准备各种考试,没有再集中精力刷题,所以我大概也只有4天时间调整状态。浙大通知机试跟甲级PAT内容是完全一样的,可以在PTA上练习。非常尴尬的是,这是我第一次听说PAT,着实井底之蛙了……而且我也是第一次知道浙大机试是可以用一年内的PAT成绩代替的,大概有50个大佬直接代替了。因此,建议如果有意向上浙大,去考PAT绝对不吃亏。在4天时间里,我先从PTA甲级题库第一题开始刷,以适应PAT的考试内容,考前模拟了两套真题,按一次3小时模拟,尽可能熟悉考试流程。
内容 :同甲级PAT,一共4道算法题,分值分别为:20、25、25、30,考纲范围见PAT。时长为3小时。
语言 :C++、Java(实际上是不限的,因为代码最终要拷贝到PAT上提交,提交时会选择语言,python、js什么的都有,但是机房环境只有这两个)。建议使用C++,因为PAT里卡运行时间的题,用Java基本都超时。然鹅,因为南大机试对Java更友好,所以我之前一直用的Java刷题,时间太紧只能搜集了一些Java刷PAT不超时的小技巧 ,后面有时间可能也会整理一下。
环境 :Java的IDE有eclipse、IDEA,C++不记得了,可以看PAT官网说明。
评分 :按通过的测试用例比列给分。这一点要特别说明,跟南大的不一样,浙大是不给具体的测试数据的,评分的测试用例数量也很少,但姥姥的测试用例绝对是少而精。如果跑不通某个测试用例,你只能自己编测试数据去调试。这一点也是我比较难适应的,因为LeetCode上是会明确告诉你跑不过的测试数据是什么,这样就很容易通过调试找到bug。
我的机试题 :姥姥说已经上传到PTA的 教育超市 里了
- 快乐数:计算一个数的各位数字平方和,得到一个新数。反复对这个新数执行相同操作,若最终得到1,则该数为快乐数;否则即为非快乐数。(你快乐吗?我很快乐……)
- Z型排序:给定一组无序数,按照设定宽度(每行输出若干数)进行排序并输出,排序方式为Z型排列,即一行升序排列,下一行降序排列,依次交替。
- AVL树:根据给定树的前序遍历序列,判断其是否为AVL树。
- 朋友圈:给定图的顶点集合(代表人)和边集合(代表朋友关系),判断给定的每组顶点集合中,其对应的子图中,具有最大朋友数的顶点是谁。
总结
成绩
经验
- 甲级PAT是全英文题目,因此读题要更仔细,很多小的限制条件可能会在末尾。
- 建议边读题边在草稿纸上写下中文题目概要,挑重点简写即可。毕竟中文比英文更容易理解,后续做题免不了再读题,中文可以让你快速定位条件。
- 尽量使用C++,熟练使用库函数。
- 学会写高质量代码,注意时间和空间的限制。
- 学会自己编一些高质量的测试数据,特别是刷题跑不通某个测试点时,一定要学着自己测出bug,实在不行再去牛客网跑,牛客上会给出跑不通的数据。
面试
面试安排在25号,与机试之间相隔了一整天,因此我计划利用这天时间进行面试准备。准备过程中,我主要采取了以下步骤:首先,通过各大网站收集了浙大软件工程专业面试相关的帖子,同时选取了少量其他院校的保研面试帖进行参考,重点整理了以往参与的面试问题,并结合个人简历内容,筛选出可能涉及的面试题目。下午和晚上,我逐一撰写并反复练习这些面试题的回答,并进行模拟面试训练。面试地点位于曹光彪大楼,但学校内共有多个曹光彪大楼,我需要依次查看三栋大楼才最终找到合适的地点。到达后,我依次排队等候,每位考生大约需要20分钟的候场时间。面试共分为英语面试后进行中文面试。我的面试题目包括……
- 简单介绍一下你的学校背景
- 简单介绍一下你在学术或项目方面的主要经历
- 简单介绍一下你的兴趣爱好
中文:
- 我看你好像不是我们专业的,你本科学过什么计算机的专业课吗(同南航提问,信管tcl…)
- 你做过什么项目
- 你在这个项目里承担的职责
- 我看简历里提到Mybatis,你对Mybatis框架的理解是什么样的
- 你觉得你专业课里学的最好的一门是什么
答:C++、Java、数据结构这类编程科目。- 你对C++的STL库熟悉吗
答:不太熟悉,我刷算法一般用Java- 你昨天机考成绩怎么样
答:恩…满分。(然后老师突然兴奋?就考了我下面几个问题)- 堆结构应用(比较复杂,用对话形式说明)
老师:如果要随机动态存取最大的数用什么数据结构
答:大顶堆
老师:那存取最小的数呢?
答:小顶堆
老师:那么问题来了,存取中位数呢?
答:(emmmm…思考了一会儿,老师又暗示了一下,反应过来)用两个堆,一个大顶堆、一个小顶堆
老师:各自存什么内容
答:(思考…)大顶堆里应该存小的那一半数据,小顶堆里应该存大的那一半
老师:中位数应该在哪儿呢?
答:在堆顶元素中。(老师提示了一下,跟数量是有关的)如果两个堆数量相等,就是两个堆顶元素的平均值,如果一边大比另一边大1个,就是大的那个堆的堆顶元素。
老师:如果这时候有一个新数来了,应该存在哪边?
答:与大顶堆堆顶元素相比,比它大就存在小顶堆,比它小或者相等就存在大顶堆
老师:什么时候都要这样比吗,跟数量有没有关系
答:哦是的,两个堆数量相等的时候这样比,如果不等,比如说大顶堆比小顶堆大1个,就跟大顶堆的堆顶元素比,如果比他大,就放进小顶堆里,如果比他小就放进大顶堆里,并且把大顶堆的堆顶元素取出并放进小顶堆里。- 怎样在一个链表里判断是否有环,最多只能使用线性复杂度(答:使用快慢指针,每次快指针比慢指针多走一步,直到快指针又追到慢指针,说明存在环。回答完这个问题后,老师满意的笑了,顺带夸了一嘴,内心疯狂感激)
- 以后想做什么方向
- 你刚刚说的项目组有几个人,分工如何
答:三个后端、两个前端- 你们开发是如何协调的
答:前后端定义好开发文档的接口等等- 我个人情况相关的提问:
老师:有没有选导师
答:暂时还没有,因为浙大竞争太激烈了,我并不确定自己能不能通过。
老师:除了浙大,你还通过了哪些学校
答:南航明确给了offer、南大通过了夏令营但是没有明确给offer。
老师:如果南大和浙大同时录取你,你选哪个
答:这个问题我还没有想过,但是两个学校都非常不错,如果真的出现这样的情况,我可能会慎重考虑一下再做决定。
老师:你家是哪边的
答:江苏泰州。
老师:(笑)那离南京挺近的哦
答:确实是,但是距离只是其中一个考虑因素,浙大的机会还是很难得的。- 好了,最后一个问题,你是否支持falungong
答:反对。(我之前看经验贴都说这是浙大的经典问题,面试的时候一直暗戳戳期待,果然问了hhh)
面试后,切记要签署文件,随后,需要提交相关材料。算法老师留下了我的简历,感觉相当开心。抽签结果较为理想,在上午组的中段,面完后,迅速前往车站准备离别。中午到达车站时,接到老师随后的电话,询问是否愿意加入实验室,并提供了相当有吸引力的条件,让我开始有些犹豫不决。不得不称赞,浙大的效率令人惊叹!25号面试结束后,当晚立即公布了结果,明确地给出了offer。值得一提的是,浙大的招生老师全程在群里解答同学们的问题,真是让人感到非常满意。
总结
结果就是24日收到南航的通知,25日同时收到了南大和浙大的通知。最终,我选择了浙大,原因有诸多,比如浙大的招生团队确实非常出色,还有我非常欣赏的老师,发展空间也非常好。所以说,计划赶不上变化,决定了就不要后悔,一切安排都是最好的。同时,最大的感受就是——努力一定会有回报的!最后这段时间压力确实很大,感谢身边所有给予我支持和帮助的人,也希望这篇博客能为看到的人带来一点帮助ღ( ´・ᴗ・` )比心~~
