narrative · 面试题库

转岗叙事与反问

目录 · 8 题

#问题标记
1为什么从前端转 AI 全栈🔴
2你的 AI 项目具体你做了什么,哪部分是你独立完成的🔴
3前端背景在这个岗位是优势还是短板🔴
4后端和 AI 都不是你的主线,凭什么认为你能补上🔴
5讲一个你做过的最难的技术决策🟡
6你怎么跟上 AI 领域的变化🟡
7面试结尾你反问什么🔴
8薪资和 offer 怎么谈

题目与答案

1.为什么从前端转 AI 全栈 🔴

展开答案

这题筛的是动机的方向:你是被什么东西推走的,还是被什么东西吸过来的。逃离型动机意味着下一个方向卷起来你还会走,面试官算的是招你的沉没成本。

两句会直接失分的话

  • 「前端太卷了,想换个方向」——表达的是逃离。而且它暗示你评估行业靠情绪,不靠事实。面试官接下来会怀疑你对 AI 的判断同样是听来的。
  • 「我觉得 AI 是风口 / 未来是 AI 的时代」——这是新闻标题,不是理由,任何人都能说。说完这句你和一个没写过一行 AI 代码的候选人在这一题上得分相同。

失分不在于这两句话本身有多离谱,而在于它们没有信息量——面试官从中提取不出任何关于你的事实,只能转去追问技术,你这一题就白答了。

能用的结构:从做过的事推出来的动机

三步,每步都要落在一件具体的事上(下面括号里的都换成你自己项目里的事,不要照抄):

  1. 起点是一个具体需求:你在前端接过的某个 AI 相关的活。(例如你实际做过的流式输出接入、把模型结果渲染成可交互的界面、给团队做的某个内部工具)
  2. 那件事让你撞到了前端解决不了的问题:输出内容本身不对、检索回来的片段不相关、首字延迟太久、成本超预算。这些改前端一行代码都解决不了——这一步是全题的转折点,它证明你的动机来自真实的技术障碍,不是来自行业新闻。
  3. 你为了解决它往下走了一层:具体读了什么、动手改了什么、结果怎样。然后是结论句:这一层的问题我更想解决,而且我发现自己已经在做这一层的事了。

第 2 步是可信度的来源。面试官听到「我发现改 prompt 治不了根,得看检索这一段」时,判断已经变了——因为这句话只有真做过 RAG 排查的人说得出来,参见 04-ai.md 第 9 题。

两个一致性检查,做完再进面试

  • 时间线:你说「大概半年前开始往这个方向走」,简历上那个 AI 项目的起止时间要对得上。对不上会被当成临时编的动机。
  • 和第 3 题不重复:这题回答「为什么走过来」,第 3 题回答「走过来带了什么」。很多人在第 1 题就把前端优势全讲了,到第 3 题只能重复,显得准备只有一层。

追问「那你为什么不继续做前端,把 AI 交互这块做深?留在前端也能做」:这个追问几乎必来,而且它不是反驳,是在验证你第 2 步说的是真话。答法是承认前提再划边界:AI 交互确实值得做深,而且我打算继续做(这里举你真实做过的那件事);但我在做的时候发现界面能改善的是用户对不确定性的容忍度,改善不了答案对不对——流式和骨架屏能把等待做得不焦虑,参见 01-frontend.md 第 18 题,但检索召回不够、上下文放错、失败没兜底,界面救不回来。我想能对这两层同时负责。答不出这个区分的人,会被判定第 2 步是编的。

2.你的 AI 项目具体你做了什么,哪部分是你独立完成的 🔴

展开答案

全文最重要的一题。面试官用它做一次二分:你是调了个 API,还是做了工程。判断方式不是听你用了什么框架,是听你有没有处理过失败、有没有量过效果、有没有算过成本——README 里写的那三样。

