[CMU小记]谈谈找工作(全职)

去年(2017年暂且称去年吧,反正2019刚开始)3月份,拿到CMU offer的场景还历历在目,这会儿都已经毕业了,同时也结束了为期4个月(最后一个学期)的找工作经历。短短的四个月,心态起起伏伏,从刚开始的没面试机会,到陆陆续续的机会,到面试机会多的想推掉一些面试,到纠结选offer。有颇多的想法还未来得及记录。趁这段时间记录一下。

概述

由于之前在LeetCode工作,同时也觉得算法题还挺有趣的,经常时不时地做做题保持手感(不光做Leetcode,偶尔还做做ACM赛题拓宽下思路),所以虽然不是算法竞赛出身,但刚来CMU的时候就已经有了足以应付大部分北美公司面试的水平。所以这篇文章不讲怎么刷题,就是记录下这四个月的经历以及找工作流程中的感受。

整个找工作期间,我大概投了30多家公司的40多个岗位。因为投的多怕自己忘了,还专门弄了一张excel表格记录每个公司的进程。总的感觉是,获得一个面试机会真的不容易,投了这么多公司一共只拿到了7个面试机会。后面因为拿了一些offer,就结束了继续投简历的过程。我觉得要是继续投,可以拿到更多的机会,不过这个通过简历的概率可能差不了太多。值得一提的是我之前有三年工作经历,找工作的时候机会比没经验的同学多(7/30就已经算是多的了,可以想象同学们的处境,有些同学投了一圈都没什么面试机会,心态都快崩了,也挺替他们着急的)。

这四个月中我大致给分成了四个阶段 海投, 逐个进入流程, 飞来飞去, 选offer

海投

我是在8月13日开始投的第一家公司,也就是第三个学期结束之后,算是比较晚的了,因为事后发现有些公司都已经没有head count了。刚开始的时候还不以为然,有点小实力外加有三年工作经验(国内顶着腾讯光环,体会过找工作的时候被“跪舔”的感觉),觉得找工作肯定没有问题的,各大公司不得跪舔我?结果我跪舔了3个月,直到最后一个月选offer的时候。

投了一个月,才有一家小公司的hr联系我。期间所有的大公司,不是没有反应,就是简历拒。慢慢地就感觉找工作没我想得那么容易。于是就不断地投了更多的公司。感觉焦虑了,就去一亩三分地里找几个内推,就能稍微缓解下焦虑。这个阶段最困扰的是没有面试机会。会做题有经验但是没有用武之地就很难受。

9月25日到27日三天是学校的career fair,有好多公司来站台。可以拿着自己的简历去推销自己。人山人海,平均一个队伍要排将近1个小时。所以一天下来,也就能投出去四五封简历。期间投了不少公司,不过大部分公司都是没有回音的,我也不知道挂在哪里。有好几个公司聊的时候感觉很不错也没有下文。整个3天career fair我只获得了一个面试机会(阿里巴巴)。

关于面试机会有以下几点体会:

  1. 谷歌是常年有面试机会的,不需要太早投,自己觉得OK了再投也行,可以当做最后冲刺。并且他家题目是比较难的,需要比较多的时间准备。
  2. 亚马逊也是基本投了就有面试机会,但可能在旺季流程很慢,有可能投了好几个月后才会有消息(也有很快的),建议早投。同时亚麻的面试算法题普遍LeetCode easy水平,不需要过多准备,甚至网上都能找到他家题库。不过他家可能需要多准备一些behavior questions,需要事先好好想想。如果他家消息快,能在找工作早期就拿了他家的offer,后面就非常舒服了,想去大厂的同学可以推掉好多不必要的面试,专心准备自己的dream company。
  3. Facebook。他家的entry-level fulltime主要是intern转正,而且转正率还挺高的。所以如果找实习进去的话,那就很棒了,而且实习面试大部分大厂只需要2轮电面,FLAG面一圈进的概率很大。当然如果项目里没有实习的话就比较麻烦了,他家留给非转正的head count很少,所以需要抓紧headcount开放的窗口期,过了这个村就没了这个店了。在我之前投的同学基本都获得了面试机会,但在我之后投的同学基本都被简历拒了,所以抓住时机非常重要。
  4. 很多公司我投的时候都没有new grad head count了,比如linkedin, vmware, bloomberg等。这些公司一旦没有了head count,不管你再牛,都不会有面试机会。校招对于公司来说只是完成任务,并不care你有多牛,只要符合公司要求,通过面试就行,所以有时候会有“怎么谁谁谁都进了,我连面试机会都没有”的情况。除非你是那种牛到震天响的人,或者是通过公司高管内推。当然,社招的head count大部分公司常年都有,所以我之前才说有工作经验会多很多机会,可以同时投校招和社招,而且社招的工资普遍高一点。
  5. 内推比海投有用。海投基本没有反应的。反正我周围就听说过一个同学海投最后拿了offer的。找内推的话就发挥自己的人脉,或者在一亩三分地里找愿意帮忙的同学吧。
  6. 最重要的一点是,不要等到自己准备好了才去投简历。很多时候“准备好了”就是自欺欺人,等到准备差不多的时候,又会觉得还能准备的更好。面试机会是最重要的,身边有不少同学觉得自己还没准备好,等想要(不得不)投的时候收到的都是一封封拒信(没有head count了,大家都是挤破头找工作,公司哪有时间等你这么久,招满人就收工)。而且大公司普遍流程比较慢,从投了,到OA,到电面,到onsite,整个流程可能有好几个月,中间有的是时间准备。

