面试官:“你嘴还没合上,答案就念完了?” 候选人:“……” 面试官:“下次找个口型同步好点的 AI。”

32 阅读5分钟

最近鸭鸭在脉脉看到一条讨论度极高的帖子

file_1776652695477_753

去年底开始,一款叫 Interview Coder 的工具就在硅谷小圈子里疯狂流传。开发者是哥伦比亚大学的学生 Roy Lee,工具能在远程面试中实时识别题目、调用大模型生成代码答案,并且自动隐藏窗口绕过 Zoom、Google Meet 的屏幕共享监控。Roy Lee 自己就靠这套工具,先后拿下了亚马逊、Meta、TikTok 的实习 offer。后来事情曝光,他被退学,但他没停下来——直接拿这套工具创业,年入百万美元。

而国内这边,脉脉上聊的就是同样的剧本:提前把候选人的声音克隆进 AI,让 AI 实时和面试官对话,候选人在镜头前装样子,故意挡嘴、摆角度、调暗灯光,算法题、系统设计题、八股文,AI 全部对答如流。

这件事已经不是个别现象。谷歌 CEO 皮查伊在 2 月内部会议上明确讨论是否恢复线下面试;亚马逊要求候选人在面试前签署承诺,不使用任何未经授权的工具;Anthropic、德勤同样要求线下化或 AI 使用声明。面试官们也开始训练新的“反作弊技巧”,比如看候选人眼神是否频繁瞟向屏幕一侧、看眼镜反射里有没有屏幕内容、听回答是不是太流畅像排练过、注意有没有“嗯”“啊”这种正常思考时的停顿。

说白了,整个互联网行业的面试方式,正在被一小部分作弊者强行倒退回 10 年前。

鸭鸭想说一句不太招人喜欢的话——任何想靠 AI 替你面试的人,在拿到 offer 之后,都会面对真正残酷的考验:上岗后写不出代码、扛不住排查、抗不了高压、过不了试用期。而且在背调越来越严的今天,一旦在面试环节被识别出作弊,不光这家公司直接挂你,还可能被拉进行业灰名单,下一次背调时,这条记录可能直接断送下家 offer,严重的甚至涉及合同欺诈、保密协议等法律问题。

image-20260420103803189

也就是说,作弊的“短期收益”是几个 offer,“长期成本”可能是整个职业生涯。

其实 AI 在求职这件事上的真正用法,从来不是让它替你面试,而是让它帮你练面试。比如让 AI 给你解释算法题的思路、变种、复杂度对比,而不是让它替你写;拿 AI 模拟面试官追问,把每个八股知识点都问到底;让 AI 帮你打磨简历表达、提炼亮点、补足业务理解;用 AI 给自己出场景题、系统设计题,反复练表达。这才是 AI 时代正确的求职打开方式——不是替你过面试,而是替你打基础。

如果你也在准备面试,比起想着怎么绕过面试官,鸭鸭更建议你扎扎实实把题刷好、把项目讲清楚、把方法论沉淀下来。

毕竟,offer 真正发到你手上的那一刻,是你一个人去上班,不是 AI agent。

……

今天鸭鸭和大家分享一道 后端场景题面试题。

【让你设计一个 RPC 框架,怎么设计? 】

回答重点

RPC 框架核心就这么几点:

  1. 动态代理,屏蔽底层调用细节
  2. 序列化,网络数据传输需要扁平的二进制数据
  3. 协议,规定好协议格式才能正确解析数据
  4. 网络传输,I/O 模型相关,一般用 Netty 作为底层通信框架

以上是 RPC 框架的基础能力。

生产级别的框架还需要注册中心做服务发现,还得提供路由分组、负载均衡、异常重试、限流熔断等能力。

说到这就可以停一下,等面试官继续深挖,见招拆招。

扩展知识

下面我们来深入剖析下 RPC,从根上理解它。

RPC 全称是 Remote Procedure Call ,即远程过程调用,其对应的是我们的本地调用。

远程其实指的就是需要网络通信,可以理解为调用远程机器上的方法。

那可能有人说:我用 HTTP 调用不就是远程调用了,那不也叫 RPC 了?

不是的,RPC 的目的是:让我们调用远程方法像调用本地方法一样无差别。

来看下代码就很清晰,比如本来没有拆分服务都是本地调用的时候方法是这样写的:

public String getSth(String str) {
     return yesService.get(str);
}

如果 yesSerivce 被拆分出去,此时需要远程调用了,如果用 HTTP 方式,可能就是:

public String getSth(String str) {
    RequestParam param = new RequestParam();
    ......
    return HttpClient.get(url, param,.....);
}

此时需要关心远程服务的地址,还需要组装请求等等,而如果采用 RPC 调用那就是:

    public String getSth(String str) {
        // 看起来和之前调用没差?哈哈没唬你,
        // 具体的实现已经搬到另一个服务上了,这里只有接口。
        // 看完下面就知道了。
         return yesService.get(str);  
    }

所以说 RPC 其实就是用来屏蔽远程调用网络相关的细节,使得远程调用和本地调用使用一致,让开发的效率更高。

在了解了 RPC 的作用之后,我们来看看 RPC 调用需要经历哪些步骤。

篇幅有限,更多 场景 相关面试题可以进入面试鸭(mianshiya.com)进行查阅