「调了个 API」在回答里长什么样

  • 通篇是技术名词罗列:用了 LangChain、接了向量库、做了 RAG。名词是免费的,谁都能说。
  • 讲的全是主路径:用户提问 → 检索 → 拼 prompt → 返回。没有一句在讲这条路径断掉的时候会发生什么。
  • 效果用形容词:效果不错、用户反馈挺好、准确率挺高。形容词是这一题最大的失分源。

用具体事实替代形容词的三个替换

想说的 会被追问到崩的说法 换成
效果好 「回答准确率挺高」 「我攒了 N 条 case 做 eval 集,改动前后跑同一批对比,某一类问题从 X 条错降到 Y 条」(N/X/Y 填你真实的数)
稳定 「上线后挺稳定」 「工具调用失败做了区分:可重试的退避重试 K 次,不可重试的直接返回降级话术,没有让模型自己反复试」
优化过 「做了性能优化」 「首字延迟从 A 秒降到 B 秒,手段是某个具体改动;单次请求成本 C 分,靠某个具体手段降到 D 分」

右边这一列的共同点是有数、有手段、有对比基线。没有基线的数字也会被追问穿——「降到 1.2 秒」,那之前是多少、怎么量的、量的是 P50 还是 P99。

怎么划清「我做的」和「团队做的」

用三段式,而且主动说,不要等面试官问:

  1. 我负责的:端到端我一个人写完、出问题我背的部分。这里可以详细讲。
  2. 我参与的:我写了一部分、方案是和谁一起定的。明确说「这块的检索策略是我和后端同学一起定的,索引和数据同步是他写的,我写的是查询侧和结果处理」这种粒度。
  3. 我没做但知道的:模型微调、基础设施、数据管道是别人做的,但我知道它大致怎么运作、为什么这么选。

第 3 段是加分项而不是减分项——它证明你有系统全貌,而且证明前两段的边界是真的。全部往自己身上揽的人,反而没有一段可信。

为什么虚报独立性一定会在追问里暴露

因为真做过的人身上带着决策的副产品,虚报的人只有结论。面试官不需要问「真的是你做的吗」,只要问三个技术性问题就能分开:

  • 「当时为什么选这个方案,还考虑过什么」——真做过的人有被否掉的备选方案和否掉的理由;只听过转述的人只有最终方案。
  • 「这个数是怎么测的」——真做过的人知道测量口径(样本量、P50/P99、是不是同一批数据);虚报的人给的数字整齐得可疑,而且说不出怎么来的。
  • 「上线之后出过什么问题」——这个最致命。任何真上过线的东西都出过问题,一个都想不起来,说明你没值过这个班。

崩的那一句通常不是「我独立完成」,而是紧接的那句「具体细节我记不太清了」。它和前一句连起来的含义是:你没做过,而且刚才那句是编的。这个印象会污染整场面试。

追问「这个项目里,如果只保留一个你的贡献,你会保留哪个,为什么」:这是在测你的自我评估准不准,也在最后一次验真。答法不是挑最难的,是挑去掉之后系统就不可用的那个,并说清判据。比如「保留失败处理那块:模型和检索都会偶发失败,没有降级链路的话用户看到的是转圈或者报错,这个是能不能上线的分界;而 rerank 那类是效果好坏的分界,去掉产品还能用」。这个回答顺带展示了你区分「可用性」和「效果」的能力,参见 04-ai.md 第 15 题和第 24 题。挑不出来、或者答「都很重要」的,判定为对自己的工作没有排序能力。

3.前端背景在这个岗位是优势还是短板 🔴

展开答案

标准答案是「优势」,但说「优势」不得分,得分的是你能说出对方缺的具体是哪一块,而且那块正好是你能做的

抽象化是这题唯一的失分方式

「我有产品思维」「我更懂用户」「我能站在用户角度想问题」——这三句面试官一天听八遍,而且无法验证。说完之后你和任何一个前端候选人不可区分,这一题等于没答。

四个可以点名的具体缺口