逐个进入流程

虽然Career Fair没有得到什么面试机会,不过之前投的好多公司陆陆续续有回音了。有些公司发来了OA,有些公司约了电面。9月底收到了Facebook的电面邀请,距离投简历过去了将近2个月。这段时间慢慢地就少了对面试机会的担忧。

同时,阿里巴巴的整个面试感觉还不错,HR跟我说招我的团队特别希望我能加入,要走阿里星的面试流程,给了我很大的信心,有种受宠若惊的感觉。本科毕业的时候觉得阿里星都是远在天边的大神级人物,没想到我竟然也有机会去挑战阿里星(回过头来想想,我这三年的工作经历,不说有多么牛,确实还挺独特和亮眼的)。想想阿里星在国内的待遇,忍不住想入非非了一段时间。最后阿里交叉面我的两个面试官也是大有来头,都是领域内的大神,百度百科有条目的那种(具体是谁我就不透露了)。面试的时候跟他们讨论了1个半小时的系统架构和一些设计的理念,自我感觉还不错,只是没想到最后挂了。看来我还是没有到阿里星的水平吧。

后来我投的第一家小公司进入onsite流程,Facebook也过了电面要去onsite,Google跳过了电面也约了onsite的时间。慢慢地,我感觉第一个offer在向我招手。到了onsite的时候,已经十月底和十一月了。

飞来飞去

整个找工作期间,我一共去了三个公司的onsite,一共飞了2次,我把两个公司的行程安排在了一起。这期间也有一些体会。

  1. 如果想要避免舟车劳顿的话,可以把面试的时间还排在一趟行程里面,可以避免来回飞多次。跟公司HR沟通一般都会答应的。而且不需要跟HR解释为什么你只需要单程的机票,HR工作这么久了应该都懂的吧。有个同学把四个公司的onsite安排在一周,周日去,周五回,一天面一家。虽然连续4天可能有点累,但不需要飞4次还是很好的。
  2. 很多公司一般会默认订面完当天回去的机票,如果飞机要从西海岸飞到东海岸的话,回到家就要凌晨了,又累又不安全。可以跟HR要求再过一夜,大部分公司都会同意的。
  3. 这边的onsite面试轮数每个公司不一样,但都是好几轮连着的,除了吃午饭中间没有任何休息时间,这对体力和脑力是一个考验。还记得在面谷歌的时候,最后两轮我都有气无力了,脑子有种罢工的感觉。我就要求坐下来和面试官聊。
  4. 白板上写代码需要练好,写得整洁很重要。和面试官的communication也很重要,做的每一步都要争取面试官的理解和同意,问清他的需求,不然你噼里啪啦写了一堆东西,面试官都不知道你在干嘛,就基本要挂了。比如一道题bfs和dfs都可以,你跟他先讲好,问他我要实现哪一个,不然你实现了bfs他要你dfs就尴尬了,浪费了时间又降低了印象分。
  5. 调整心态,小公司的面试结果因为我不是很在意,面试的过程很放松。但是面试Facebook和Google的时候,感觉像在打仗一样,紧张了一整天。时刻集中着注意力,生怕自己说错一句话,漏了一个edge case。在意了,所以放不下,面完的瞬间,感觉整个人都被掏空了一样,脑袋突然有种眩晕感。其实要是没那么紧张的话,可能表现的会更好一点,也不至于面完被掏空。就像面小公司的时候,面完我还很精力充沛。
  6. 某一轮面的不好没有关系,考虑当下,不要因此心态崩了。我谷歌第二轮面的很差,follow up完全没写出来,就连idea都没整理出来,后面20分钟一点进展都没有。当时就感觉完了,因为谷歌面试很严格,一般一轮不好其它轮要非常好才行。不过这个反而减轻了我一点压力,下午的三轮面试没有上午那么紧张了,脑袋里想着就是做好当下的题目。下午有2轮我感觉面的特别好,有可能因此弥补了我的第二轮。

