ddadaal.me

ddadaal.me

ddadaal's personal website

马上订阅 ddadaal.me RSS 更新: https://ddadaal.me/rss.xml

北大信科 | 上交软院 | 南大软院夏令营经历

2019年8月7日 22:06
看法

怎么又要保研了?

其实我从大二开始就开始准备直接去工作的。根据我的规划,项目比赛刷题实习转正,之后就是直接踏入职场了。而这个规划以外的、很多同学大学期间做的工作,例如说找老师、进实验室、做科研、发论文,我完全没有想过。

到2019年4月,这个规划进展非常顺利,项目、比赛都有能拿出来的成果,刷题也勉勉强强足够应付MS的要求,实习Offer也顺利到手。

结果没想到这个时候发生了一件影响颇深的事,那就是贸易战。由于个人无法接受996,所以外企几乎成为了唯一的选择。但是我认为根据这几年的国际局势以及国内996的趋势,外企在中国的发展前程是比较受限的。所以,趁着这么好的机会,读一个研究生,不仅在以后找/换工作为自己增加筹码,还可以避开这几年的“乱世”,多观察多体验,找到真正属于自己的道路。虽然很可能最后我可能还是会外企,待遇比本科出来只低不高,但还是决定现在去读研。由于最终目标还是工作,所以在找夏令营时有几个条件;

  • 不直博,只读硕
  • 毕业越快越好
  • 最好允许实习

我的个人情况可以参考我的简历。在这个暑假中,我参加了北大信科上交软院南大软院的夏令营。

北大信科

事项
时间见下表
机考和结果百练OJ的比赛,AC 3/8,排名 97/225
面试情况计算中心,网络、数据库和高性能计算方向
结果优秀营员

日程

时间活动
5月16日-29日网上报名
7月4日上午签到,领取营服
7月4日下午到7月5日下午讲座
7月4日晚上练习题
7月5日晚上机考
7月6日开始至闭营面试

报名

本院每年都有几位同学去清华,但是已经有几年去北大的一个人的都没有。研究了后发现,可能是因为我们是软件(而不是计科的)专业的,所以研究生也更倾向于去软件相关的学院和专业(而不是计科)。而北大的软院(即软微)的情况比较特殊,北大信科是传统意义上的计科,所以最后没人去北大了。

其实我也一直是这么想的(去软院),且由于北大信科要三年,而且(一般来说)学硕可能也不会太允许实习,所以我也一直没啥兴趣去。只不过到最后DDL想了想还是可以去北大了解了解,再加上4年前也去过一次北大的信科夏令营(给高中生的),所以感觉可以试试。最后成功收获几个极限操作:网申在DDL前2小时完成找老师要推荐信在和材料投递在DDL前4小时完成,以及获得被入选夏令营的最后一个报名号

申请编号 我的编号

另外,北大的报名不需要寄送材料,29日晚上前在网上填报,31日晚上上网上提交扫描版申请表、成绩单、自述和其他奖状什么的就可以了。

推荐信也把我搞了一波。首先,29日结束的网申不需要推荐信的任何材料,31日结束的材料提交中,需要确认有哪两位老师进行推荐,并且需要他们的联系方式等信息,不需要实际上拿到推荐信。至于推荐信本身,只需要等到夏令营报道的时候才需要提交。而我网申根本就没有找老师,而是等到30号才开始找老师,直到31日晚上才确定推荐的老师,之后6月底结果出了才去找老师要的……找老师的过程比较艰辛,问了6、7个本院的给本科生上过课的老师,最后在最后一天才确定下来……所以如果像我一样之前和老师除了上课再无交集的同学,可以早点去找老师,并且胆子要大一点,人在屋檐下不得不低头嘛。

最后今年本院只有我一个人去了,其中一大原因是7月4日本院有课考试,而夏令营报名期间考试安排还没有出,所以几位大佬也直接没有报名。而我经过胡乱分析.jpg,认为我4号有考试的几率比较低,搏一搏单车变摩托。最后几位大佬果然有考试,而我果然没有考试。另外,认为北大只招一个是不对的,因为在我夏令营的那几天中发现其他学校的好像都去了好几个,只有我校就去了2个人(加上一个电子方向的同学共3个,夏令营共400人,注意是南大总共就去了3个),另一个小伙伴还是去叉院夏令营的。所以如果学弟对北大感兴趣的话,可以勇敢一点报名,有考试也不用怕,鸽了不就完事了,夏令营鸽了一点影响都没有。

