直到今天下午接到HR的电话,确定了具体的待遇,以及其他各种细节以后,才终于确定昨天收到的邮件并不是发错了。差不多持续半年的找实习活动终于可以暂时告一段落了。经历了各种阶段,拿不到面试的焦虑,面试前的紧张,还有等offer的不安。在整个过程也积累了不少经验和心得,下面我就说一下我找实习过程中遇到的难题和一些想法,希望能帮到在美国读CS正在找实习的同学一些帮助。
首先,强烈推荐读一下孙正立大牛的日志(猛戳这里),孙大牛在日志里较为详细的说明了他在几家大公司面试的经验以及面试准备策略,我大概2年前读到,受益匪浅,绝对是CS专业的同学在美国找工作找实习之前必读的一篇文章。
先介绍一下我的情况,非CS牛校Penn State, CS,Junior, GPA刚刚3.5+,目前拿到了Amazon暑假实习的offer。从我的背景可以看出,非牛校,非大牛也是可以拿到在竞争激烈的美国找到实习的。
个人认为找实习基本上分为三个阶段。第一阶段,准备简历,物色感兴趣的公司,尽量丰富自己的背景,投简历;第二阶段,等面试通知, 为可能到来的面试做准备;第三阶段,面试,面试结束后,等结果。
第一阶段,顾名思义,找工作首先要先有简历。推荐 Google Resume这本书,里面几乎涵盖各种可能遇到的情况,包括GPA不高的时候应该采取什么策略等等。当然,这些只是软加工,只有自己背景真正有料,才能避免简历直接被扔掉的结局。所以说好的简历 = 好的专业,学术背景 + 好的加工(格式,措辞)。好简历的样本网上有很多,一定要多下功夫,最好从大一的时候就开始准备,然后不断更新。投之前,最好找英语好的人或者advisor或者关系比较好的教授帮忙看一下,反复确认没有任何错误。我就犯了一个低级错误,把毕业年份写错了。结果按照简历上写的年份算的话我已经毕业了,最不幸的是这个错误直到我投了好几家公司以后才被Google的recruiter指出,虽然不知道会有多少公司因为这一点就将我拒之门外,但肯定是有影响的。所以一定要在简历上下功夫。
简历写好了,如果觉得自己已经准备好了,就可以开始物色公司,投简历了。
虽然几乎所有在美国念书的,参加过career fair的各专业的同学都会或调侃或嫉妒的说所有公司都招CS的人,根本不愁找工作。当然我并不否定美国每年的CS应届毕业生确实处于供不应求的状况,根本不够填巨大的需求市场,但是值得注意的一点是,虽然几乎所有公司都在招聘CS相关专业的学生,却只有很少的一部分愿意招国际学生。即使愿意招,会被选到面试甚至给offer的几率也相当低(大牛请忽视这句话),肯招的都是“家底”殷实,竞争可想可知也很激烈。很多大公司,例如IBM,Intel之类的近年来甚至都开始完全不招国际学生了。 所以说当你周围的美国同学鼓励你去申请Intel,IBM,并且告诉你极其好进的时候(我就有若干朋友让我去试试IBM),你知道他们并没有骗你, 只不过那只是对美国人而言。
就我个人而言,我从2月中旬开始断断续续额申了一共27家公司,涉及各个领域,从云端存储(dropbox),到制造业(BMW),到金融(Bloomberg,Morgan),再到科技巨头(Google,Amazon,MS,FB)以及一些新兴的startup(Quora,Square,)还有一些Cisco,Nvidia之流。截至今日,肯回复我的有8家,但收到面试邀请的只有Amazon一家。虽然足够幸运,只有这一家的情况下就给了offer,不得不说,相比较接下来的面试,个人觉得拿到面试的难度可能更大(GPA4.0,各种科研,各种自己开发应用,各种开源项目的大牛请忽视这句话)。所以请利用周围一切的资源,例如Alumni,Carreerfair,或者任何能够给你referral的人。值得注意的是,我是在春季申请的,所以MS这样的公司先不说有没有兴趣直接就是已经招满人了,如果秋季的话肯定会好一些。因此对于投简历这一步,我的建议是,尽早准备简历,尽早投心仪的公司,然后尽可能的让自己的硬件好一点(GPA,科研,开源项目)。至于各大公司有何区别,我会最后提一下。
第二阶段,这时候你应该已经拿到>=1个面试通知了,就算还没有拿到,也应该开始为潜在的面试做准备了。对于这一步,就像孙大牛说过的那样,强推Cracking The Coding Interview(CTCI)这本书。然后有时间一定要多做几遍,就算时间比较短,也要大概读一下,读一些重点的data structure,algorithm的题,以及对应解题思路,可能遇到的问题。至于其他书籍以及详细知识点的侧重,孙大牛的日志已经说得很详细了,我就不赘述了。我想补充的是,鉴于我这篇日志主要针对找大二或者大三暑假实习的同学,我想说实习时候的面试相对要容易一些的,所以看CTCI这本书应该就够了,当然能辅助性的多找一些难题来练就更好了。
我个人的话是上Glassdoor看最新的面试题以及面经,然后用CTCI或者上Carrerrcup刷题。不过我耗费时间最多的其实是在各种竞赛网站上,我个人最常去的是Hackerrank,上面的题肯定面试不会问到,但是在解这些题的时候,因为有运行时间限制,自然就会想要优化算法,而且会注意到很多细节问题。总之,就像孙大牛日志里说到的一样,面试的成功 = 60%的平时积累 + 30%的考前准备 + 10%的其他因素(如自信、谈吐)。
第三阶段, 到了面试这一天,最重要也是最难做到的一点就是保持冷静。因为我就没做到,所以第一场面试中在一道很简单的BST的问题上纠结了许久。保持冷静,才能真正理解问题,才能察觉到问题里的陷阱。所以一定要沉住气,训练准备了那么久,就看这一次了。当然,多数情况下, 还会有第三轮,第四轮,甚至onsite的面试。这时候就只能拿出过五关斩六将的觉悟了,当然杀到最后的成就感也是无可比拟的。具体的面经,可以在glassdoor上面查询,有很详细的描写,我就不多加描述了,有问题的可以私信我。面试结束后,就进入可长可短的等待期了。然后如果表现的够好,然后公司正好缺人,大概一到两周就会收到offer了。鉴于是实习,所以需要negotiation的情况相对比较少,再加上一般大公司待遇很好,所以收到心仪的offer接受就好了!至此,漫长的找实习路就告一段落了。
听起来确实困难重重,所以我还是描绘一下美好的未来吧。如果拿到offer,意味着你能拿到非常非常非常丰厚的薪水(相当接近全职员工的水平,CS专业起薪高都是有目共睹的,具体可以到glassdoor上面查,会有惊喜),到实习地点的往返机票,实习期间的住宿基本都会全包。然后如果是MS,FB,Google之类的公司,perks会非常多,onsite专属按摩师,厨师,免费工作午餐晚餐,组织实习生看电影,各种社交活动,甚至实习期结束一人送一台电脑的情况都是有的,而且几乎肯定会发生。然后实习生中很大一部分都可以签毕业以后的全职,会享受更好的薪金,还有股票等福利。所以,收获和付出总是成正比的。
具体到我的整个申请过程,我是1月底在career fair上面投的简历,然后2月14通知我这周二(2月26)有两场oncampus的面试,问我参不参加。然后周三,2月27,就给了我offer。给offer的速度实在是出乎我意料,因为就我听说的,一般都是1到2周甚至3周,没想到我够幸运,1天就收到了通知,然后今天(2月28)下午接到了HR的电话,跟我说了一下薪金以及具体的一些细节。这就是我的全部申请过程,总共一个月,应该说是我比较幸运,1个月就完成了整个过程并且顺利拿到offer。一般来说,整个过程是在2到3个月内完成的。所以已经申请了还没有消息,或者面试完了很久没有消息的,都不要着急,HR的效率有可能会很慢的。
总结一下:
准备期:
多参加课外活动,保持GPA,写个尽可能完美的简历,物色心仪的公司,这个过程越早越好,最好从大一就开始。
然后投简历,这个时间因人而异,个人认为最早可以从大二第一学期(准备的较早,有扎实基础的同学)一直到大三第二学期(像我这样的)。一般来说,秋季比春季的机会更多,因为大多数空缺早在过年前就都填满了,春季申请的话就会很被动,所以我推荐的时间是,从大一就开始准备,然后大二第一次学期就开始投简历,侧重于大三第一学期那次。
面试准备期:
这个从大二就可以开始准备了,(假设你大一一年完全用来学习data structure和algorithm),通过孙大牛日志里面提到的和我提到的一些资源,开始刷题,培养做题的感觉。记住,刷题不是目的,记住题目涵盖的知识点才是最重要的。
面试:
早上吃好,面科技公司不用穿西装打领带,虽然穿着无所谓,但是穿的太休闲需要胆量,穿的太正式有的面试官反而会反感。我面试当天的的穿着是,麂皮的鞋,加卡其色工装裤,加深蓝色衬衫,外面套了西服外套。不过穿着真的不是很重要的事情。记得面试时候多说自己的想法,多跟面试官交流,最好能要面试官的名片,以便面试之后可以写thank you note。
我关于在美国CS专业找实习的心得暂时就想到这么多了,想到需要补充的再写。
关于几大科技公司的比较:
FB: 现在属于最有钱的,给的工资要比MS,Google什么的还要多一点,各种perks也一个不少,但是很难进,FB是用php写的,所以会php的话应该还是有优势的。想往社交网络方面发展的可以去FB。
MS:MS待遇也非常好,至少我认识的几个在微软实习的同学,最后都拿到了一台samsung series 9。而且据说之前还有送xbox的,还会组织他们去看蝙蝠侠3,在上映的前一天。微软的部门比较多,遍布各个领域,所以不管什么方向的,都可以在微软找到相应的团队。
Google:就不用说了,perks有名的多,campus上有全职按摩师,心理咨询,还有很NB的大厨,各种休闲放松的设施,我想大家在各种新闻报道中已经见过很多了。google和微软一样,团队很多,但是google的面试听说会更难。
Amazon:我想先说一点,amazon真的不仅仅是卖东西的....Amazon有很不错的kindle部门,还有业界里面最好的云端平台AWS,Amazon Web Services, 所以发展前景也很好。像Quora之类的新型热门网站整个系统都是构建在amazon的云端平台上的。
最后 ,祝愿大家能顺利拿到心仪的实习offer。欢迎各种转载。
补充: 在Code.org上面看到了未来几年内美国CS专业毕业生数量和市场需求的对比图,戳这里,从现在到2020,大概有40,000的CS毕业生,但是市场能提供的工作大概有1.4million。所以现在是读CS的好时机。不过鉴于在美国只能选择竞争更激烈的大公司,国内市场又相当病态,基本也是一条很艰难的路,所以要三思。