今年被layoff了两次,所以心中深知今年找工作的艰辛与不易。在最后紧要关头非常非常幸运签了Meta。在这里分享一些我的面试体会,希望可以帮助到在寒冬中还在努力找工作的每一个人。
首先,心态
有很多朋友替我打抱不平过,他们说:为什么是你?我也在一亩三分地看到过一些帖子在分析什么样的人会被layoff。我自己则没有花一秒钟在思考这个问题,因为我相信自己不是因为工作能力被layoff的,从manager给我的反馈我知道自己表现的很好。第二次layoff更是一整个组被解散了,就更不可能是能力的问题。我不是表现最好的那个人,但是我也不差。最后,根据控制二分法,人不应该花任何时间在自己不能控制的事情上面。在这一点上面我觉得自己做的很好,希望你也是。
刷题
1. 刷什么题:面经,Leetcode Tag题目
Leetcode Tag我觉得挺准的,我把Meta,Doordash和Tiktok近6个月的题目都刷了,如果时间多可以都刷,如果时间紧我感觉可以刷高频前30题
如果你没有任何面试,我觉得可以刷https://www.techinterviewhandbook.org/grind75 来作为一个开始,我年初面Apple的时候很多里面的题目。
另外这里一个小tip:我觉得Tiktok喜欢问topological sort,我被问过两次.--
. ----
2. 算法题面试技巧
我Meta的电面自己感觉不是特别好,但是recruiter给了我feedback,对我之后的面试帮助很大,面试,不仅仅是把题目做出来而已,你要知道在考什么,学会踩点,下面是我总结的几个重点
系统设计
1. 学习资料. Χ
我其实觉得市面上没有什么好的系统设计资料,我能找到的最好的就是Alex Xu的两本书,DDIA我也买了和看了,但是我只有1个多月找工作的时间,真的没时间把DDIA看完,如果大家时间有限的话,我感觉把Alex Xu第一本,加上第二本的1,2,6,7,11钻研透了我感觉也够了。在这里我想强调,也是我刚开始面试的时候犯的错误。就是不是把书看完,把 Alex Xu写的每一句话看懂就意味着你的系统设计准备好了。你要做的是,搞清楚要面试的公司用的是什么画图工具,(大多数是https://excalidraw.com/ 和Google draw) 然后在这两个软件上面熟练地练习+mock至少10个系统设计的题目。
2. 面试技巧
我有个自己总结出来的大概流程,在这里分享了,不过仅代表我个人观点.
Questions: Main feature/requirements of the system? Scale of the system ?Do we need to store data?
Functional Requirements. From 1point 3acres bbs
Non-functional requirements
Estimations
Session2
Protocol: HTTP ? WebSocket?
API Design
DB/Storage Selection
DB schema
Session3
Session4
Discussion:
Tradeoff
Scale the system ..
Fault tolerant/handler
我感觉要搞清楚每个系统设计题目的自己的独特考点,比如,Newsfeed就一定会问push还是pull model。Chat service的关键是websocket的使用等等。
Behavior Question
BQ非常非常重要,也极其容易被人忽视,但是我感觉准备1-2天就够了,下面是我总结的问题列表,一定要建一个文档,把所有这些问题的答案按照STAR-L原则写下来,所谓STAR原则,即Situation(情景)、Task(任务)、Action(行动)和Result(结果)以及Learn(你从中学习到了什么)
时间分配
人总是倾向做容易的事情。
相对于刷题,系统设计和BQ准备起来都不是那么容易,我自己在初期就是感觉马上就要面系统设计了,我还没准备好。
我建议按照2:2:1:1的时间来准备面试,比如刷1个小时的算法题目,准备1个小时系统设计,然后半小时BQ,休息半小时。这样一天学习12个小时,可以准备4轮。
我所有面过的公司(10月中旬到12月初)
列在这里,说明这些公司应该还是招人的
TikTok.
Chime
Notable
Captions
Doordash. Χ
Meta
Axon
Nordstrom.
Upstart
Nuro
希望这篇帖子对找工作的你有些许帮助,祝大家新年快乐。