讲座

前两天都是白天讲座,白天讲座还是蛮重要的,因为信科还是个比较大的院系,下属了很多的实验室(见下面日程安排表)。每个老师在讲的时候会讲讲自己实验室的基本情况,比如研究方向、导师的情况、过往学生、招生计划等,对北本之外的同学来说是一个非常好的了解渠道。

日程1

日程2

我印象比较深刻的包括软件工程和系统软件方向的讲座。这个实验室(软工所,官网)最大的特点是它有3名院士19名博导,而且保研只招直博生……从时间也可以看到这个实验室讲的时间是最长的(接近1个小时),因为他们老师多方向多,中间还穿插讲解了之前毕业的一些大佬学长学姐的情况、一些他们的项目情况等。他们的名额也非常多,今年似乎有19个直博生的名额。这个实验室的人员配置和做的方向真的是让我叹为观止,感觉真像是他们自己说的“一个实验室和其他学校一个系进行竞争”的情况。

另外,其实听讲座期间我还是比较失望的,因为我还是对学术真没什么兴趣,但是绝大部分实验室做的都是学术工作。并且,很多实验室的博士名额比硕士多(软工所的19比0是最极端的……从今年的优营名单也可以发现直博119多于硕士73),对只想上硕士的我来说有点不对口。

听到后面我甚至有点不想去了,但是最后一个计算中心的老师讲的激发了我的兴趣。计算中心(官网)严格来说不是信科下面的研究所,而是一个机构,管理整个北大的所有信息设备的机构。只不过它也培养计算机应用技术专业网络、数据库和高性能计算方向的研究生。听完讲座并了解一番后,我的感觉是:

  1. 中心做的工作比较实
  2. 中心只招硕士,招的人数比较少,每年保研3个人,考研1-3人,而硕导有7位,师生比比较高;
  3. 中心几乎没有科研压力,并且只需要学位论文就可以毕业了,所以应该也不会“被压榨”(最多也就是学不到什么东西,但是反正也没怎么期望……)

所以即使发现中心的资料在网上几乎完全找不到,知乎、导师评价网等完全没有相关信息,并且看情况中心也有一些问题。但是想来反正读研的目标并不是做研究,这种条件可能还更适合我,所以决定去试试,实在不行就当刷面试经验了。

下午的座谈其实就是答疑,老师在各个教室里,自己对哪个是实验室有兴趣就可以去找老师聊聊和问问。由于我对计算中心比较有兴趣,所以下午2点就去计算中心那儿问了一些情况。3点左右人比较多之后,老师带大家参观了北大的一些机房和设备,包括他们的未名一号超算。整个2个小时就来了10个左右的同学来了解,说明中心还是确实比较冷门的……

在座谈机考之前有一个小时通过问卷星填志愿,分一二志愿,理论上来说一志愿没有满足会才会再考虑第二志愿。而我就直接填了计算中心的一志愿。

机考

基本情况:

  • 4号晚上机考熟悉环境,5号晚上正式机考,都是8道题
  • 我是计算中心的机房中,每个人一台台式机,不能联网,正式机考不能带手机(练习就随便了)
  • 电脑Windows 7,有Dev-C++,VS,Eclipse (for C++和Java都有)等IDE,还是蛮全的
  • 练习和机考都是在北大自己的OJ(百炼OJ)上进行的,支持C,C++ 11,Java 9(惊了),Python,C#等各种语言,在线编辑器就是个textarea,没有语法高亮、测试等功能,提交就是提交,所以还是先在本地写了再复制上去提交就可以了。
  • 评分的方式是和OJ一样的:做出更多题目的同学排名一定比做出更少题目的同学排名高;做出同样题目的,罚时越少排名越高。罚时计算方式:每到做出的题目的时间点之和;在这之外,每个做出来的题,在做出来之前出错一次,加20分钟(没做出来的题目的出错不算)。例子看下图:

罚时计算例子

练习题(题目)让我心态爆炸,8道题只做出2道题,日历题还是在同学的指导下做出来的……但是其实仔细看通过和尝试人数就可以发现其实绝大多数人也都只会2道简单的题……