AI 团队普遍缺人做、而且做出来普遍难看的东西,按可信度从高到低:

  1. 流式渲染做对:不只是接上 SSE 显示字,是中断、重试、断线续传、Markdown 边流边渲染不闪、代码块半截时怎么处理、自动滚底和用户上滑怎么共存。这些每一条都是坑,后端同学接完 SSE 就以为做完了。细节在 01-frontend.md 第 13-16 题。
  2. TTFT 的用户感知:后端优化的是接口耗时,前端知道的是用户感知的等待和实际耗时不是一条曲线——首字出来之后用户的等待容忍度会变,所以宁可先出一个字也不要整段返回。这句话说出来,懂的人会立刻认可,因为这是他们量不出来但吃过亏的东西。参见 01-frontend.md 第 18 题。
  3. 评估平台的界面:eval 集要人看、badcase 要人标、A/B 结果要人比。这部分现在大多是 Jupyter notebook 加 print,或者一个没人愿意用的 Streamlit 页面。一个能横向 diff 两个版本输出、能一键标注、能按错误类型筛的界面,直接决定评估这件事在团队里做不做得起来。参见 04-ai.md 第 20 题。
  4. 人工标注工具:同上,标注效率低到没人愿意标,eval 集就永远攒不起来。

前两条证明你在 AI 产品的用户侧有别人没有的手感,后两条更狠——它们是AI 团队的内部生产力工具,直接影响迭代速度,而且没人愿意做。

话术结构:三句,别多

第一句给判断,第二句给对方缺口的证据,第三句落到你能做什么:

「优势,但不是『我懂用户』这种笼统的优势。(第一句) 我看过的 AI 产品里,模型侧做得不错、界面上的问题挺集中:流式一断就整段重来、Markdown 边流边渲染在代码块那里闪、评估基本靠脚本跑完看日志。(第二句,把你真实观察到的填进去) 这几块我做过/能直接做,而且我知道它们不是锦上添花——评估工具做不好,团队就没法量化改动效果,改 prompt 只能靠感觉。(第三句)」

关键是第三句要把界面工作接到工程后果上(评估做不起来 → 改动无法量化),不要停在「体验更好」。停在体验的人被归类为「前端」,接到工程后果的人被归类为「能把 AI 做成产品的人」。

短板要主动说一句

这题不要只讲优势。承认一句「后端的分布式和数据库调优我不如专职后端,这是我在补的部分」,然后立刻转到第 4 题的证据链。主动认边界比被问出来强很多,而且它让前面的「优势」听起来是判断而不是自夸。

追问「你说评估平台的界面重要,那你会怎么设计这个界面」:这是把叙事拉回技术的追问,也是这一题的兑现时刻——夸完自己能做,就得当场做得出来。给三个必备视图:单条对比(同一条输入,两个版本的输出并排 diff,检索到的片段可展开,标注按钮就在旁边)、批量结果(按错误类型分组的失败列表,能筛能排序,点进去回到单条)、版本对比(两次 eval 跑的总体指标加上逐条涨跌,重点是把「哪些条从对变错」单独列出来——总体分数没变但错的换了一批,这是最容易漏掉的回归)。再补一句数据侧要求:每条记录要能追到当次调用的完整上下文,否则界面上看到错了也没法查,这一条对应 04-ai.md 第 3 题。答不出具体视图的人,前面那段「我能做评估平台」会被当成话术。

4.后端和 AI 都不是你的主线,凭什么认为你能补上 🔴

展开答案

这题的敌意是真实的,别当成客套。部门负责人在算一件事:招你之后需要多少人多久带你上手。所以你要给的不是态度,是证据。

「我学习能力强」为什么零分

它是自评,不是证据。所有候选人都会说,包括那些确实学不动的。同一类零分表达还有:我很有热情、我下班都在学、我上手很快。这些句子的信息量是零,因为它们不可验证也不可否证——面试官既不能确认也不能反驳,只能忽略。

判据很简单:一句话如果没法被追问出更多事实,它就是零分的。「我学习能力强」追问不出东西;「我用 K 天从零把某个东西做到能跑,代码在这儿」追问得出一串东西。