选offer

我的第一个offer来自于那个小公司,也就是我进入流程最早的那个公司。因为我之前就没怎么打算去,抱着练练手的心态去面的,所以收到offer的时候并没有特别激动。类似于,“哦,好的”。

11月6日,我还记得那个傍晚,让我肩上的担子减轻一半的那封邮件来自于Facebook。由于是我特别想去的两个公司之一,所以我感觉整个人都轻松了。虽然最后去了Google,但是那是这四个月让我最如释重负的消息。从开始投,到拿到offer,花了整整3个月的时间。

自从拿了F家的offer,我整个人都懒了,还有种想推了Google面试的想法,浪了整整一周,飞来飞去面试好累啊。鉴于Google是dream company,而且我是面的社招岗位,有可能提供更高的职级和待遇,我还是坚持了下来,我的谷歌onsite在11月19日。

延Facebook Offer: 由于Facebook的deadline是11月27日。Google的面试结果没有那么快出来,我需要跟HR沟通延长deadline。其实我在11月27之前就已经知道过了Google的HC,但是为了以防万一,我还是想等到正式的offer下来再做决定。跟HR沟通的每封邮件我都写了1个小时,字字较真,怕说错话了他一怒之下收回offer(是我想多了,除非你说错话很严重,才有可能被收回,毕竟HR招你已经在你身上倾注了很多精力,他收回的话还要从头来过)。虽然延长的要求他都答应了,但是我一共跟他沟通了三次延长时间,一共多给了我三天。沟通一次给一天,真是挤牙膏。最后在11月30日,谷歌的正式offer终于下来了。

Compete Offer:
在F结果出来后,由于F家的面试个人感觉确实无可挑剔,我在没有任何其它offer的情况下尝试要求涨package被通过了,涨了很多的签字费。其实因为我有3年多的经验,我个人的预期是能拿到比毕业生高一级的职级待遇,毕竟阿里都考虑我阿里星呢,虽然没过,可惜Facebook的硬规定是工作经验少于5年的硕士,统一按毕业生处理(极端情况下有些人比本科毕业生多吃了6年米,拿到的package却跟本科生一样,这也太不合理了)。所以这个F的offer,我能拿到的package,已经是接近这个level的上限,没有多少空间可谈了。所以后面我就也没找F的HR谈package。

遗憾的是G最终定级没能定到T4,也是只给了毕业生的level T3。由于我提供了F的offer,G家给的只是刚好比F高一点,而且刚开始他竟然还给的比F低一点,在我的要求下,才涨的超过了一点点,想想这也太贱了。

值得一提的是,F家的HR看我一直在犹豫,主动给我又涨了签字费,10万美元。签字就白送10万美元啊,这个诱惑确实很大。

在Compete Offer阶段,我做的很不好,一些总结写在这个章节的下面。

Offer比较
这两家公司在我心里的地位差不多,给的package也差不多,所以特别纠结。虽然两家的offer中间只交叉了一天,但我一周前就知道过了G的HC(过了HC基本offer就没跑了,很少会有飞了的),所以我在offer下来的那天,就已经考虑了好几天了。真的是每一天都有一个不同的决定。今天决定接了Facebook,感觉Google也挺好的,有点可惜。明天决定接了谷歌,感觉Facebook也挺好的,有点可惜。纠结到我想投硬币了。

最后选择Google的一些核心想法是:

  1. 谷歌成为女神已经好久了,Facebook是新女神,我还是选择遵从初心。
  2. Work life balance(wlb)。虽然这个要看组,累的公司也有不累的组,不累的公司也有累的组,但是毕竟公司大环境摆在那里,在这点上肯定谷歌要更好一点,毕竟风评也是这样的。我也在想我才26岁,为啥就考虑养老模式了。经历过国内BAT的加班文化,深知wlb的重要性,所以一步一步慢慢来,沉淀自己的心态和技术,享受生活,可能更好一点。
  3. 其实就公司的文化和活力而言,可能我过去的习惯还是更适合Facebook一点,因为我向来是拍脑袋就干的类型,而且Facebook升职也快。不过,我一直觉得拍脑袋就干的做法不够沉稳(吐槽自己很久了),对于一个想成为架构师的人来说,做事前必要的权衡和足够的思考是非常重要的,所以我也一直想改这个习惯。因此我就没有选择Facebook。

