Karat 面试:一张评分表,而不是一场对话

· 7 分钟阅读

第一次经历 Karat 面试会觉得别扭,因为平常那套社交默契不见了。面试官不是你未来的同事,对你要加入的团队没有任何利益关系,也不可能被你的个人魅力说服而放过某个漏洞。他们是受过训练的面试官,代表公司执行一轮标准化面试,全程录像,并在你说话的同时填写评分表。这不是坏事——它比一场对话可预测得多。

这一小时怎么分配

  • 五分钟——自我介绍和流程说明。
  • 约十分钟——你所申报方向的领域知识速问。考事实,节奏快,不是讨论。
  • 四十到四十五分钟——在 Karat 自己的编辑器里共享屏幕实时写代码,通常是一到两道题,每道分成好几问。
  • 五分钟——你提问。

整场录像会交给招聘方,这意味着有两类听众:现场给你打分的面试官,以及事后回看录像的公司里的人。

领域速问不是热身

那段简短的事实性问答最容易让人栽跟头,因为它听起来像寒暄。它是计分的。如果你报的是后端和 Python,那就要准备被问到 GIL、字典怎么处理哈希冲突、数据库索引在写入时的代价是什么。

两三句话答完就停。用四分钟去回答一个三十秒的问题,等于把后面写代码的时间提前花掉了,而且在评分表上会被读作判断不出该答多少。

题目为什么越问越大

Karat 的题通常分三到四问,这种递进是刻意设计的。第一问很舒服。第二问加一个约束。第三问常常直接让你第一问的结构变得不成立——原本的列表现在得换成堆,原本的一次遍历现在需要缓存。

提前知道这件事,会改变你写第一问的方式。写干净、分好函数、变量命名规范,不要把所有东西塞进一个函数里,否则等到时间紧张时你还得把它拆开。你不是靠第一问写得多快拿分的,而是靠第三问来的时候你还能不能动。

把能被记下来的话说出口

面试官是在为一条条具名的能力项记录证据。所谓证据,就是他们能原样引用的句子。三个习惯能产生其中大部分:

  • 不等人问就报复杂度。“这里是 O(n log n),瓶颈在排序,空间 O(n)。”一句话,就填满了评分表的一行。
  • 开头就问约束和边界情况。输入规模、是否有重复、空输入怎么办、数据能不能放进内存。澄清性提问是计分项,不是被容忍的行为。
  • 先把暴力解讲出来,再去优化。“朴素做法是平方级的,我先让它跑通,再砍下来。”就算最后时间不够,你手上也还有能跑的代码和一个说清楚了的计划。

唯一没法打分的就是沉默。一个安静思考六分钟然后写出完美代码的人,几乎没给评分表留下任何可抓的东西。

提前知道这些细节有用

你是在 Karat 的环境里写代码,不是你自己的 IDE,所以没有你习惯的那种自动补全,也没有插件。前一天花十分钟,在一个纯文本编辑器里手写一遍链表和哈希表——这种别扭感不该留到当天才第一次遇到。

你会被要求共享屏幕,而且全程录像。把桌面收拾干净,关掉通知,手边放一杯水:这一小时过得很快,而且无论你有没有把思路讲出声,它都是同样的一小时。

FAQ

Karat 的面试官是我应聘那家公司的人吗?

不是。Karat 用受过训练的面试官代表公司执行技术面试轮次,全程录像,然后把打好分的结果和录像交给招聘团队,由后者做决定。

Karat 面试会录像吗?

会,而且录像会交给招聘公司。默认你说的每句话、屏幕上出现的每样东西,之后都可能被重看一遍。

Karat 面试能用自己的编辑器吗?

不能,你是在 Karat 自己的环境里共享屏幕写代码,所以面试前先在没有常用自动补全和插件的情况下练一次。

最后一问没做完会怎样?

做了一部分并说清楚接下来的计划,是能拿分的。题目分问递进本身就是刻意的,很多通过的候选人并没有做完最后一问——被评的是你怎么推理和调整,而不是每一问是否都能编译通过。

应用在这里如何帮忙

继续阅读