证据链的四个环节

按顺序讲,每一环都要落地:

  1. 我做了什么 —— 具体的东西,有边界。不是「学了 RAG」,是「自己搭了一套检索问答,语料是某个具体的东西,分块和检索策略试了几种」。
  2. 产出在哪 —— 能被看见的东西:仓库、部署地址、内部文档、demo。这一环是「做了」和「说做了」的分水岭。如果代码不能公开,就准备好口述架构和几个关键决策点,效果差一些但仍然成立。
  3. 怎么被别人用上了 —— 最强的一环。同事在用、团队采纳了你的方案、别人基于它继续做。「有人用」证明的不只是能力,是你产出的东西达到了别人愿意依赖的质量,这是自学和工程的分界。
  4. 踩过什么坑,怎么发现的 —— 这一环是防伪。真做过的人有具体的坑(比如切块切断了表格导致检索不到、隐式类型转换让索引失效),照着教程跑一遍的人只有流程。

怎么把这个题库本身当成证据(用法有讲究)

系统性准备可以当作准备度的证据,但不能作为主证据,否则听起来是「我看了很多资料」。正确用法是当第 4 环的载体:

「补的方式是按这个岗位实际要考的东西列了一份清单,把每一块拆成具体问题逐个过:RAG 排查、评估怎么攒 eval 集、成本和延迟怎么权衡,还有后端的事务、并发、索引。过的过程里发现自己原来判断错的地方,比如我以前以为 structured output 保证 JSON 合法就不用校验了,实际上字段语义还是会错,参见我在这块的记录。」

关键是说出一条你被纠正过的具体认知。它一举证明三件事:你真的过了一遍、你有自我修正能力、你说的其它话大概也是真的。只说「我准备得很系统」不如说这一条被纠正的认知。

后端这块该怎么给边界

不要声称对等。给一个可核查的层次

「专职后端的分布式和调优我不如他们。我能独立做的是:Node 侧的网关和流式转发、Java 的业务层加事务、SQL 能自己看执行计划调慢查询。再往下——比如分库分表方案、大规模缓存一致性设计——我知道选择的依据在哪,但没独立落地过,需要 review。」

三层结构(能独立做 / 知道依据但需 review / 没碰过)比一句「我后端还行」强很多,因为它让面试官能立刻对着自己团队的活匹配你。对应的技术底子在 02-node-java.md 第 10、13、16 题和 03-sql.md 第 3、5 题——说了「能自己看执行计划」,就要真能读出 Using filesort 该怎么处理。

追问「你自己练的东西没经过生产,量级和真实生产差很远,这个差距你怎么看」:不要辩解说「差不多」,这题答「我知道差在哪」比答「差得不多」得分高。差距在三处,主动点出来:一是量级带来的问题不同(自己跑几百条文档不会遇到索引重建、增量同步、并发写冲突)、二是没有真实用户的输入分布(真实用户会问你完全没想到的问题,eval 集靠自己编覆盖不到,参见 04-ai.md 第 20 题)、三是没有值过班(线上半夜出问题的排查压力和成本超支的真实约束,自己练是模拟不出来的)。然后给一句你怎么缩小:把你真实项目里遇到过的线上问题拿出来说。承认这三条的人显得清醒,说「差距不大」的人显得没做过生产。

经历与学习方式(第 5-6 题)

5.讲一个你做过的最难的技术决策 🟡

展开答案

「难」不在技术复杂度,在取舍。面试官要的是:有没有两个都说得通的选项、你依据什么判的、代价你认不认。没有取舍的故事不叫决策,叫任务。

三种会被判失分的选材

  • 实际上没有分叉的事:「我们要做实时通信,我选了 WebSocket」——这不是决策,是唯一解。听完面试官只能换题。
  • 只讲结果好的事:全程顺利、上线大获成功、没有代价。真实决策一定有被牺牲的东西,没有代价说明你没在真实约束下做过选择,或者你不愿意承认。
  • 决策不是你做的:「我们团队决定用 X」——那这题问的是你的领导。要挑你有实际话语权的,哪怕范围很小:一个模块的方案、一次重构的边界、一个第三方库的取舍。范围小不减分,没有决策权才减分