一些经验总结:

  1. 延Offer或者谈package需要表达对公司的兴趣。HR帮你和他的manager沟通,帮你拿到更多的利益的前提是你还想加入这家公司。如果在沟通的过程中,他看不到你对公司的兴趣,他可能会觉得你不是真心的,只是想拿一个大的package去compete别家(虽然可能是这样没错,但也不要让他看出来),否则他会拒绝帮你去争取,甚至撤回offer也是有可能的。
  2. 不同公司的面试,最好安排好时间,这样如果都过了的话,同时可以手握多个offer来回沟通。很有可能一个大包就这样在不断沟通中出来了。这点我就做的不够好,F和G两家的时间只有重合了1天,思考的时间都很紧迫,导致自己纠结了好久。
  3. 到最后一天再签,无论你手中有没有别的offer,一定要拖到最后一天,别因为dream company给了一个offer,马上就从了。跪舔的心态是你还没有他家offer的时候,一旦他们决定要你了,就反过来了,公司就要跪舔你了,好不容易花了这么多钱找了一个合适的candidate,他是想让你签了的,他非常害怕你签了别家。就拿我的Facebook为例,最后两天HR见我还是不签,主动给我涨签字费。而且在等的过程中,可能还会发生一些别的事来影响你的决定,等的越久对自己越有利。记得这个时候,主动权是在你的手里。
  4. 在跟HR沟通的过程中,不要让他知道过多信息,信息越不对称(你知道他不知道),对你越有利。这点我也做的很差,谷歌HR问我F家的package,我竟然傻乎乎地告诉他了。如果我不跟他说,根据我的经验背景,他们给我开的package说不定比现在还高。毕竟我现在只是比应届生高一点点而已(甚至有一部分应届生比我高)。而且公司给你开了个package,HR告诉你的时候,问你感觉怎么样,不要表现得过于开心(就算开心,心里窃喜就好了),这样他会觉得你不是一个普通的package就能打发的人,有可能会帮你争取更大的package。
  5. 谷歌的package浮动空间很大(体现在股票上),而且跟面试结果是分开的。一旦过了HC,说明面试通过了。在谈package的过程中,你的面试feedback,不如一个competing offer管用。我见过T3的工程师拿了4年30多万股票的,就是通过competing offer垒上去的,也见过T4的工程师只有4年10万股票的。所以如果想进Google,同时又不想被lowball,最好面他家之前找一个大价码的competing offer,大概率是会被匹配的。

总结

这四个月找工作的心态和expectation起伏很蛮大,从头到尾不知道该把自己定位在哪里。找工作之前我是想找SDE II的岗位的。后来投了一个月简历,只有一家小公司的面试,慢慢地,我怕找不到工作,降低了expectation,觉得找到个湾区大厂的工作就好,也不在乎职级了。当真的有了offer,而且签了后,我发现其实我的能力完全可以找到大package的T4或者SDE II,因为身边有不少和我差不多经验的,找到了别的大公司的的SDE II,不止一个人,很多还不止一个SDE II的offer。(哎,最初我就是这么觉得的,心态波动大了,没有坚持住自己最开始的定位)。

找工作的这四个月,我都因为焦虑犯了胃病,消化不良嗳气又没有胃口,前后轻了10斤。去校医院几次也没查出个所以然来,医生简单开的药也没有效果,看着一天天轻的体重,都不知道该怎么办。短时间体重下降这么多我都怀疑是不是别的毛病,更加加重了焦虑。一边担心找工作,一边又要担心自己的身体,一边还要每天继续课业和刷题。可能也是因为这个,我没能坚持住最开始的定位。

好在工作定下来后的一个月,胃自己就慢慢地好了,也没吃药,体重也反弹了6斤多,也算是舒了一口气,想想找工作的岁月,好不容易。最终7个面试机会放弃了2家小公司,挂了1家(阿里巴巴北美,国人何必要伤害国人),其它的都拿到了offer,其中包括 F L AG 中的三个。自认为我是属于实力和运气都比较好的那一类(虽然没有SDE II吧,但是今年的形式确实比去年好,也算是幸运的了),尚且找工作的过程都这么艰辛(主要还是自己心态不好,焦虑症,所以感觉累),在美国读书找工作的朋友们,大家都不容易啊。

也特别感谢这半年来内推我的各路朋友,认识的不认识的,谢谢了。