Meta对coding的要求到了新的高度,New Grad真的要被逼疯了
Meta's Coding Requirements Have Reached New Heights
Meta对coding的要求到了新的高度,New Grad真的要被逼疯了
说实话,最近几年Meta的bar真的是越来越高了,尤其是coding这块,简直到了令人发指的地步。想当年我刚来美国读研的时候,感觉刷刷题,背背面经,Technical Round努努力还是能过的。那时候的Algorithm题,大多是LC medium难度的,运气好还能碰到easy。System Design也主要考一些基础概念,对于New Grad来说,基本上就是个加分项,能聊聊high level的架构,知道怎么scale,怎么用cache,就差不多了。甚至有些面试官,根本不问System Design。我记得我师兄那会儿,准备了三个月,刷了300道题,也就拿下了。那时候的Meta,给人的感觉还是“move fast and break things”,对New Grad的coding能力虽然有要求,但更多是看潜力。只要你的Data Structure和Algorithm基础扎实,能把思路讲清楚,代码写的bug free,基本上问题不大。面试氛围也相对轻松,面试官还会跟你开开玩笑,引导你一下,感觉更像是一次技术交流,而不是一场冰冷的考验。
但现在,时代变了,真的变了。属于是内卷出了新高度。我最近跟一个刚拿到Meta New Grad Offer的朋友聊,他跟我疯狂吐槽,说现在的面试,感觉就是地狱难度,每一轮都是在鬼门关走一遭。他说他面完感觉自己半条命都没了。以前那种你好我好大家好的面试氛围已经一去不复返了,现在面试官个个都像压力怪,全程poker face,让你感觉自己就是个菜鸡。问的问题也是一个比一个刁钻,恨不得把你祖宗十八代都问出来。整个过程就是高强度的智力压榨,让人喘不过气。朋友说他面完第一轮就想放弃了,感觉自己被掏空,但为了不辜负这么多年的努力,只能硬着头皮继续。
先说Algorithm吧。现在基本都是LC hard起步,而且不是原题,都是变体,甚至是好几个知识点的结合。你光会背思路,根本没用,面试官会追着你问各种edge case,让你现场优化,时间复杂度和空间复杂度都得分析得明明白白。我朋友说他碰到一道题,表面上是graph,但实际上需要用dynamic programming来优化,他当时就懵了,想了半天才理清思路。还有一轮,面试官直接让他写一个支持并发的in-memory file system,他当场就傻眼了,这哪是New Grad该面的题啊,这都快赶上Senior甚至Staff的难度了。他说他当时真的想当场放弃,但还是硬着头皮,把自己知道的都说了出来,从concurrency control聊到file system的底层实现,从lock-free data structure聊到memory management,最后勉强过关。真的太难了,踩过坑的人都知道,这种临场发挥有多考验人的心态和知识储备。而且45分钟的时间,光是理解题意就要花不少时间,留给你coding和debug的时间非常有限,压力山大。很多时候,你刚有点思路,时间就过去一半了,那种紧迫感真的能把人逼疯。
然后是System Design,这块现在对于New Grad来说,已经不是加分项,而是必考项了,而且难度和深度都大大增加。不再是以前那种画画框框,聊聊组件就完事儿了。面试官会给你一个非常具体的场景,比如设计一个类似Instagram的feed ranking system,或者一个real-time bidding system,甚至是广告系统的CTR预估模型。你需要从头到尾,把整个系统设计出来,包括API design,data model,service partition,还有各种trade-off的分析。我朋友说,他面是的时候,被问到了如何处理hotspot issue,如何保证data consistency,还有如何做A/B Test来验证新的ranking algorithm。这些问题,如果没有实际的Internship经验,或者做过相关的项目,真的很难回答得好。懂的都懂,理论和实践的差距有多大。面试官还会challenge你的每一个设计决策,让你给出充分的理由。比如你用SQL还是NoSQL,为什么?你用microservices还是monolith,为什么?你用什么load balancing策略,为什么?每一个问题都可能成为你的送命题。感觉就是在逼着你承认自己是个菜鸡,真的让人很frustrated。而且面试官还会根据你的回答,不断深入追问,直到问到你知识的边界为止,那种被刨根问底的感觉,真的让人无地自容。
更夸张的是,现在Meta的面试,越来越看重所谓的“signal”。也就是说,你需要在面试的45分钟内,尽可能多地展示你的技术深度和广度。光把题做出来,已经不够了。你需要在解题的过程中,展现出你的思考过程,你的coding style,你对细节的关注。我朋友说,他有一个同学,Algorithm题做出来了,但因为代码写的有点乱,变量命名也不规范,最后还是被拒了。Meta现在想要的,是那种来了就能干活,甚至能drive a project的工程师,而不是还需要手把手教的New Grad。这对于我们这些刚毕业的留学生来说,压力真的太大了。我们不仅要和美国本地的学生竞争,还要和来自世界各地的顶尖人才竞争,真的绷不住了。有时候刷小红书看到别人轻松上岸,真的会怀疑人生,是不是自己太菜了。但后来想想,每个人都有自己的时区,不必焦虑。
我听完他的吐槽,真的感觉有点窒息。我们这些在美国读CS的,本来以为找工作会相对容易一些,毕竟这边机会多。但现在看来,大厂的门槛,真的是越来越高了。尤其是像Meta这种级别的公司,对于coding的要求,已经到了一个令人发指的地步。我们除了刷题,还得疯狂找实习,做项目,学各种新技术,比如Machine Learning,Deep Learning,才能勉强跟上节奏。有时候真的觉得很累,但又没办法,谁让咱们想留下来呢。有时候刷小红书看到别人轻松上岸,真的会怀疑人生,是不是自己太菜了。但后来想想,每个人都有自己的时区,不必焦虑。而且,找工作这事儿,真的有点玄学,有时候就是看缘分。所以,大家也别太往心里去,尽力就好。
不过,吐槽归吐槽,日子还得过,工作还得找。既然Meta的要求这么高,那我们就只能想办法去达到它的要求。下面是我根据我朋友的经验,以及我自己的观察,总结的一些建议清单,希望能帮到正在求职路上的你:
-
Algorithm刷题要精要深:不要再盲目追求数量了,质量比数量更重要。LC hard的题目,一定要多练,尤其是那些经典的题型,比如dynamic programming,graph,tree,backtracking。刷完题之后,一定要自己总结,形成自己的知识体系。可以按照tag来刷,每个tag下的经典题目都要吃透。另外,一定要多参加weekly contest,锻炼自己的临场反应和解题速度。
-
System Design要系统学习和实践:不要零散地看一些面经,要去系统地学习System Design的知识。强力推荐Grokking the System Design Interview这个课程,还有Alex Xu的《System Design Interview》这本书,堪称圣经。同时,要多看一些大公司的tech blog,比如Meta Engineering, Netflix TechBlog, Uber Engineering Blog,了解它们在实际中是怎么解决问题的。最好能自己动手,设计一两个完整的系统,比如一个短链接服务,一个简单的社交网络,这样才能有更深的理解。
-
项目经历要真实、有深度、有亮点:不要为了做项目而做项目,要去做一些自己真正感兴趣,并且有技术深度的项目。一个高质量的Internship,或者一个能体现你技术实力的个人项目,远比一堆简单的course project要有用。在项目中,要多思考,多总结,能把你在项目中遇到的挑战,以及你是如何解决的,清晰地讲出来。最好能有一些可以量化的成果,比如你优化的API让latency降低了多少,你做的feature给产品带来了多少DAU增长。
-
模拟面试要常态化,越多越好:一定要多做mock interview!找同学,找朋友,或者去一些平台,比如Pramp,interviewing.io,进行模拟面试。在模拟面试中,要像对待真实面试一样,认真准备,认真对待。通过模拟面试,你可以发现自己的不足,锻炼自己的沟通能力和临场应变能力。最好能找到在FLAG工作的朋友帮你mock,他们的feedback会非常宝贵。
-
Behavioral Question要精心准备,讲好你的故事:不要以为BQ不重要,很多时候,BQ不过,Technical Round再好也没用。要提前准备好自己的故事,用STAR框架,把自己的经历包装好。要展现出你的passion,你的ownership,你的teamwork精神。这些soft skills,在大厂的面试中,同样非常重要。可以多看看YouTube上那些career coach的视频,学习一下怎么讲故事。
-
保持积极心态,建立支持系统:找工作是一个漫长的过程,会遇到很多挫折和失败。一定要保持积极的心态,不要因为一两次的失败就否定自己。相信自己,坚持下去,总会找到适合自己的机会。真的,心态别崩。可以多和同学朋友交流,互相鼓励,互相支持。找工作不是一个人的战斗,有一个support system非常重要。
#美国求职 #留学生找工作 #Meta #Facebook #面试经验 #coding #Algorithm #SystemDesign #求职 #北美求职