练习场实拍

正式机考的题目难度比练习题要低,但是还是可以大致画出三种题:

  • 做过算法题的会的(A, B, D)
  • 学过竞赛的会的(C, F, G)
  • 只有神仙会的(E, I)

机考题目情况

由于我只做出第一类,这里简单说说每个题的思路(我做的代码由于我忘记给的账号的账号密码了所以提取不了了……),题目本身可以点进链接看看。

A: 数和字符串

定义一个字符串序列 s[1]="1",s[2]="2", ..., s[n] = 数字 n 转化成字符串后的结果

输出 s[1] 到 s[n] 中,(字典序)最大的那个字符串

暴力:直接把所有字符串相比较,比较出最大的(C++可以直接用大于小于运算符比较string对象)。

B: 打印月历

输入为一行两个整数,第一个整数是年份year(1900 ≤ year ≤ 2099)/,第二个整数是月份month(1 ≤ month ≤ 12),中间用单个空格隔开。

输出为月历表。月历表第一行为星期表头,如下所示: Sun Mon Tue Wed Thu Fri Sat 其余各行一次是当月各天的日期,从1日开始到31日(30日或28日)。 日期数字应于星期表头右对齐,即各位数与星期表头相应缩写的最后一个字母对齐。日期中间用空格分隔出空白。

题目中给出了1900年1月1日是周一。的提示,所以可以先用暴力法(一天一天地加),算出从1900年1月1日到给定月份第一天有多少天,模7算出是周几,然后注意格式直接打印就可以了。

D: 上楼梯

小S在玩一个叫上楼梯的游戏。楼梯一共有n层台阶。因为腿长的限制,小S每次最多只能上k层台阶。小S是一个迷信的人,所以他不希望自己某一步走的步数的数字里有"4",(比如4,14,44都含有数字"4")。现在,小S想要知道,有多少种走完这n层台阶的方案?

动态规划入门题上楼梯(Leetcode 70)的变种。方程:f(n) = sum(f(n+i), 1<=i<=k 且 i不含4),直接递归+记忆就可以了。

机考总的来说是很两极分化的。普通人的题目的难度和Leetcode的Easy题差不多,所以准备过实习的同学做出做过算法题的会的题目的难度不大,但是其他题却比hard还要难……所以没有练过算法竞赛的同学其实可以直接把简单题做完就走人了,不用挣扎了。但是由于这样,普通人做出来的题目数量其实差不多(这次有70多名同学都是3 AC,占1/3),所以可以注意一下时间,尽量一次AC,不要被罚时。我三道题40+分钟都全做出来了,所以排名比较高。另外,北大机考的硬要求是做出一道题就可以参加面试(有的实验室可能有额外要求,但都不会明说),所以可以不用太把机考看得太重,面试还是更重要的。

面试

能不能面试也没通知,反正就到了时间就去教室外面等着,有志愿者会叫人进去面试。面试排名不知道是怎么排的,但是比较幸运的是,我是第一个面试的。在进去的时候瞥到似乎只有5个同学把中心选为第一志愿(且似乎有一个同学是北本),但是选中心为第二志愿的同学并不少。有北本的同学来是个好现象,说明这个中心的名声应该不会太差的(否则不应该有北本的同学来)。而且5选3的录取率,还是非常可观的(比整个夏令营的录取率1/2差不多,留意此录取率,后面要考)。

面试时长为20分钟,全程录像,有6-7个老师都在现场,流程基本是自我介绍根据简历问问题一点专业知识以及一些研究方向的考虑。我还记得的我的问题如下:

  • 中文自我介绍(说是3分钟,但是其实1分钟就说完了……可以多说点,自己多说点,老师少问点嘛)
  • 因为简历里有区块链的比赛和项目,所以让介绍区块链的原理,作用,优点,我们项目的亮点(其中一个老师让用简单的语言给一个完全不懂的人介绍区块链)
  • 问每个项目的情况,以及其中我负责的部分(说具体一点,比如说前端等)
  • 说离散数学和微积分这种数学有什么关系,为什么学计算机要学离散数学(这题有点懵,就按直觉答了)...

剩余内容已隐藏

查看完整文章以阅读更多