今年春天走完了 Snap 的应届 SWE 流程。说实话,对一个初级岗位来说强度比我预期的大,所以写下来给接下来要去的人。
投递和初筛: 通过校园 portal 投的。大概 2 周后 OA 来了。两道编程题,90 分钟。一道是图 BFS/DFS,另一道是中等难度 DP。没什么离谱的,但也不简单。基本就是 leetcode 的标准难度,中等区间。
recruiter call: 很快的 20 分钟 check-in。问了毕业时间、work auth、偏好团队(infra vs product)。挺友好。
技术电话面试(45 分钟): 一道编程题,共享 IDE。让我实现 rate limiter(先 fixed window,follow-up 要求 sliding window)。没练过这题的话,建议练一下。还问了几个时间和空间复杂度的问题。
线上 onsite(4 小时,4 轮): coding 1:两道中等题,trees + strings coding 2:一道更难的题,带图相关部分 system design lite:他们也承认对新毕业会更轻。我设计了一个简单的 URL shortener。他们更在意你能不能把 trade-off 想清楚,而不是你是否知道“标准答案”。 behavioral:STAR 方法,挺常规。重点在团队合作、如何处理反馈、以及一次你失败了然后学到了什么。
我真心的准备建议: leetcode medium,刷 blind 75,哪怕只在表层也要懂一点 system design 基础(caching、databases、load balancing)。behavioral 准备比大家想的更重要,他们对每个回答都会追问,所以泛泛而谈很快就崩。
从投递到 offer 大概 5 周。他们节奏比我预期慢,考虑到公司体量的话。
还有如果你是 CS 学生:他们看起来更喜欢有实习经历的人,但不是硬性筛选。我那一批里有两个人没有任何实习。