五段结构,卡在哪一段就崩在哪一段

  1. 约束:当时的死条件。时间、人手、已有系统不能改、成本上限、必须兼容什么。这一段决定了后面选择成不成立——没有约束的话,任何选择都显得随意。
  2. 两个方案和各自的代价:都要说得通。如果其中一个明显更差,你的决策就不难。
  3. 判据:你按什么排的优先级。这是全题最关键的一段——判据是可迁移的,故事不是。面试官记住的是「他按能不能回滚来排优先级」这种东西,因为这能预测你在他们团队里怎么选。
  4. 代价与兜底:你放弃了什么,怎么控制它的风险。这一段是可信度来源。
  5. 回头看:如果重来会不会改。这一段是加分段,见下面的追问。

崩得最多的是第 3 段。很多人第 1、2 段讲得很细,到「为什么选 A」时给出「A 更好」「团队更熟悉 A」——「更熟悉」是理由但不是判据,它没有说明在什么维度上更优。判据要长成「在这个场景里,出错的成本比慢一点的成本高,所以我按可回滚性排在性能前面」这样。

AI 相关的取舍最容易讲出判据

如果你有 AI 项目,优先从这几类里挑(都换成你真实做过的):

  • 上不上 Agent:多步自主决策的灵活性 vs 可控性和排查难度。判据是「失败能不能定位到哪一步」,参见 04-ai.md 第 13 题。
  • 效果 vs 延迟和成本:加 rerank、加检索条数、换更大模型都提效果,代价是 TTFT 和单次成本。判据是这个场景里用户等得起多久、这个功能的单次成本上限是多少,参见 04-ai.md 第 24 题。
  • 要不要上语义缓存:省钱和降延迟 vs 命中错的相似问题返回错答案。判据是错误答案的代价大小,参见 04-ai.md 第 25 题。

这三类的共同好处:判据天然是量化的,而且面试官自己每天在做同样的取舍,你的答案立刻可比。

追问「现在回头看,这个决策做对了吗,如果重来你会怎么选」:这题的正确答案通常不是「完全正确」。全对意味着你没从中学到东西,而且听起来不诚实。最好的答法是分开三件事:方向仍然对(在当时的约束下这个选择成立)、执行上有一处会改(具体是哪一处、当时为什么没看到、代价是什么)、判据被修正过(比如「我当时按开发速度排优先级,后来发现在这个场景里可观测性应该排更前面,因为出问题时我们花了三天才定位」)。第三条最值钱——它说明你的决策方式会随经验更新,而不是只积累了一个个案例。回答「重来也一样选」并且给不出任何反思的,会被判定为不复盘。

6.你怎么跟上 AI 领域的变化 🟡

展开答案

这题在筛信息处理方式,不是筛勤奋程度。转岗候选人尤其会被追问这个,因为你的技术判断力还没被岗位验证过,面试官只能从你的信息源和过滤方式来推断。

列清单是最常见的失分方式

「我关注了几个公众号、看 Twitter、逛 HackerNews、订阅了某些 newsletter」——列了一堆但没有一条能证明它改变了你做的任何事。这种回答的问题是它不可区分:一个真正在跟进的人和一个刷信息流的人说出来一模一样。

第二种失分是把「跟上」等于「追新」:每个新模型都试、每个新框架都上手。面试官在生产环境里最怕这种人,因为技术选型的成本主要在维护,不在尝鲜。

