22

2020 Summer 实习上岸总结

 3 years ago
source link: https://nyan.im/posts/5125.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

2020 Summer 实习上岸总结

March 27, 2020

前文提到,我的秋季学期在无数简历石沉大海之后,以面挂了亚麻VO的惨淡结局收场。

我当时为了亚麻的VO改了回国的机票,所以回国的时间总共只有十几天。虽然我在回去之前发誓假期要好好刷题,不过大部分的时间都在外面浪,所以爆肝刷题计划失败(

虽然题没怎么刷,不过简历倒是投了不少。当时春招刚开启,每天都能看到有新的公司放出职位来。这次我在投简历的时候也不仅限于SDE了,DevOps,SRE相关的职位我也投了不少。

因为这期间投的大多是小公司,回复的速度比大厂快了很多。形式大多是先HR电面,再进行OA和技术电面。我在寒假期间收到了一个VO和1个HR电面,分别来自Ancestry和Shipt,再加上之前就已经约好的Naveego。相对来说都是比较冷门的公司,我把这些面试都排在了开学第一周。

我在一月初飞回美国之后在纽约玩了两天,在一天早上起来刷LinkedIn的时候看到了一个Quicken Loan的SDE职位,就顺手投了一个。令我没想到的是当天上午,在我坐在1线地铁上前往Battery Park的途中收到了HR发来的短信(是的,短信),和我约了HR电面,同样在开学第一周。

在纽约浪了两天之后回到雪城,开始准备第一周的一堆面试。

第一个电面是Quicken Loan的,公司位于底特律,是全美最大的房地产贷款公司。其实各个公司的HR电面内容都差不太多,大致是HR和candidate相互了解的一个过程。HR给我讲了不少关于这个职位的事情,技术栈感觉比JD上看到的要好一些,JD上列举了很多.NET相关内容,令人望而却步。

然后HR给我介绍了实习生的一些福利,比如管住宿,有shuttle之类的,然后问我对每小时工资的期望是多少。我当时有些懵,第一次见到在电面里问工资期望的,于是给了一个很大的范围,说10-30我都能接受。然后HR说我们的时薪是xx刀,你觉得ok吗?实际上这并不是一个有吸引力的薪资,毕竟学校食堂打工都有$13.75/hr。

通话结束之前HR说会把关于我的材料交给技术团队,然后在下个周三给我答复,然而一连鸽了两个周三之后,直到第二个周五终于接到电话,告诉我他们决定move forward with other candidates. 我:……

第二个是Shipt的DevOps的HR电面。Shipt是一家做超市外送的公司,此前被Target收购了,DevOps Intern职位位于Birmingham, AL。电面过程中HR介绍了技术方面的很多信息,很有吸引力。

结束的时候HR给我发了一个Take Home Project,和AWS基础设施自动化相关。难度不算大,但是很有挑战性并且很考验自学能力。我从这个Take Home Project中也学到了不少东西,我之前对DevOps的理解更侧重于软件方面(测试,构建,交付等等),突然让我和基础设施和网络打交道还是有些懵逼的。在做Project的过程中提升了知识水平并且捡起了遗忘很久的计算机网络。

Project提交之后不久收到了VO邀请,不过那时候已经接了Ancestry的offer就没有继续面下去。

之后紧接着是Ancestry Performance Engineer Intern的VO,通过Zoom进行,有三个面试官,Performance Engineering组的Director和印度小哥在一个会议室,另一个全程没露面。

第一件事情是介绍自己过去的实习和项目经历等,我首先讲了过去的一些项目经历,包括PHP,Django的Web后端开发,和SQL相关的一些优化,还有DevOps以及运维相关的一些经历。然后提到了我是如何优化我的WordPress博客,这个博客已经运行超过5年了,我花了很大的精力才把它优化到现在的程度,涉及到前端,系统,网络等等。可惜的是刚开始有些紧张,很多东西没讲清楚。面试官结合我说的东西问了几个follow up,答得还算顺利。

然后面试官给我介绍了Performance Engineering具体都做些什么事情,以及和SDE的一些区别,接下来就是各种技术问题了,整个面试过程中没有Coding,不过内容覆盖很广,从前端到后端到操作系统到网络无所不含。就像在Facebook做SRE的朋友和我说的一样,SRE很看重知识的广度。不过这类问题的好处在于只要确实接触过,哪怕记不清细节了也可以答得八九不离十,不像算法题一样,会就是会,不会就是不会。

最后的提问环节我问了问关于公司的技术方面的内容,以及公司的的产品。我之前一直以为Ancestry是和23andMe一样的基因检测公司,但实际上Ancestry的产品更偏向于家谱分析,而不是像23andMe那样更侧重个体的数据。

面试结束前Director告诉我会在1-2周后给我答复。一周后收到offer,考虑之后决定接受。

最后一个是Naveego的SDE职位。这家公司早在去年12月初就已经给我发了HR电面的邀请,只不过可选的时间太少约到了1月中。

电话的主要内容是让我介绍了自己过去的项目和实习经历,对未来发展方向的计划等等,都是些很常规的BQ。我说完之后她就开始介绍他们的公司,技术栈等等。Naveego的技术栈很新,以Go,gRPC,还有一些微服务方面的技术为主,实习生所用的技术基本也是这些,具体工作内容大部分是开发一些内部工具之类的,确实和大厂相比会更有impact。最后的环节是我来提问,我问了一些关于他们的产品(类似于数据仓库)的一些内容,还有一些技术方面的东西。总而言之确实是一个很有吸引力的实习机会。

在最后HR说他一会会把第二个Coding Challenge发给我,同样也是Codewar上面的一道题,不过有两条额外的限制:一是必须用Golang完成,另一个是不能使用循环(for,while)。总体难度不大,但是很新奇。

我当天就把Coding Challenge写完并给HR发了邮件,等待两周之后收到拒信。其实被拒并不太意外,早在12月初的时候地里就已经有人发帖说实习职位已经招满了,在电面之后直接收到了拒信。

首先是申请阶段,美国这边暑期实习的时间线比国内要早很多,很多大厂在8-9月就会放出职位,对于很多大厂来说(尤其是Amazon和Google),一般只要及时内推通常都能拿到面试,这是个上岸的最佳时机。如果投的太晚基本上就很难被捞起来了。然而我当时并没有意识到这一点,所以错过了这个最佳时机。

其实我们这里的大多数人都是抱着到了美国再开始找实习的心态的。实际上这样是不可取的,因为等到了美国安顿下来,再动手准备简历,联系内推和刷题,基本上就已经错过大厂的最佳时机了。所以在到达美国之前就应该准备好的有:

  1. 一份基本可用的简历。因为简历基本上都是边改边投,也不需要一开始就十全十美,及时投比完美的简历更重要。
  2. 完整的LinkedIn Profile和尽可能多的Connections,方便联系内推。
  3. Leetcode刷题量,越多越好。
  4. 女生在5-6月就要开始准备GHC了。

另外就是一个老生常谈的问题,通常来说内推的效果一定远远大于海投,然而面临的问题是如果找不熟悉的人内推(比如LinkedIn上的或者地里的),内推的过程可能会很长,甚至对方会完全没有回应。这样就会很耽误事情。

在我看来,如果是大厂,一定要找内推,对于Google,Amazon这样的大厂,只要及时内推基本都会有面试。而且相对来说大厂的内推也不会很难找。

对于小厂来说,内推可能不会有大厂那么好找,可以先试着联系内推,如果不行则及时海投。很多小厂完全就是拼手速,我之前见过一家公司,因为LinkedIn给我发的Job Alert晚了大约10个小时,那个职位就已经投了300+人了,何况这300+还仅仅是通过LinkedIn投的数量。

小厂的职位通常会分的更细,甚至直接具体到组。所以小厂会更看重简历上技能的match。所以在投小厂的时候可以多翻翻listing,选择自己最匹配的职位来投,这样效率会高很对。如果是技能完全对不上就不用投了,几乎没有可能中的。

我在前一篇文章中也提到学校Career Service的老师在workshop中经常强调不要听信学长所说的需要投几百份简历才能找到一个实习,比疯狂投简历更重要的是去networking,和校友交流来寻求内推,或者在LinkedIn上勾搭recruiter。

实际上,我问过周围的朋友,也自己尝试过,大家普遍反应效果并不好,比如在LinkedIn上给recruiter发InMail,十个里面能收到一个回复就已经很不错了。于是绕了一圈之后又回到了疯狂海投简历上来。个人看来无论是去骚扰recuiter也好,找人求内推也好,都是一种手段,不一定会有效,但也不一定没有效果。所以能尝试还是尽量尝试一下,反正没有坏处。

投完之后就可以静候回音了,一般来说最快一周内,最慢一个月左右收到回复。更长时间没有回复基本就是默拒了。在这期间保持每天刷一些题,投一些新的职位。

面试来了之后就纯看能力和发挥了。大家经常说面试就是考做题,但其实包括语言,表达能力在内的软实力和代码能力一样重要。如果超过10个面试没有offer可能就需要反思一下自己的面试技巧。同理,如果超过100份简历没有面试的话就最好分析一下简历是否存在问题了。

说到具体的面试技巧,这就是很大的一个话题了。地里已经有很多总结面试技巧的帖子,这里就不再赘述了。我想强调的就只有一点,在Leetcode上做题的时候尽可能把的每个题目的所有解法都搞明白,比如一个题目可以暴力,可以DFS,也可以DP,那么就把这些方法都搞明白,确保自己搞懂的是一套方法,而不仅仅是一个题。面试官在出题的时候通常都会把题目魔改一下,或者加上一些限定条件,或者出一些限制更严格的follow-up。面试官这么做的原因是他想看到你对于一个题目的思考过程,而不是倒背如流地把题目做出来。如果对于一个题目只求用一种方法解出来的话,可能加上一个限定条件之后就不会做了,或者虽然很流畅地做出了题目,但是无法让面试官看出你的思考过程。我的亚麻面试就是这么挂的。

今天在地里发现一个帖子,个人觉得写得很棒。原帖在这里:https://www.1point3acres.com/bbs/thread-622093-1-1.html

找实习就是讲究brute force。

1.没准备好,晚投 -> 很抱歉我准备好了

2.没OA经 怕挂 -> who care,头铁直接做

3.没面经,要不要拉后点 -> 很抱歉,我已经身经百战了,第一日期点上

4.我感觉我资历不够 -> 头铁,试不试怎么知道。

跟着羊群走是杀不出重围的,就这么简单,希望有人能从这篇里醒悟

祝大家offer多多,入职/入学顺利。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK