如何找到心仪的工作

好久没有写过博客了。回首自己过去的三年,感觉就像过得那么快,走了好远,感觉也应该回过头看看来时的路,也好整理心情,收拾包袱,轻装上路。网上看过很多人写的面经,感觉自己也获益不少,这篇文章就当是作为一个面经,希望能对正在找工作的码农同行们有些帮助吧。我根据这些经验拿到了每个参加onsite面试的公司的offer,而我深深的觉得,这种经验可以帮助到其他人,因为我可以拿到,别人就应该也可以拿得到。评论里有朋友指出题目叫做“我的面试经历”更好,这个建议很好,而我个人觉得,这样有点限制本文的读者和格局,所以还是不改标题了,因为目的是为了让找工作的朋友们能得到一些启发和帮助,要是有那么一点点帮助,也算功德一件。


我博士毕业的时候,因为种种原因,并没有花过什么时间准备面试,顺顺当当的就加入了Bing的团队,当时也面试了,不过估计因为是MSRA的长期intern,多少熟悉公司的技术,产品背景以及团队,面的就很顺利,印象中是周五左右面试,面完第二个周一就给了offer了。当时刚毕业,也不知道argue钱和股票,别人说多少就是多少,当然就更不知道competitive offer了,所以拿了之后就准备回老家去跟女朋友结婚,办签证,顺便回去吃喝玩乐。当时也去过百度群面过,面试时那叫一个人山人海,然后当时给offer的lead之前也在msra实习过,所以也算顺利。在面试百度和bing的中间,面了一下Google,当时人年轻气盛,基本上是去裸面的,可惜了当时好朋友的推荐,结果第一面就被刷了。不过后来因为拿了bing的offer,所以心里也没在意。到了bing之后,加油工作,老板也是非常照顾,每年都给升级,所以两年下来就升上了senior,也算在团队里面有点小名气,跟同事合作也很开心。这三年,可能因为心思单纯,做事情简单粗暴,被人挖坑被人拍砖也就呵呵过去,失败了转天重头来过,因此做的事情很多,做的多也就出货的多,基本上老板说什么讨论什么,过几天就能拿个执行方案出来,好多时候,用心把看起来简简单单平常的事当个重要的事做,所以状态很好,很有passion,走的也艰难,但是走的也远。读者可能会问,这跟你的标题没关系吧,其实工作的事,无非就是干活出货,找到这个状态很重要,有这个状态,就算现在的工作不是你心仪的工作,你也应该会找到心仪的工作的。


我自问不是一个聪明的人,读书的时候,认识很多牛人,能发表很多文章,我一年最多也就一两篇文章。但是我自问自己,还算一个能干活的人,虽然数学不是很好,但具体解决问题的时候,还是能很快找到一些简单直接的方法拿出手,至少不会拖拖拉拉,解决不了也直接报告,所以在工业界发展,应该还算够用。至多就是我多走些弯路,别人一眼能看到的解决方案,因为不够聪明,我可能多试几次,遍历几种不同算法思路,多跑几个实验,或者多去跟人讨论,多请教前辈高人。我不敢说自己多牛,但凭经验,在工作中遇到的大多数人,应该跟我属于差不多的水平,所以其实能不能出货,活干的好不好,就看你是不是用心去做了,用力去试了。但凡你尽心尽力,就算失败,一者可能是运气不好,二者可能是问题太难,三者可能是项目配置不佳,总之,不会再是你的原因,你也不会说,这事我本可以做得到,你的上级下级同级,也不会责难于你。而人生路上,最难得的事情就是被自己感动,做好了自己,其他的事情,你也无法改变,所以你大可放宽心,不必介怀。读者可能还会问,这跟你找到心仪工作有关系么?你咋不讲讲面试题目,面试经验,公司取舍,尽扯这些谁都知道的人生道理干啥。朋友,请你相信我,我已经把我觉得最重要的经验方法,放在上面两段话里了,而接下来,只是给你举个我自己切身的例子,让你知道为什么我认为是这样的,为什么我认为这个是重要的,为什么你可以凭借努力工作,踏踏实实,努力用心的做好眼前的事情,来找到你理想的工作。


其实我在Bing做的很顺,如果我继续做下去,应该还会升级,还会有更大的影响力吧。Bing作为业界代表,微软作为老牌IT巨头,确实有很多牛人,能学习到很多东西。但是我为什么会想换工作,想换个环境呢。其实是有很多原因综合在一起,具体我就不透露了,不然估计我也会被跨省,而且这些个人原因跟这篇文章的宗旨没什么大的关系。但有一点我不得不说的就是,其实在硅谷这个地方,人员流动性很大,所以换工作也不是什么稀奇事情,因为大家都有选择的权利,而且这种人员流动也会给公司带来新的活力,所以不算坏事。另外一点就是,我总感觉,有些人,这辈子注定要在一起工作一下,虽然现在或者暂时不会,但是如果彼此英雄相惜,彼此坦诚以待,就像我和当年一起实习的小伙伴一样,那么或早或晚,都会有机会的。这就像一些网络游戏里面的召唤技能,有一天,你会被召唤。这种感觉非常奇特,就像你之前做的事情就是为了准备做这件事一样。


因为一位大师兄换工作,我才从他那里知道,原来,准备面试,是要去刷题的。当时刷题的时候,碰巧之前的mentor也在准备面试,而他说了一句让我记忆犹新的话,如果你题都不刷,别人凭什么招你呢。我个人觉得,刷题的本质其实是为了系统地强化一些专业知识,而且这类专业知识在面试中经常被用到。对于码农而言,这些刷题类的网站,比如leetcode,topcoder,geeksforgeeks之类的,其实在各大公司给你的邮件里面,有时也会提及,因为人家也不想你因为题做不出来挂了,你也不舒服。HR招到人也有绩效,所以他们也会尽力帮你。很多人说过一句话,去面试,刷题不是万能的,但不刷题是万万不能的。我想补充一下,高强度的刷题,挑战自己极限的刷题,增长自己解题能力和速度的刷题,才是必须的。而只是从头到尾懒懒散散的做,就像你工作一样,不用心不用力,那也是万万不能的,就算你面上了,你想在职业生涯中绽放辉煌,站在同级的肩膀上爬上去,那也是万万不行的。当然,富二代在自己家的公司打工的就不必再看了,你不属于本文的读者对象。


在大约两个多月的时间里,我刷了leetcode三百五十多个题,当然这个题目量还在增加,而说不定一年后变成500都有可能。当然,题目是做不完的,为了面试成功,还是尽可能多做一些的好。在这期间,我买了个大白板,大约就是一米二乘一米左右吧,然后买了十几只水笔,就天天在白板上做题,做完抄在网站上提交。这个我觉得也很重要,这是为了让你更加真实模拟面试场景,而真正的面试,很多家都是白板做题。我刚开始做的时候,上面标注为hard的题,基本上是做不出来,想半天想不明白的。后来做的多了,慢慢速度就起来了。一个提升速度的方法,就是给自己一个时间限制,比如20分钟,做不出来就看看答案,就看5分钟,然后自己想,把题在白板上做出来。面试题都是人设计出来的,大多是有些模板可循,所以刷多了,就有了经验,就像打游戏打多了就有经验是一样的。题做多了,就能归纳总结出一些经验,比如动态规划的类型,比如字符串匹配之类的类型,比如数组链表哈希表类型,比如矩阵操作类型,比如二进制类型,比如排序类型,比如回溯问题类型,比如各种二叉树前缀树等等。而这些,在付费模式下,leetcode都会给你展示出来,所以,不是我打广告啊,付二十块钱leetcode一个月的用户,你可以做题的时候看看题目的tag之类的,也可以帮你加快刷题速度。而且你会掌握一些新技能,比如这个tag类型你不熟悉,那你把similar problem都做一下看看。要知道,你付20块钱,可以给你带来的收益实在太大,比如微软的offer,所以不必吝啬。当然,另一方面,系统设计类型的题目,也是可以看看,具体的网站可以在Google或者Bing上搜索。多看一些,对自己提升认识也是有好处的。但是这类题目太看个人经历了,不是很容易系统的准备和复习。只能是多看多想多接触吧。


值得一提的是,我开始准备面试时,我的女儿才一个多月,现在女儿四个多月,这三个月,我除了每天给她洗个澡,基本上都是老婆和我妈妈在带孩子,洗衣服做饭,为了让我准备更加充分,她们做出了很多努力。有时候想想,就算为了她们,我也要努力的去搏一把。现在回过头来看,我基本上已经尽了全力,而且目前看结果也还可以。


下面谈谈具体的面试经历。我一共申请了7个公司,按照首字母顺序:Apple,Facebook,Google,LinkedIn,Pinterest,Twitter,Uber。可能有人会问我,你面试的安排是如何的,这个说太具体就没啥意思了,但有一点可以肯定的就是,你非常想去的,就安排在后面,而另外,我个人觉得,最想去的未必要最后,因为人的精力有限,面到一定程度,就会疲累,这时候也需要调整心态。还有一点就是,刚开始可能需要一点热身,就像踢足球比赛一样,一个球队踢了一两场可能才会有感觉。面试的这些公司,也遇到过一些奇葩情况,比如有个公司非要联机写程序,我写好了面试官还惊讶为啥这么快,感觉好像他从没见过这么几行就能做出来的一样,然后给的电脑打开了谁都不知道密码,要视频面试结果会议室摄像头坏了,就这样我还是拿到了他家的offer,想想都觉得有点好笑。另外就是,出门遇贵人太重要的了,因为圈子不大,所以基本上很多时候会遇到或多或少有相似经验的面试官,这时候你应该可以看得出别人是不是愿意帮助你,如果面试官一脸热情那么估计好事将近了,如果面试官与你有相似背景但是绷着脸,这时候要谨小慎微一些。大多数面试官都是好人,不会故意黑你,但是感觉如果遇到黑手,就是说不是你做不出题,或者是故意刁难你的时候,明明很简单的东西却总是问你为什么或者表示听不懂的时候,就要及时跟HR联系沟通,不要等别人结果出来再argue,那时可能就迟了,等下次面试就是半年一年之后了。有朋友关心我面的结果如何,我运气比较好,上面这几家公司的offer都拿到了。


而除了刷题,你面试时候,最重要,或者对你面试结果有着决定性因素的就是,你的个人经历。具体的问题就是,你做过些什么,你有些什么最厉害的项目,有些什么指标可以衡量你做得好不好,你解决过最难的问题是什么,你遇到过什么样的人为难你而你是如何解决的,项目失败了是为什么,成功了是为什么,你为什么要换工作,或者你为什么要选择我们公司。如果两位候选人的程序写的差不多,都刷了题,都做出来了,那么如果作为决策者,这些信息就会成为给不给offer的关键因素,因为从他讲他过去做得好不好,有没有热情,有没有解决过难题,有没有带过人之类的,就基本知道是一个什么水平了。甚至,如果一个面试官不让你过(因为题没做出来或者聊的不开心),而其他都让你过,而且你的个人经历很好的话,应该也不是大问题。最希望的情况是,面试官或者面试经理非常看好你的个人经历,觉得你可以成为组里面的一个新活力,又或者你有潜力提升整个团队的平均水平,那么恭喜你,应该也是好事不远。因为说穿了,面试就是招人干活,你能干能出货,谁都会招你,而决策者最希望看到的候选人,是高于团队平均水平的人,因为这样的人才会帮助他完成自己的业绩,才能帮助团队成长。如果你已经是大牛了,其实这篇文章对你没用了,而如果你恰好还在成为大牛的路上,当然,我也在路上,但我个人的经验告诉我,要找到满意工作,要做的事情就是努力用心的做好本职工作。你是在读书就好好念,多发文章,你是在工作就好好干,多升两级。一旦别人问你,你最自豪的项目是什么,你会毫不犹豫的说得出口,你不会一问三不知,而这种自信和努力,就将成为你往后的谈资,也会成让你非常有成就感。


其实我现在想起来,自己在面试准备和面试过程中,还有很多内心戏,只不过写起来比较矫情,比如开车到旧金山市区面试的路上,遇到堵车,听着歌差点哭了,不是因为堵车要哭了,而是因为想起自己过世不久外婆,同时自己也有点被自己感动了。在刷题的过程中,写满了几大本草稿,写完了十几只笔,中间有几次差点崩溃了,因为有些题确实有点偏想不出来,感觉自己快没戏了,而且白天还要上班,压力实在很大。如此种种的事情,每天内心都在上演。我也不知道自己怎么过来的,只是咬紧牙关,拼了吧。感觉做就要做到底,要准备就好好准备,以后也好给自己一个交代。


看到这里的朋友,谢谢你,因为已经写完了,如果你直接看的结尾而你在考虑找工作的话,那么其实上面的文字更有信息。


最后,祝愿所有找工作的同行们,可以找到心仪的工作!




你可能感兴趣的:(找工作,工作,面试)