答法:三层结构,重点在中间那层

  1. 信息源分层(这层快速带过,一两句就行):官方文档和 changelog 是一手(模型能力和 API 变更只信这个)、少量固定的高质量二手(挑一两个你真在看的说,别列一串)、社区和讨论只当发现渠道,不当结论来源。
  2. 怎么判断值不值得投入(这层是得分点,展开说):你的过滤规则。可以直接给出你的判据——比如「先问它解决的是我遇到过的问题吗,没遇到过就只记一笔不动手」「问它替代的是什么,说不出被替代对象的东西通常是包装」「看它的失败模式有没有被作者讲清楚,只讲能力不讲边界的先放着」。规则可以是你自己的,但必须是能拒绝东西的规则——没有拒绝标准的过滤器不是过滤器。
  3. 验证方式(这层给动作):怎么从「看过」变成「知道」。最小可行验证:拿你已有的 eval 集跑一遍新模型或新方案,用同一批数据比。这句话说出来含金量很高,因为它说明你有基线可比——参见 04-ai.md 第 20、23 题,评估集是判断新东西的地基,没有它「跟上」只能靠感觉。

必须给一个具体例子,否则前面三层全空

准备一个真实的:某个东西你看了之后决定不用,说清为什么;再准备一个:某个东西你看了之后动手验了,说清验证方法和结论。决定不用的那个例子比决定用的更有说服力,因为它证明你的过滤器真的在工作。

用你自己真实的经历填。如果你最近确实没有这样的例子,那在面试前找一件小的做掉,比在现场编一个安全得多——编的会被追问版本号、追问具体行为差异,两句话就穿。

追问「最近半年 AI 工程上有什么变化,是你改了做法的」:这题在验第 3 层是不是真的。要给的是做法的改变,不是新闻。结构:以前我怎么做 → 什么信息让我改 → 现在怎么做 → 怎么确认新做法更好。举例的方向(换成你真实经历过的):以前靠人工看几条输出判断 prompt 改动好不好,现在固定跑 eval 集加人工抽检,因为发现人工看几条会系统性偏向自己想看到的结果;或者以前把检索内容直接拼进 prompt,后来意识到检索内容是数据不是指令,改成了带隔离标记并且不让它触发工具调用,参见 04-ai.md 第 26 题。答不出任何做法改变、只能罗列新模型发布的,判定为在刷信息流而不是在实践。

反问与谈薪(第 7-8 题)

7.面试结尾你反问什么 🔴

展开答案

「暂时没有」是这一题唯一的零分答案,而且它会追溯性地削弱前面的表现——一个真想来的人不可能对未来天天要做的事没有疑问。反问还有一个实用价值:这是你唯一能主动获取信息的窗口,对方答得含糊的地方就是你入职后要面对的地方。

按对象分层,别混着问

问错人比不问更差:向 HR 问技术架构、向技术面试官问薪资结构,都会显得你没搞清对方是谁。

技术面(同级工程师 / 技术负责人)——问具体做法,暴露不了短板还能展示深度

  1. 现在的 AI 功能有没有 eval 集,改 prompt 之后是怎么确认没退化的?
  2. 线上 badcase 的处理链路是什么样的——谁发现、怎么记录、怎么进回归集?
  3. 检索这块目前的召回瓶颈在哪,是分块、embedding 还是 rerank 那一段?
  4. 单次请求的成本和延迟有没有硬指标,超了之后一般怎么权衡?
  5. 前端和模型侧的接口是怎么约定的,流式那一层的错误和中断是谁负责兜的?
  6. 代码 review 和上线流程大概什么样,prompt 改动算不算需要 review 的变更?

这六个每一个都在展示你知道这个岗位的工程难点在哪。第 1、2 条尤其有效——如果对方答「目前主要靠人工看」,你就知道这个团队在评估上是空白,这既是风险也是你的切入点。

部门负责人 —— 问团队结构、优先级和判断标准

  1. 这个岗位是新增还是补位?如果是新增,是因为哪块业务的量上来了?
  2. 团队现在的分工是模型侧和应用侧分开,还是每个人端到端负责一条功能?
  3. 未来半年最想解决的问题是什么,如果只能完成一件是哪件?
  4. 你怎么判断这个岗位上的人做得好不好,三个月和一年分别看什么?
  5. AI 功能的需求是业务方提还是团队自己定,需求被否掉一般是因为什么?
  6. 这块的技术决策权在哪一层——比如换模型、换检索方案,谁拍板?

