Coding 面试练习:边写边讲
在编辑器里解真实的题目,Vera 在一旁听,请你说出思路和复杂度,并追问边界情况。45 分钟后,你会拿到一份报告,为每项能力打分,并引用你说过的话。
Vera 用英文面试你,就像你正在准备的美国面试一样。注册、应用和报告也都是英文的。
- 45 分钟
- Regular 级别两道,Lead 级别一道、挖得更深
- 最多三次小提示
- Python、Java、Go、C++ 或 TypeScript
这一轮怎么进行
- 01
思路
澄清题意,在动手之前说出你的思路和复杂度。如果说的是暴力解法,你会被反问一句:能做得更好吗?
- 02
实现
一边写代码一边讲。Vera 大部分时间保持安静,只有在你长时间不说话或明显卡住时才会提示。
- 03
测试和 follow-up
用一个例子走一遍,说出边界情况,给出时间和空间复杂度,然后回答一道 follow-up。Lead 级别的面试中,Vera 还会问放到生产环境会有什么变化。
报告评哪些方面
每项能力都会对照你所在级别的标准线打 1 到 5 分,并附上评分所依据的原话和你说出它们的时间。报告最后会给出下一步最该改的一件事。
- 解题能力 Problem solving
- 代码质量与正确性 Code quality and correctness
- 复杂度与优化 Complexity and optimization
- 测试与边界情况 Testing and edge cases
- 沟通 Communication
Lead 级别还会评: 生产环境思维(Production thinking)。
真实面试中这一轮怎么进行
现场 coding 面试通常持续 45 到 60 分钟,围绕一到两道题展开:澄清题意并想好思路,一边写代码一边讲解,测试代码,然后讨论复杂度和一道 follow-up。我们读过的指南都认为评分看四个方面,只是叫法不同:沟通、解题能力、代码质量和测试。它们最常提到的失误是:没想好思路就开始写、闷头写不说话,以及没测试就说代码写完了。
阅读完整指南(英文)Regular 和 Lead 级别
- Regular
- 两道题。标准线是:能跑通的解法、正确的复杂度、清晰的沟通和合理的测试。拿到提示后能调整过来,也会计入评价。
- Lead
- 一道题,做得更深:代码跑通后会有更难的变体,还有生产环境相关的问题:扩展、并发、故障和可观测性。
时长:两个级别都是 45 分钟。
在各个岗位中
- 软件工程(英文)
Coding。现场解算法题,同时讲清你的思路。
- 数据科学(英文)
SQL 和 pandas。写 SQL 和 pandas,用数据回答产品问题。
- 机器学习(英文)
机器学习 coding。从零实现机器学习的基本组件和数据处理代码。
- 量化开发(C++)(英文)
Coding(性能)。数据结构和算法,侧重性能和内存。
开始之前,先看看反馈
由真实报告流程生成的完整报告,学生是虚构的,面试是按脚本进行的。
常见问题
面试中可以运行代码吗?
可以。编辑器会用题目的示例运行你的代码,Vera 也能看到结果。Vera 不会帮你修 bug:准备好被问你原本预期的是什么,以及某个用例为什么失败。
写代码时必须一直说话吗?
是的,这一轮练的就是这个。真正的 coding 面试评的是你怎么思考,所以动手前先说思路,并把主要决策讲出来。如果你很长时间不说话,Vera 会请你把思路讲一讲。
卡住了怎么办?
直接说出来,或者请求提示。Vera 会给一个指向下一步的小提示,一轮最多三次,而且绝不直接给答案。
应该选哪种语言?
选你最熟练的。软件工程面试可以用 Python、Java、Go、C++ 或 TypeScript。数据科学的 coding 是 SQL 和 pandas,量化方向用 C++。