Han You bio photo

Han You

Experiences bring wisdom

Github Email

找工总结--投向巨硬


2019/02/01,于赣江边


周二面完被拖了四个月的亚麻,结束了最后一个面试,找工季也算正式告一段落。还是激动的,在二十一岁这年终于实现了经济独立。但也有失落, 因为没有更多的可能性了。写下这篇总结,尽量客观地记录这半年的求职经历,也希望可以帮到后人。


关于学校

当初在申请学校时,心里比较明确之后毕业后会直接找工。所以对学校的考量在于找工方面的支持。仔细研究了各个学校的情况,出于氛围和 项目人少,加上一些大藤情节,最后选择了Yale。说实话,受限于教授数量,Yale的课程选择并不丰富,对找工有帮助的课程寥寥可数,也就OOP, OS那几门课。 但这个项目能提供很多课程以外的东西。

来了以后,很快找到一群很优秀的同学成立了一个刷题小组,每天在群里布置题目打卡。因为大家基本都住在一栋宿舍,没事的时候可以很快聚集起来互相mock interview, 对提高交流表达能力是很有效的。之前看过一个很有意思的讨论,有个人在论坛发帖说,在学校支持等方面相同情况下,bar高低没有任何意义, 纯粹是学生思维作祟。从这半年的经历来看,我认为bar高低是很重要的一个考虑点。你身边的人会对你产生影响,这是潜移默化的。 对大部分人来说,个人的能力相当于身边人的平均值。置身在一群优秀的人中间,首先你会直接学到他们的学习习惯,交流技巧等等。 此外,这种环境中的个体也会更有动力去提升自己。

住宿方面,Yale也非常友好。基本所有人都可以选上宿舍,像我住的HHH。离系楼只有三分钟路程,楼下就有中餐馆和中国超市,省去了很多花在上学路和吃饭上的时间。 因为住在一起,晚上也可以很方便地聚在一起学习,不用担心出门的安全问题,像一起打打球煮个火锅都是很方便的。有时候会有On campus面试,基本都在宿舍对面的Career Center。 总而言之,生活上的便利是很有意义的,可以让你把时间花在重要的事上,而不用被生活的琐碎拖住,选学校时也应该注意这个问题。有个观点很好,“上大学的本质是探索自己”, 不管你去哪里,首先的事都是找到自己的路并为以后打好地基。从这个角度看,去能给你更多可能性的学校。


内推

想拿到更多面试,找内推还是很重要的。可能有些公司海投的效果一样的,但是你摸不准,所以尽量每家都找内推。我的经验是,大厂内推比较重要,像那些缺人的hot startup往往就无所谓, 海投他们也会看简历。

我找的内推主要来自领英上的校友,在投简历时。选定公司和学校,就能看到你的学校在这个公司的校友,直接connect并请求对方内推就可以了。在发给对方的消息里要简短交代一下自己的背景, 并注意礼貌。一般来说,大部分人还是很热心帮忙内推校友的。另外一个就是一亩三分地找内推,但个人认为效果一般不太好。地里这种往往一个人会推几十上百个人,必然没法仔细给每一个人写推荐语。 此外,如果双方没有学历或工作的共同背景,这份内推也显得缺乏说服力。


关于刷题和面试

总的来说,美国的SDE面试可以分成两类,一类是许多大厂用的Leetcode题,另一类就是考底层或domain knowledge,比如大部分自动驾驶和Trading公司,会比较强调C++和OS相关能力, 有些按组招人的大厂也会考比较多和组里工作相关的知识。但准备面试,主要还是刷题为主。许多人的观点是刷题没有意义,觉得只是去背那些题,面试碰没碰到原题全看运气。 但从另一个角度来看,刷题也有助于培养思维习惯。刷题时,你会很注意去分析每道题的不同解法,去明白它们优劣,根据不同情况作出选择。碰到复杂的情况时,会思考怎么去简化逻辑。 此外,刷题也有助于养成良好的代码习惯。现在打开自己两年前提交的代码时,发现命名空行都很凌乱,也是感受到了刷题到一定数量后代码风格的变化。

本质上说,Leetcode的题目都是现实问题的简化版。里面有一些不错的设计题,比如扫地机器人和贪吃蛇,基本就是让你完成一个项目的关键算法。里面具体的实现也可以有很多的考量, 这是平时做题时需要去思考的。在面试时,面试官从面试者这里期待的是对问题的思考以及对不同方案的分析--就像平时工作一样。从这个角度看,用好Leetcode其实会给个人带来很大的提升。 另外,平时做题的时候要尽量弱化题目本身,不要可以去记题目。在某次面试时,面试官出了Meeting Room II,但是他给的是Train Station,也就是说每个房间等于一条火车道, 计算需要多少条火车道来使它们不冲突。因为对Meeting Room这道题太熟悉了,中间有次把train说成了room,面试官立刻就发现我做过原题了。另外也有遇到过被出一道背得很熟的原题, 但是面试官改了一个小要求,结果各种不舒服,各种bug,因为思维不由自主地向原题靠。这些都是血泪教训,所以哪怕是刷面经题,也要尽量弱化对题目本身context的记忆,去着重看题目背后的逻辑。

面试主要是电话面试和onsite,前者是打电话给你,然后让你在一个在线coding pad上写代码。后者是去公司,面对面和工程师交流,并在白板上写题。毫无疑问后者的交流更通畅,因为面对面时, 肢体语言和眼神交流都有助于交流,此外在白板上也很好画图解释。所以在电面时要注意交流,讲的时候多在coding pad上写些东西帮助对方理解。当你和面试官都进入了投入讨论技术的状态时, 往往你的面试已经成功一大半了。所以,可以多笑!个人感觉,你在笑的时候,对方在电话那头也可以感受到你的情绪变化。和面试官对话就像在和一个刚认识的朋友聊天,自己都不投入的话, 又如何指望对方投入呢?

