2019年我拿到了上海交通大学电子信息与电气工程学院计算机科学与技术系的直博offer。整个过程走下来,从最早的材料准备、套磁导师,到夏令营笔试面试,再到最后一刻的确认与反悔,每一环都有太多值得复盘的东西。
计算机保研这件事,网上经验帖很多,但大多是泛泛而谈的“绩点很重要、科研很重要”之类正确的废话。我想写点不一样的,把2019年这一路的具体操作、关键时间节点、面试现场的真实问题,以及我事后才想明白的一些道理,完整记录下来。如果你是计算机相关专业的本科生,正在准备保研,尤其是冲着直博去的,这篇应该能帮你少踩不少坑。
先说下我的背景,不然很多经验没有参照系。我当时在某中流985计算机学院,绩点排名专业前3%,有CCPC区域赛银奖,没有顶会论文,但有2段实验室打杂经历和1段完整的横向项目。英语六级520多分,刚过线那种。这个背景在当年竞争上交电院直博的人里面,属于比上不足比下有余的水平。
1. 直博和硕士的本质区别,想清楚再来
很多人一上来就问面试考什么、简历怎么写,但我觉得最基本的问题反而最要命——你到底是想要硕士学位还是博士学位?这个问题没想清楚,后面全是煎熬。
我这人比较直白,直博意味着你至少要在这个方向的某个细分领域深耕5年左右。如果中途放弃,你什么都拿不到,本科毕业就是你的最高学历。所以2019年那会儿我身边不少同学纯粹是觉得“直博免学费、补助高、一步到位”就冲了,结果读了一年发现不是那块料,进退两难。
计算机方向读博和读硕的路径差异很大。硕士通常1.5年上课+1年科研或实习,毕业进大厂很正常,走的是工程路线。直博前两年上完课,之后的大把时间都在做研究、读论文、写论文,毕业标准通常是若干篇CCF A类/B类论文。这意味着你熬过的夜、秃掉的头,换来的可能是一篇投出去被拒的信心打击。
所以如果你想的是“赶紧读完研去赚钱补贴家用”,直博大概率不适合你。如果你对某个方向真的有刨根问底的兴趣,哪怕没有论文,也愿意花几年时间死磕一个问题,那直博就是一条性价比很高的路。我当年的判断依据很简单:读论文的时候,我经常不自觉地熬夜去追一个引用的引用,完全忘了时间。我觉得这个状态适合读博。
2. 时间线规划:保研是一场从大三寒假就开始的持久战
严格说起来,我的保研准备并不是从夏令营报名开始的。大三寒假结束前,我就做完了三件事:确定目标院校和梯队、盘算自己的竞赛科研家底、评估导师关系网络。这三件事越早做,后面越从容。
2019年上交电院计算机系夏令营的报名一般在5月中旬开始,6月中旬截止,7月上旬举办。但真正起决定作用的,是你在报名前就已经敲定的东西:有没有导师愿意接收你。
2.1 从寒假到4月:研究方向定位与导师筛选
我先说一个可能引发争议的观点:联系导师这件事,不要等到夏令营名单出来再做,那就太晚了。
3月上旬是第一批套磁的高峰期。我当时花了整整一周时间,把上交电院计算机系官网所有导师的页面翻了一遍,按方向分组:系统、AI、网络、安全、理论、交叉学科。每个导师我主要看三样东西:近3年发表论文的产出量和质量、手下在读博士生的情况、主页上research statement的清晰度。
这里有个细节值得说:很多导师主页上的论文列表是很多年前的,说明学术活跃度有限。我会去DBLP上核对,看2018-2019年有没有稳定产出。像软件工程和系统方向的导师,还要看看他名下的学生有没有放出过毕业去向,这往往决定你未来几年的工作状态。
筛选出大约15个导师后,我给其中6个发了邮件,标题是“本科生申请贵组直博—XX大学XX”。内容控制在一页以内,第一段自我介绍,第二段讲我做过的事情(竞赛和项目挑最贴近的),第三段表达对组里具体某篇论文的思考,最后附上简历和成绩单。
2.2 5月报名与材料准备,别在这上面翻车
上交电院夏令营的网上报名系统,每年都有一堆人卡在材料上传环节。我当时准备了下面这些东西:
- 本科成绩单及成绩排名证明(需要学院教务盖章)
- 个人陈述/研究计划(2000字左右)
- 两封专家推荐信(教授副教授各一)
- 竞赛获奖证书扫描件
- 四六级成绩单扫描件
我见过最冤的情况是,一个人各方面条件都很好,结果推荐信格式没按系统要求上传,连初审都没过。我自己的做法是用一个Word文件,把每份材料说明了是什么、证明什么,然后转成PDF上传,文件名格式统一为“姓名-材料类型-日期”。
2.3 为什么说夏令营之前就必须锁定导师
直博和硕士最大的不同在于,硕士可以先进去轮转半年再定导师,直博基本是一进去就要确定导师,也可以说是一进去就要开始为某个导师干活。
所以套磁的优先级非常高。我记得很清楚,4月中旬有一次我给一位做系统方向的大牛发了邮件,两天没有回应。我当时觉得可能没戏了,结果第三天才知道他人在国外开会。所以我的建议是:别因为一两天没回复就自我否定,但也别把所有鸡蛋放在一个篮子里,至少联系3-5位导师做备选。
我当时运气比较好,有一位年轻副教授第二天就回信了,说他今年有名额,问我要了简历和成绩单,然后约了一个电话沟通。电话聊了大概四十分钟,现在回想起来,他主要在确认我是一个什么样的人,做过什么实在的事情,有没有基本抗压能力。这种感觉和求职面试很像,但更偏学术交流的味道。
3. 夏令营实战:笔试、机试和面试的三重考验
2019年7月上旬,我在上海待了五天。上交电院计算机夏令营的活动密度非常高:第一天报到和开营、第二天笔试+机试、第三天是导师宣讲和交流、第四天是面试,第五天出结果和签拟录取。
3.1 笔试考察的重点:数学和专业的“底盘”
去之前很多人说夏令营笔试不重要,只是走个流程。我实测下来,笔试虽然占比没有面试高,但它是筛选门槛,尤其是数学和专业课的基础,不要抱侥幸心理。
以下是我印象中笔试涉及的主要范围:
- 高等数学:极限、多元函数微积分、级数
- 线性代数:矩阵运算、特征值、特征向量
- 概率论与数理统计:随机变量分布、极大似然估计
- 数据结构:树、图、查找与排序的时间复杂度分析
- 计算机组成原理:流水线、缓存映射、虚拟内存
- 操作系统:进程线程、调度算法、死锁
- 计算机网络:TCP/IP协议栈、HTTP、可靠传输原理
这几个模块里,计算机组成原理和操作系统是重灾区。很多人本科学得稀烂,考完就忘了。我这方面得益于平时写代码遇到问题会往底层追,比如我在做并发编程的时候去理解Java内存模型,自然就对缓存一致性和内存屏障有了比较扎实的理解。
笔试题型就是常规的选择题、填空题和简答题。最大的技巧就是别在一道题上死磕,时间分配比正确率重要。我记得有一道流水线加速比的题目,我按公式算出来不在选项里,当时意识到可能漏了分支预测惩罚,改选另一个答案,结果对了。
3.2 机试:C++还是Python的现场决策
上交夏令营有机试环节,时间大概两个小时,三到四道算法题,在OJ上提交。难度大概在LeetCode中等到Hard的边界,动态规划和图论算法一定出现。
我当时决策是用C++参赛。这个决定很关键,因为虽然Python写起来快,但在复杂数据规模下容易超时,而且机试环境不一定提供配套的解释器或库。C++配合标准模板库(STL)才是保研机试最稳妥的路线。如果你平时主力语言是Python,建议至少提前两个月把C++的STL常用容器和算法库过一遍,包括vector、map、set、queue、stack、algorithm头文件里的sort、lower_bound、next_permutation这些。
机试的技巧我只说三点:第一,先读完全部题目再动笔,难度可能和题目顺序不匹配;第二,暴力解先拿部分分,时间不够时宁可用最笨的方法过小数据,也别纠结最优解把整个题空着;第三,边界条件永远测试一下0、空、极端大值。
3.3 面试复盘:从自我介绍到灵魂追问
面试是决定你能不能拿到直博资格的核心环节。我面试那天等了大概两个小时,进了教室看到五位老师坐在对面,中间那位就是我电邮联系过的年轻副教授,另外几位是其他方向的老师。
整个面试约二十分钟,大致流程如下:
- 3分钟中文自我介绍:我重点说了竞赛和项目经历,学术兴趣放在后面讲
- 针对简历内容提问:老师直接追问了我在项目里承担的模块细节
- 专业知识随机提问:问到了“进程和线程的区别”“TCP三次握手中间状态是什么”
- 数学和算法能力考核:“红黑树相比AVL树的优势在哪里”“快排时间复杂度退化条件”
- 研究方向相关问题:对直博方向有没有了解,看过哪些资料
我当时最险的一刻是老师问红黑树,我回答得不太好。现在回忆起来,面试官问这个不是期待你背出红黑树的五条性质,而是想考察你对数据结构的理解深度。我当时的回答偏向术语复述,后来说到旋转操作保证树高时被追问平衡因子,我当场有点卡壳。这些细节决定了面试官对你“科研潜力”的判断——他们需要的不是复读机,而是真正理解问题本质的人。
有个非常中肯的建议:面试前把简历上出现的每一个关键词都准备成“能讲十分钟”的状态。比如你写了“熟悉C++”,那就要准备好被问“虚函数表的内存布局”“智能指针的实现原理”“移动语义与完美转发”。
面试最后,那位我联系的副教授笑着说,准备不错,回去好好想想是否真的要读博。那个笑容我当时没看懂,后来才知道他是真的很在意学生是不是想清楚了。
4. 直博方向选择:别只看热门,要看匹配度
拿了优秀营员之后,事情还没结束。你手里有一个“合格证”,但真正决定你未来五年的,是方向选择和最终导师确定。2019年那会儿,计算机视觉和机器学习已经非常火热了,几乎所有人都往AI方向挤。
但我最后选择了计算机系统方向。原因有三:第一,我带过的那段横向项目经历就是分布式系统相关,我知道自己的长处更偏向系统和工程实现的落地能力;第二,我分析过AI方向顶级会议的投稿量和录取率,那个赛道已经非常拥挤,对于直博生来说可能意味着更长时间的论文空窗期;第三,系统方向有更多的与工业界结合的机会,工程储备不会白费。
我的意见是,选方向不要只看短期热门程度和薪资水平,更不要因为某个方向“好发论文”就一头扎进去。直博五年,研究方向与你的思维习惯不匹配,后面会非常痛苦。如果面试时你已经在和导师交流具体问题了,那大概率可以比较准确地判断这个方向适不适合自己。
关于导师选择,有一个很现实的判断维度:导师是在上升期还是平台期。上升期的青年导师通常有充沛的科研精力和启动经费,会和学生并肩作战,但在顶级会议上的影响力积累可能不够。资历深的大牛,资源丰富平台好,但可能太忙几乎不带学生。这个问题没有正确答案,选适合自己的就好。
5. 常见问题与避坑实录:那些交过学费才知道的事
5.1 推荐信到底怎么要最稳妥
很多人到了5月份才想起来找老师要推荐信,结果发现老师系统里堆了一堆请求,根本来不及好好写。
我的做法是提前一个月和专业课老师打招呼,说明情况。重点是把你的简历和成绩单提前发给老师,让老师有素材去描述你的具体贡献,而不是干巴巴写“该生学习认真”。推荐信的作用不是“锦上添花”吹得天花乱坠,而是让考官觉得“有靠谱的人背书”。有一封质量高的推荐信,胜过三封泛泛而谈的。
5.2 联系导师邮件石沉大海怎么办
套磁邮件没回复,这件事太正常了。导师可能每周收到数百封邮件,而且直博名额有限。我的经验是:第一封邮件发完后,等一周。如果没回复,可以补充一些内容再发一次,但不要花式催促。如果两封邮件都没回,基本可以换个目标了。
如果有导师表示感兴趣并约了电话或面谈,一定要做好功课再谈。我当时把那位副教授近两年发过的论文都下载下来认真看了一遍,准备了一些问题,比如这个方向目前最大的挑战是什么、组里有没有人在做相近的课题。这种具体的问题,比“我很有兴趣加入您的团队”这种表白有用得多。
5.3 拿到多个offer之后的抉择与放弃
2019年我拿到的并不止上交这一家的offer。这是很多保研人会面临的生活:面对多个选择,必须在一个期限内做决定,并且要友好地拒绝其他老师。
这里面有一个必须注意的礼貌问题:拿到确定去处之后,尽快给之前联系过、给过积极回复的导师发邮件说明情况,不要让老师和名额等你等到最后一刻。计算机圈子很小,今天的学术圈导师,明天可能就是审你论文的同行。留个好印象,对以后肯定有帮助。
从现实的层面讲,我当时列了个对比清单,包含:导师学术影响力、论文发表周期、实验室氛围、毕业生去向、城市因素、补助金额。排完这个表,答案基本上就出现了。所以如果你也在纠结offer,强烈建议先列出一个理性的排序标准,而不是脑袋一热拍板。
5.4 直博前最后一个暑假的准备工作
8月到9月开学,这段空窗期千万不要完全浪费掉。导师给我发了一份推荐阅读论文清单,还有两本书:一本是领域经典的教材,另一本是实验方法相关的参考书。我用了大约三周时间读完,并做了详细的笔记。
这段提前预习的经历,让我研一刚开学就跟组里师兄师姐讨论问题时能跟上节奏。很多同期进来的同学,开学前连导师的研究方向具体做什么都说不清楚,差距就是这样拉开的。
还有一个容易被忽略的准备:加强英语。直博阶段需要大量阅读英文论文、写英文论文,甚至可能要做英文报告。我那个暑假自己练了两个月的学术英语写作,虽然没有上什么课,就是把论文里的常用句型和结构总结成模板,反复背诵和改写。这个土办法帮了我大忙。
5.5 心态层面的最后提醒
最后想认真说一点,不是技巧,而是认知。直博和之前的升学考试有一个本质区别——它不再是“被安排好的任务”。你不再有标准答案可以刷,不再有题库可以背,甚至不再有明确的阶段目标。你需要自己找问题、自己拆解问题、自己推动进度,这个过程对很多人来说是极其不适的。
如果你现在还在犹豫要不要直博,我的建议是去试着做一件“没有现成答案”的事,比如跟着老师做一个开放性的小课题,或者自己从零搭建一个项目。看自己在无人指引、方向模糊的状态下会不会焦虑到失眠。这个体验可以帮你预判未来读博的心智状态。
我个人的体会是,直博这件事本身不是什么荣耀或者深渊,它只是一个选择。而选择的好坏,取决于你到底适不适合。把这个问题想清楚,比那几个月里的任何一次机试、面试都重要。如果你在读完这篇之后,依然想去这个方向折腾一把,那说明你大概率不会后悔。