第 9、10 条最值得问:第 9 条给你入职后的优先级,第 10 条直接问出考核口径。第 12 条能问出你未来的实际自主空间,很多人入职后失望就来自这一点。

HR —— 问流程、稳定性和成长路径,措辞要中性

  1. 团队目前的规模和构成大概是什么样,转岗过来的同事多不多?
  2. 后续还有几轮,大概什么时间给结果?
  3. 这个岗位的成长路径是什么样的,往上是深入技术还是带人?
  4. 试用期的考核标准是怎么定的?

会暴扣分的问法,问题本身合理但措辞踩雷

别这么问 为什么扣分 换成
「加班多吗?」 直接读作「怕干活」,无论答什么你都已经失分 「团队的迭代节奏大概是怎样的,有固定的发布周期吗?」
「离职率高吗?」 暗含你已经在打听团队有问题 「团队目前的构成是什么样的,最近半年有新人加入吗?」
「能不能远程 / 几点下班?」 一面就问是把条件放在工作内容之前 拿到 offer 阶段再问,那时候问是正常尽调
「我表现怎么样?」 把评价权递出去,还会得到一个客套的敷衍答案 「基于刚才聊的,你觉得我在哪块和岗位要求差得最多?」
「你们公司主要做什么业务?」 说明你没做过基本功课,这是最伤的一条 先查清楚,然后问「我看到你们在做 X,这块的 AI 功能是这个团队负责吗?」

最后一行那个换法(「差得最多」)是这一题的高分选项之一:你得到的是真实的短板反馈,而且它表达的是想改进而不是想被夸。

执行细节

  • 现场准备 5-6 个,问 2-3 个就够。多了会挤占时间,而且显得像在念清单。
  • 优先问对方刚才提到过的东西,「你前面说到评估这块目前是人工看,是因为 eval 集还没攒起来吗」比问一个准备好的问题得分高,因为它证明你在听。
  • 不要问已经在 JD 或官网上写清楚的东西。

追问「你问的这些我们大部分还没做,如果你来了要从零开始搭,你会先做什么」:这个反问经常被反手打回来,而且它其实是一道设计题。答法:先说清判据(先做能立刻减少反复劳动的那件,不先做最完备的那件),再给顺序——第一步把线上真实请求的输入输出和检索片段完整记下来(没有数据后面都是空谈,参见 04-ai.md 第 3 题);第二步从这批真实数据里挑出错的、按错误类型分类,攒出第一版 eval 集,几十条就能开始用,不要等完备;第三步做一个能横向对比两版输出的界面,让改动效果可见,这一步正好是我的强项;第四步才是优化检索或 prompt。然后补一句风险认领:这四步里第二步最容易停摆,因为标注要人投时间,所以标注工具的易用性不是可选项。答成「先上一个 rerank 提效果」的人,会被判断为不知道没有基线就没法确认提没提。

8.薪资和 offer 怎么谈

展开答案

这一题标 ⚪ 不是因为不重要,是因为「我想先了解清楚岗位和职责再谈数字」在流程早期是完全合理的回答,不算答不出。真正的错误不是拒答,是在信息不足的时候先把数字说出去。

顺序:什么时候不该报数字

一面 HR 电话里问期望薪资,这时候你手上没有职级、没有薪资结构、没有其它 offer 作为参照,先报的一方吃亏——报低了直接封顶,报高了可能连流程都进不去。这个阶段的答法:

「我对贵司这个岗位挺感兴趣,薪资我希望在了解清楚职级和职责之后再谈。方便的话,这个岗位对应的薪资区间大概是多少?」

把问题递回去是标准动作,不是耍花招——HR 手上本来就有区间。对方给了区间,你就有了锚点;对方不给,你至少知道这家不透明。

