OA——online accessment,就是给你发线上测试题目,国内又叫笔试。这一般是你投递简历后的第一步,注意如果你刚投递就收到OA,那很可能是白嫖OA,意味着你暂时还没有通过简历关,但是依旧需要你完成OA他们才会看你简历。但是大厂一般都是过了简历关后才发的OA,某些公司比如23年的Databricks是不需要你做OA就会直接联系你的。
电面/店面——phone interview,实际上并不是指“通过电话面试”,一般是指单独的一轮coding面试,可以是通过线上会议,也可以是通过电话。我强烈建议是争取线上会议的形式,信道更加清晰噪声更少。比如Google的面试默认是通过电话进行的,如果面试的时候听不清面试官在说什么,但是你完全可以和hr要求通过google meet进行面试。
VO——virtual onsite,在疫情前,公司往往在你通过电面后会邀请你去公司现场进行面试,他们会负责报销你的差旅费,这一面试往往要占用半天时间,候选人会被连续安排好几轮面试,有和电面非常类似的Coding,也有BQ或者System Design一类的面试,这样的集中在半天时间里的几轮面试被称为onsite。疫情后基本是通过线上进行的,所以称为virtual onsite,好处是没有到现场那么麻烦,坏处是少了实地考察的机会以及少了很多swag(实际上HRT等公司会把swag邮寄到你家hiahiahia他们家的hoodie我蛮喜欢的)。
一场VO往往由几场Coding穿插其他一些BQ、System Design类型的面试,会因为所属公司的不同以及岗位的不同有所调整,以我23年的部分面试经历举例:
Databricks SWE VO: Coding-Coding-BQ-System Design
HRT Algo SWE VO (day 1 out of 2): Coding-System Design-Debugging
Pinterest MLE VO: ML-Coding-ML-Coding
(不同的面试轮次用"-"隔开)
主要注意的是,实习基本不面VO——即便面也是以Coding为主(比如C3.ai这类公司的SWE intern)。NewGrad的话,大厂也基本只专注在Coding上,比如23年Google的是2轮Coding1轮BQ,亚麻的话由于我当时因为OA做的比较好,只有一场电面并且这场电面只是个OA review(基本等于白送一个NG的offer,不过这也是往年亚麻的风格了),面试官的原话是“我们只是想确定这个OA是你自己做的”。
BQ——behavioral questions,是公司通过问你一些行为问题来考察你的行为准则是否符合公司的文化和气质。回答BQ需要你根据自身的经历提前准备一些语料,同时对公司有一定的了解——最好根据对方的公司文化调整你自己的回答。BQ可以是一轮单独的面试,可以是店面开头的几句寒暄,最特殊的情况下,也可以是OA的一部分——亚麻的OA2考察了他们的14条军规以及沃尔玛等一些公司也会在OA里加入BQ。
如果一个人想通过mock练习BQ,可以就参考亚麻的BQ面经,量多并且全面。
反向BQ/reverse BQ,指的是每轮面试末尾面试官会给你个机会问他们问题,实际上你也就只能问一两个问题,而且经常有一套固定模版:比如问对方组的工作文化/他入职以来做过的project/当初为什么选择加入这家公司之类的,这是一个套取信息同时展示对对方公司兴趣的机会。
System Design,一般是给你一个业务场景/use case,让你写伪代码/通过高层次讨论来设计一个系统应付这些场景,面试官会在这个过程中考察你对相关知识的熟悉和了解程度。面试内容往往和你投递的jd业务内容有直接联系。同样的,实习基本不面System Design。大厂NG我也没有听说过有单独面System Design的轮次的。
准备System Design,对一般SWE而言,最常见的资料是ddia,其次有些学校的课程也能在一定程度上帮助储备相关知识,比如CMU的分布式系统。多插一嘴,DDIA这本书去年实习的时候我的host就突脸强势安利了这本书,结果我当时更担心自己的简历关就忽略了,导致我秋招基本在靠CMU的分布式面系统设计,当事人现在就是非常后悔。
Mock Interview——模拟面试,并不是面试流程里的一轮,它是指两个人一个人扮演面试官另一个人扮演候选人进行模拟面试。一般是朋友之间互相帮忙,当然有些学校的一些课程(如CMU Coding Bootcamp)以及就业指导中心会做模拟面试。
Mock的重点并不仅仅是为了让你掌握面试的英语,更重要的是因为很多公司的面试非常重视面试过程中候选人的沟通——可以想象一下你要一边写代码一边嘴里不停地给对方解释你在做什么。这种沟通最理想的效果是:从面试官的视角,你确实在解释你的思路, 并且说的东西是有意义的;从你的角度,你只是在无意识地自言自语,嘴上解释的东西并没有耗费你太多的脑细胞。