像一年的项目,容易碰到平衡找工和学业的问题。onsite密集的时候,可能要经常飞西部,学业就很难顾及。选课时要量力而行,OS这种的要谨慎选,别像我一样学不懂在课上痛哭:) 。另外安排onsite也要注意, 如果很间隔很大,可能就是一家offer过了deadline另一家的还没出结果;如果很密集,可能就要连续面多家,每家都没有时间好好准备,而且作业那些也很难有时间写。我最后选的是在11月那段时间的一个月内面掉全部onsite, 然后就一个月面了七八个onsite,基本每周都红眼航班飞西部,整个人状态很差。但好处就是大部分offer都在那段时间出来了,可以好好比较并选择。这种就要具体看个人取舍了,但推荐尽量不要太密集。如果太密集, 每家都只准备一两天,运气不好很可能全部悲剧。宽松点虽然可能等不到最想去的公司,但至少可以充分准备每一个面试。

下面也放了一下各个公司的timeline,希望可以给正在读这篇文章的人一些参考。欢迎找我内推!


电面拒:

Bloomberg, 10/8:
       之前电面过了以后公司因为省钱把onsite改成了on campus面试。on campus的题都秒了,但是还是被拒了, 身边面的同学也很多玄学拒,BB的标准还是挺搞不懂的,可能比较看重技术以外的behavior这些吧。

Peloton, 10/12:
      一个小公司,HR说他们号称“健身界的苹果”。主打健身器材加内容,所以需要很多程序员。面试是个三姐, 写完题后一直在拖时间让我写某个test case,体验很不好。

WorldQuant, 10/17:
      领英上随手投的一个康州本地trading公司,面试类似国内问项目那种,答得很吃力,被拒。

Citadel, 11/13:
      Trading巨头,在芝加哥能给new grad 27w左右的巨包,但是压力也很大,要加班。bar比较高,电面要求写完并且run代码,一直debug不出来,gg。

Rubrik, 11/21:
      最近比较火的startup,不过包挺小的。基本都是出面经题,面到了design灯开关的那个,没有准备到,也是没有做出来。


Onsite拒:

Opendoor, 11/9:
      第一个onsite,做在线买卖房的网站,已经融到D轮了。面试下来感觉公司的人都挺厉害的,两轮上机代码加lunch interview再加一轮system design, 目测挂在system design了,经验还是不够。不过他家面试体验挺好的,还给定旧金山downtown海景酒店!值得一去。

Google, 11/19:
      面完Oracle后留在湾区继续面Google,虽然有几道面经题,但都没刷到,GG。狗家的面试还是很统一的,要好好刷一遍面经题才行啊。

Akuna Capital, 11/29:
      芝加哥的trading公司,包不如Citadel,但也不错。面试很底层,OS和C++那些东西,目测挂在OOD上。他们办公室真的很美啊,芝加哥也很漂亮。


Withdraw 及 Cancel:

Optimus Ride, 10/6:
      波士顿的自动驾驶startup,主打低速落地。和HR聊了几次后感觉不太match,就没继续申了。

Robinhood, 11/22:
      最想去的公司,公司发展巨快,可能是现在最火的startup了。他家new grad的面试也需要上机现场写并compile,加上system design。 电面过了以后开始卖力准备system design,然后安排onsite时被通知他们招满new grad了,虽然onsite也没什么把握,还是非常伤心...

百度硅谷研究院, 1/5:
      无人车地图组的职位,投得比较晚,电面了一下。没有想象中好,核心人员流失太严重了,面完以后就withdraw了。


最终Offer:

Oracle, 11/15, 11/16:
      云组的offer,manager是个人很好的CUHK老校友。虽然O家是出名的养老院,但是云组的面貌和O家其他组不太一样,面试基本是Leetcode,面的这个team主要做cloud的sdk, 技术也很新,觉得还是挺棒的。如果不是O家裁员的黑历史多,可能就去了。

Aurora, 11/28:
      个人认为是目前最强的自动驾驶startup。创始人是Waymo CTO和Uber,特斯拉那边自动驾驶项目的负责人, 还有很多CMU机器人中心过来的研究员。一路面试下来的面试官都很厉害,问的各种问题他们都已经有了解决方案。内心最想去他家,犹豫了很久,最后考虑签证安全性没接,结果没过一个月它家融完新一轮了,感觉错失了一个亿。 也许过一两年稳定以后会回去吧。

Microsoft, 12/7:
      Azure的OS组,onsite时碰到了西雅图的晴天,看到了雪山。M家一路面试的体验都很好,不管是面试官还是面试的安排。它家有很多优秀的senior,很想和他们共事。 待遇上也还算比较慷慨,虽然在西雅图税什么的更低,但还是蛮干脆地match了O家湾区包。最后综合考虑了一下,还是接他家了。

Pony.AI, 12/12:
      楼教主的自动驾驶公司,最近挺火的,融资顺,给钱也确实大方,office在Fremont,生活成本应该也算湾区低的。但一路面下来发现公司里基本都是top coder, 没有很多自动驾驶需要的细分领域的专家,个人觉得前景不是很明朗。不过他家题目是真的狂野,对得起ACM培训班的称号。

Amazon, 1/29:
      投得最早的亚麻12月底才开始发OA。考虑到不需要去onsite,只要面三轮video onsite,就面了一下。结果behaviral question占了面试三分之一的时间, 有一种价值观比技术重要的感觉。亚麻发展还是很快的,要是能提一下广大SDE I 和 SDE II的待遇和福利就好了。

tickets
上学期的机票,超过了前20年的总和