一年被裁2次,12月极限上岸Meta!
欢迎大家点击左下角“阅读原文”到原帖与作者交流讨论哦!
今年被layoff了两次,所以心中深知今年找工作的艰辛与不易。在最后紧要关头非常非常幸运签了Meta。
在这里分享一些我的面试体会,希望可以帮助到在寒冬中还在努力找工作的每一个人。
首先,心态
有很多朋友替我打抱不平过,他们说:为什么是你?
我也在一亩三分地看到过一些帖子在分析什么样的人会被layoff。
我自己则没有花一秒钟在思考这个问题,因为我相信自己不是因为工作能力被layoff的,从manager给我的反馈我知道自己表现的很好。
第二次layoff更是一整个组被解散了,就更不可能是能力的问题。我不是表现最好的那个人,但是我也不差。
最后,根据控制二分法,人不应该花任何时间在自己不能控制的事情上面。在这一点上面我觉得自己做的很好,希望你也是。
刷题
1. 刷什么题:面经,Leetcode Tag题目
有些公司出的都是面经题,比如Chime, 问的都是原题。
Leetcode Tag我觉得挺准的,我把Meta,Doordash和Tiktok近6个月的题目都刷了,如果时间多可以都刷,如果时间紧我感觉可以刷高频前30题
如果你没有任何面试,我觉得可以刷https://www.techinterviewhandbook.org/grind75 来作为一个开始,我年初面Apple的时候很多里面的题目。
另外这里一个小tip:我觉得Tiktok喜欢问topological sort,我被问过两次
2. 算法题面试技巧
我Meta的电面自己感觉不是特别好,但是recruiter给了我feedback,对我之后的面试帮助很大,面试,不仅仅是把题目做出来而已,你要知道在考什么,学会踩点,下面是我总结的几个重点
做题前:问问题:input是否为空呀,integer的正负呀,overflow呀。然后跟面试官沟通自己的解题思路:算法+数据结构,以及为什么要用这个算法和数据结构。
做题时:先处理corner case,很多leetcode的题都有限制条件,比如s != null, 但是面试的时候要么你在做题前搞清楚限制条件,要么在代码里处理好各种corner case
做题后:自己run code + 分析time/space complexity 并且自己写下来,写下来很重要。
努力给出最优解,我感觉几乎所有公司都要求最优解。最优解的思路我感觉有:使用binary search优化时间,很多用stack的题目都可以不用stack之类的,可以多看看leetcode的讨论,如果有比自己解法好的解法,一定要花时间看一看,因为那很有可能就是面试的考点。
系统设计
1. 学习资料
我其实觉得市面上没有什么好的系统设计资料,我能找到的最好的就是Alex Xu的两本书,DDIA我也买了和看了,但是我只有1个多月找工作的时间,真的没时间把DDIA看完,如果大家时间有限的话,我感觉把Alex Xu第一本,加上第二本的1,2,6,7,11钻研透了我感觉也够了。
在这里我想强调,也是我刚开始面试的时候犯的错误。就是不是把书看完,把 Alex Xu写的每一句话看懂就意味着你的系统设计准备好了。你要做的是,搞清楚要面试的公司用的是什么画图工具,(大多数是https://excalidraw.com/ 和Google draw) 然后在这两个软件上面熟练地练习+mock至少10个系统设计的题目。
2. 面试技巧
我有个自己总结出来的大概流程,在这里分享了,不过仅代表我个人观点
Session1
Questions: Main feature/requirements of the system?Scale of the system ?Do we need to store data?
Functional Requirements
Non-functional requirements
Estimations
Session2
Protocol: HTTP ? WebSocket?
API Design
DB/Storage Selection
DB schema
Session3
High Level Design + explain each component
Diagram
Walkthrough
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(你从中学习到了什么)
自我介绍
为什么选择XXX公司:非常非常重要,我就有一次feedback是面试官反馈感觉我并不想去他们公司。
你最骄傲的一个项目
你对下一份工作的期许是什么
你的优点和缺点分别是什么
你的一次错过deadline的经历
你和同事|老板的一次矛盾
你喜欢独自工作还是和大家一起工作
谈及一次你需要做tradeoff的经历
你是怎么学习新的技术的
Customer问到你不懂的问题怎么办
你有什么问题问我?
时间分配
人总是倾向做容易的事情。
相对于刷题,系统设计和BQ准备起来都不是那么容易,我自己在初期就是感觉马上就要面系统设计了,我还没准备好。
我建议按照2:2:1:1的时间来准备面试,比如刷1个小时的算法题目,准备1个小时系统设计,然后半小时BQ,休息半小时。这样一天学习12个小时,可以准备4轮。
我所有面过的公司(10月中旬到12月初)
列在这里,说明这些公司应该还是招人的
TikTok
Chime
Notable
Captions
Doordash
Meta
Axon
Nordstrom
Upstart
Nuro
希望这篇帖子对找工作的你有些许帮助,祝大家新年快乐!
2023年终于过去了!
大家如果还有相关的问题和看法,欢迎点击“阅读原文”到一亩三分地讨论
今日推荐
👍中国美女留学生酒驾被捕,视频曝光!网友吐槽:英语差,说脏话,抽烟...
来源一亩三分地网站等,版权归原作者所有
本文禁止任何形式的转载,请与一亩三分地联系
微信扫码关注该文公众号作者