想找码农实习,申请结束后该干点儿啥

13074
48
Note: 以下直接copy了markdown,原版请见我的Github github.com

入学美帝的CS Master项目已近半年,对以刷题、面试和找实习为主导的第一学期深感不易。由于项目的性质是Professional Master,身边的同学步调格外一致,在第一学期大都会集中精力找实习。找实习是一个漫长的过程,狭义上,在还没落地的时候,就应该积极准备写简历、找内推等事宜;广义上,在结束了申请学校后,找实习的号角就已经吹响了。作为找实习茫茫大军中普通的一员,可以明显感觉到,提前准备对于找实习来说至关重要。

实习的重要性不言而喻。绝大部分的 master 项目只有一个暑假的机会可以在美实习,这段实习经历进可以直接转正,一步迈进你的 dream company,并拿到比校招更好的包裹;退可以当做一段实打实的美国本土实习经历,为之后找全职打好经验基础。先来看看一般找实习的时间线(仅针对秋季入学的项目):

- 8月末入学,各公司的第二年暑期实习入口相继开放,准备简历,寻找内推,网上海投。
- 9月会迎来各校的 Career Fair(校园招聘会),其重要性因学校而异。提前做好调研,在一些CF规模大,效率高的学校,CF是拿到实习面试的重要手段。
- 9 - 11月是面试高峰期,来点数据吧,不算笔试,我找实习一共经历了21次面试,9月有7次,10月有10次,11月有4次。
- 11月末为感恩节假期,许多公司的招聘效率明显降低,部分公司在这个时间点之前已经结束招聘(参考这届的LinkedIn、Bloomberg、TwoSigma等公司)。
- 12月末为圣诞节假期,这个时间点一般是一个分界点,部分公司停止招聘/不再发面试,观察周围的同学,有一半以上的同学是在圣诞节之前拿到的offer
- 新年之后,剩余的位置也逐渐被填满,但一些名额充足的大厂和当地的小公司还会在暑假之前继续进行招聘。

不同公司的时间跨度方差很大,有的公司喜欢快速招聘,如在CF上直接发面试,隔周就会收到录取;也有的公司由于应聘人数多,流程复杂,需要持续三个月甚至更多。但无论流程长短,开始招聘的时间都大同小异的——八月末或九月初。这也就意味着,**如果想打好先手,就必须要在入学之前就做好一定的准备**。如果希望到这边来之后先观望一阵,或者先学习一个学期再找,难度会增加很多。

需要提前什么?如何准备?当然没有万金油的答案,但针对绝大多数公司的面试流程,基本需要准备三件事:**实习、刷题和软实力**。一般来说,想要拿到实习offer,需要通过三轮考验。

### 实习经验

第一轮考验是要过简历,即要能拿到面试的机会。实际上,在我们刚入学没多久就发现,并不是算法面试有多难,也不是自己英文说得多差,而是根本拿不到面试机会。简历并不仅仅是一张白纸,在CF上投简历的时候,HR唯一可以参考的就是你的简历,如果简历除了课程大作业之外就一片空白,很难在现场对HR讲出好听的故事。也就是说,最好在入学之前,就有一个能拿得出手的简历,即拿得出手的经历,包括但不限于:企业实习、实验实习、暑研、开源项目等。

因此我强烈建议,在申请结束后(甚至结束前!),利用好大四课少的特点,积极寻找实习。如果算作大四下学期开学之前结束申请,那么大四下这一整个学期,加上本科毕业后的暑假,一共六个月的时间,足够做1-2段有含金量的企业实习,这些经历都将是之后的重要筹码。

### 准备面试

在简历通过之后,正式的面试流程才开始,面试种类大体可以分为两类:技术面试和行为面试(behavior Interview),面试形式分为两类:电话面试和上门面试(onsite interview)。对于实习面试来说,绝大部分的面试都是技术电话面试。例如Facebook,只需要通过两轮技术电话面试,即可拿到offer。而绝大部分的技术电话面试,考察的都是算法题。与在国内面试不同的是,国内相当多的大厂的面试,考察面十分宽广,上到算法下到OS几乎都要有涉及;而美国的面试套路就会简单很多,绝大部分只考察算法题,更有人扬言:只要刷好[Leetcode](leetcode.com),没有拿不下的面试。这句话只说对了一半:刷题是极其重要的面试基础。说一个比较极端的例子,我的室友是quit的化工PhD,在入学之前的暑假,补充了一些算法的基础,闭着眼睛刷了400道题,在开学之后又把这400道重新刷了一遍。她不懂OS,不懂DB,不懂网络,但是在2018年圣诞节之前,她收割了FLGP四个offer,成为我们专业找实习找得最成功的人;而一些科班出身的朋友,经历丰富底子也好,但在入学之前没有刷过任何一道题,导致九月十月挂掉了几个非常好的机会。这其中确实也有其他的因素,但从面试内容、身边人统计数据来看,刷题确实是拿下关键offer的必不可缺的因素。

因此我强烈建议,在申请结束后(甚至结束前!),开始陆续有规划的刷题。至于怎么刷,网上有太多攻略,不再赘述;至于刷多少才够,这确实因人而异,但在入学之前刷200左右的经典题,大体了解各类题型,在入学后再集中经历有针对性地刷,在拿到面试机会后再辅助以面经,是比较科学可行的方法。

### 软实力

其实在能过简历、又刷了足够多的题后,很大一部分的offer已经触手可及了。但还有一些面试不是那么寻常:

- LinkedIn/Google实习面试最后需要team match,manager会在简历池里挑出已经通过技术面试,并且技能和经历符合需求的候选者;你的经历要足够吸引人
- Citadel上门面试最后一面是:从0开始设计一个Short-URL系统;只会算法题显然是不够的
- Mathwork最后的manager面是:说说你上一份实习你的经理和mentor都是怎么评价你的;你要学会讲故事
- Nike的面试80%的时间在跟你谈未来;高盛的视频面试有点像托福口语;…

不只是上述这种不常规的面试,甚至连投简历和拿offer都是有技巧的:有的人只会海投,有的人却会主动联系HR;有的人只会找陌生人内推,有的人却找到了之前实习的老板;有的人被动等待team match,有的人却主动找感兴趣的经理聊天…这些综合实力或软实力,很难讲怎样提升或者提升多少是足够的,但在每天的学习中你习惯积累,乐于反思,至少是百利无一害。以上这些,对于我自己来说,还有相当大的上升空间,因此90%的面试我都失败了。

但这也是我写这篇经验帖的原因,希望可以帮助到后来人。

### 电梯

- [2018Fall 申请总结](github.com)
- [MCS 1point3acres.com UIUC 客观数据 + 主观感受](1point3acres.com)
- [MCS @ UIUC AMA](1point3acres.com)
  • 237
48条回复