被逼报数字时怎么给区间

有些流程必须填一个数才能继续。这时候三条规则:

  1. 报区间,不报单点。单点会被当成上限来砍。
  2. 区间的下限就是你能接受的最低值,不要报一个你其实不接受的下限——对方大概率就按下限给。
  3. 给区间的同时加一句可调条件:「这个区间是基于我对岗位的理解,如果职级或者职责范围和我理解的不同,可以再谈。」这句话保留了你后面调整的空间。

区间怎么定:以你现在的总包(base 加奖金加其它,不是只算月薪)为底,按你的市场判断往上给一个幅度。转岗有一个特殊考虑——你在往一个新方向走,如果这家的技术环境和成长空间确实好,接受一个较小的涨幅是可以的判断,但这必须是你算过之后的选择,不是被压价的结果。区别在于你有没有明确知道自己让了什么、换到了什么。

拿到 offer 之后怎么谈

这是你唯一有真实杠杆的时刻——对方已经决定要你,替换成本在他们那边。

  • 先要完整结构再谈总数:base、月数或年终奖的计算方式、是否有股权或期权(行权价、归属节奏、有没有回购条款)、签字费、补贴、社保公积金基数按什么交。只谈 base 会漏掉很大一块。
  • 一次把要谈的全部提出来,不要谈成一条再提一条。挤牙膏式的反复议价会消耗对方的耐心和好感。
  • 给理由,不要只给要求:理由的合法形式是市场对标、其它 offer、你能立刻承担的额外范围(比如前端加 AI 应用两块你都能接)。「我需要更多钱」不是理由。
  • 有其它 offer 就说,但不要虚构。同城同类岗位很容易被交叉验证,编造被发现是直接出局,而且业内会流传。
  • 谈不动 base 时换维度:签字费、职级、评估周期提前(比如约定半年而不是一年做一次调薪评估)、明确的项目范围。这些有时比 base 好谈,因为不占用团队的薪资带宽。
  • 要求书面:口头承诺的年终奖比例、调薪安排要落进 offer 或邮件。「入职后再说」的口头承诺,兑现率靠不住。

什么情况下该直接走

  • 反复压价并且要求你先放弃其它机会:让你先拒掉别家再谈,这是操纵。
  • 不肯给薪资结构或职级:连结构都不透明的公司,入职后的其它承诺也别期待。
  • 口头承诺不肯写进 offer,尤其是年终奖比例、股权条款、职级。
  • 谈判过程中出现施压话术:「今天不签就给别人了」「我们已经很给你面子了」。这个态度是团队文化的样本,谈判时怎么对你,入职后大概也怎么对你。
  • 算完之后你自己不满意,但在说服自己「先进去再说」:这个念头本身是信号。转岗期尤其危险,因为你会用「我在转型所以要让步」来合理化一切。

转岗定价的一个提醒

不要在薪资问题上替对方论证你该便宜。「我是转岗的,所以我知道薪资会低一些」——这句话不用你说。你带过来的东西是实的(README 那条口径:能把 AI 能力做成用户敢用的产品,这块 AI 团队缺人),把它当成定价依据的一部分,而不是需要打折的原因。

追问「我们能给的比你的期望低一些,你怎么考虑」:不要当场答「可以」,也不要当场答「不行」。当场答「可以」会让对方怀疑还能再压,当场翻脸则关掉了后面的路。答法三步:先确认差距是不是结构性的(「是 base 的差距,还是总包算下来的差距?年终和股权那部分怎么算」——很多所谓的差距在算清结构后就不存在了);再问差距的原因(是职级带宽的硬上限,还是评估里对我某一块能力有保留?如果是后者,那是可以补的信息);最后给条件式回应(「如果 base 上确实有硬上限,那我想谈两件事:一是签字费或者半年后的调薪评估,二是职级」)。然后明确说你需要一两天算一下再答复——正常公司都接受。这个流程展示的是你会在压力下先获取信息再决策,这个印象本身对入职后的位置有好处。