Initial commit

This commit is contained in:
Z User
2026-06-06 05:21:10 +00:00
Unverified
commit 6664758a6d
493 changed files with 135653 additions and 0 deletions

131
skills/interview-prep/SKILL.md Executable file
View File

@@ -0,0 +1,131 @@
---
name: interview-prep
description: 帮用户准备面试。基于目标 JD、公司、岗位方向生成"高频面试题 + 参考回答 + 行为面 / 技术面 / Case 面分类题库",并产出可打印的『面试备战手册』。当用户说"帮我准备面试""明天有面试 / 后天面试""面试题""面经""模拟面试""我要面 X 公司 Y 岗位""帮我准备 STAR 故事""怎么回答这道面试题""自我介绍 / 离职原因 / 优缺点 怎么答",必须触发本 skill。请勿用本 skill 改简历(去 jd-resume-tailor / resume-builder或推荐方向去 job-intent-tracker
---
# Interview Prep面试准备
干 4 件事:
1. **拆解面试场景**:明确目标公司 / 岗位 / 面试轮次(一面 / 二面 / 终面 / HR 面)
2. **生成题库**:从 4 类题库行为面、技术面、Case 面、岗位特定)中按需取题
3. **生成参考回答**:用 STAR / SCQA / MECE 等框架,结合用户简历事实
4. **产出"备战手册"**:一份可打印的 .md / .docx / .pdf含题目 + 参考思路 + 自检清单
---
## 何时触发
强信号:
- "帮我准备面试 / 模拟面试 / 模面"
- "明天 / 下周面试"
- 提到了具体公司 + 岗位
- "高频面试题 / 经典面试题"
- "怎么回答 ___ 这个问题"
- "自我介绍怎么说 / 离职原因怎么答 / 期望薪资怎么谈"
弱信号(先确认):
- 只说"想了解一下面试" → 问是哪个方向 / 什么轮次
---
## 工作流
### Step 1: 锁定面试场景
用 AskUserQuestion 收集:
- 目标公司(具体名字 / 大厂 vs 创业 vs 外资 / 公司类型)
- 目标岗位(精确到方向,如"用户增长 PM"而不是"产品经理"
- 面试轮次(一面 / 二面 / 终面 / HR 面 / 全流程演练)
- 时间紧迫度(明天 / 这周 / 下周以上)—— 影响"广度 vs 深度"
- 用户已有材料JD / 简历 / 公司公开信息 / 已知面试官背景)
如果用户给了 JD 和简历,**先调用 jd-resume-tailor 的 parse_jd.py** 抽出岗位关键信息,避免重复拆。
### Step 2: 选题策略
按"轮次 + 方向 + 时间"决定题库结构。读取对应文件:
- 行为面(任何轮次都会问)→ `references/behavioral.md`
- 技术面(技术 / 数据岗主战场)→ `references/technical.md`
- Case 面(咨询 / 战略 / 高级 PM`references/case.md`
- HR 面(任何岗位的最后一公里)→ `references/hr_round.md`
- 岗位特定题库:
- 互联网产品 / 运营 / PM → `references/role_internet.md`
- 技术 / 研发 / 数据 → `references/role_tech.md`
- 金融 / 咨询 / 商科 → `references/role_finance.md`
题量推荐:
- **明天就面**:每类 5~8 题,重点高频题
- **3~7 天**:每类 10~15 题
- **>1 周**:完整覆盖 + 模拟轮次
### Step 3: 生成参考回答
**关键原则:参考回答必须基于用户简历里的真实经历,不是泛答。**
调用 `scripts/star_story_builder.py`(如果有简历):
```bash
python scripts/star_story_builder.py --resume resume.md \
--questions questions.json --out answers.md
```
或者,如果没有简历,用通用回答框架(从 references/answer_frameworks.md 读取)作为模板,让用户填空。
参考回答的格式:
```
【题目】___
【考察点】HR / 面试官想看你的什么能力
【回答框架】STAR / SCQA / MECE / 5W1H 之一
【建议长度】X 分钟(一般 1.5~3 分钟)
【参考回答 (基于你简历里的 ___ 经历)】
S: 当时的背景 / 问题
T: 你的任务 / 目标
A: 你的具体动作(重点,要细节)
R: 量化结果 + reflect
【可能的追问】1. ___ 2. ___ 3. ___
```
### Step 4: 产出"备战手册"
调用 docx skill 生成一份完整的 `interview_prep_<公司>_<岗位>.docx`,结构:
```
封面:公司 + 岗位 + 面试日期 + 倒计时
1. 公司 / 岗位 速览1 页)
2. 自我介绍(中 + 英两版,针对该岗位定制)
3. 行为面题库X 题)+ 参考回答
4. 技术面 / Case 面 题库X 题)+ 参考思路
5. 反向提问清单(你向面试官问什么)
6. 薪资谈判脚本
7. 面试当天 Checklist路线 / 着装 / 物品 / 心态)
```
**同时输出一份精简版 .md**,方便用户在地铁里 / 路上 review。
### Step 5: 模拟面试(可选 - 用户主动要才做)
如果用户说"模拟一下",进入互动模式:
- 一次问 1 题
- 等用户回答(语音 / 文字)
- 给反馈:内容 / 结构 / 表达 三维度
- 如果用户说"换一题"或"再来一道难的",继续
模拟时**保持面试官人设**:用真实面试官的口吻、追问方式、压力点(但不要变成 attacker要 constructive
---
## 反模式(不要做)
- ❌ 给一份"通用 50 题"应付了事 → 必须按公司 / 岗位定制
- ❌ 参考回答全是"我具有出色的沟通能力"这种空话 → 必须用具体故事
- ❌ 不让用户自己练,全程"我替你答" → 错过模拟价值
- ❌ 编造用户没有的经历做 STAR 故事 → 用户面试时会穿帮
- ❌ HR 面问题答得太"训练痕迹重"(机械化) → 要给"3 个不同风格的版本"让用户选
## 与其他 skill 的协作
- 用户说"我简历不够强,先改简历再来面试" → 转 `jd-resume-tailor``resume-builder`
- 用户说"我还在犹豫要不要投" → 转 `job-intent-tracker`
- 面试结束后用户说"我想复盘一下" → 留在本 skill进入"面试复盘模式",问表现、卡点、追问,帮用户为下一轮做准备

View File

@@ -0,0 +1,97 @@
# 面试回答框架速查
## STAR行为面通用
```
S - Situation背景30s
T - Task你的任务20s
A - Action你的具体动作90s重点
R - Result量化结果 + 反思30s
```
## SCQA开场陈述 / 自我介绍)
```
S - Situation当前的状态 / 背景
C - Complication变化 / 问题 / 触发点
Q - Question核心问题
A - Answer你的答案 / 行动
```
例:自我介绍可以用 SCQA
- S: "我目前在 X 公司做 ___ 5 年"
- C: "上一份工作业务进入成熟期,我希望去做更早期 / 更有挑战的事"
- Q: "什么样的岗位最适合我下一步?"
- A: "贵司的 ___ 岗位 + 我的 ___ 经验,正好契合,所以来面试"
## MECE结构化分析
Mutually Exclusive, Collectively Exhaustive。
拆问题时分类不重不漏。常见维度:
- 时间:短期 / 中期 / 长期
- 用户:新 / 老 / 流失
- 业务:自营 / 三方 / B 端 / C 端
- 地理:一线 / 二线 / 下沉
- 价格 / 量 / 渠道
## 5W1H问题诊断
Who / What / When / Where / Why / How
任何模糊问题,先用 5W1H 澄清。
## CIRCLESPM 案例题)
C - Comprehend澄清
I - Identify customer用户
R - Report needs需求
C - Cut by priority优先级
L - List solutions方案
E - Evaluate trade-offs取舍
S - Summarize推荐
## SOAR适用 senior 候选人讲战略经验)
S - Situation
O - Obstacle
A - Action
R - Result
强调"突破障碍"的能力。
## 自我介绍 3 段式(最稳的)
```
1. "我是 ___目前在 ___ 做 ___到现在 ___ 年"
2. "我最近 / 最有代表性的一个项目是 ___简单讲就是 ___结果 ___"
3. "我了解贵司 ___ 业务,与我的 ___ 经验 / ___ 兴趣高度契合,所以来面试"
```
时长1~1.5 分钟。
中文 + 英文版本都要准备(外企 / 投行 / 咨询 / 海外岗位常考英文)。
## 谈"缺点"的标准模板
```
1. 真实的缺点(不是反向夸自己)
2. 你怎么察觉的
3. 这个缺点带来过什么后果(说一个具体小事)
4. 你正在 / 已经在做什么改进
```
例:
- "我以前在表达自己的反对意见时会过于含蓄,导致一次方案讨论里我不同意 PM 的方向,但没明说,结果上线后效果不好,我才意识到。"
- "现在我会刻意在每次方案讨论后写一段『我的反对意见 + 数据依据』给 PM先打字再口头沟通这样表达更清晰也不情绪化。"
## 谈"职业规划"的标准模板
```
1. 短期1~2 年):在这个岗位做出 ___ 成果
2. 中期3~5 年):在 ___ 方向深耕,从 IC 到 senior IC / 小 lead
3. 长期:希望成为 ___ 领域的专家 / 业务 owner
```
避免:
- "做你们的总监"(太 ambitious 显得不真诚)
- "等我 5 年后看吧"(显得没规划)
- "创业 / 转行 / 出国"HR 听了直接拒)

View File

@@ -0,0 +1,94 @@
# 行为面题库Behavioral Interview
行为面问题考察"过去如何"来预测"未来如何"。所有行为题用 STAR 答。
## 高频题 Top 20中外企通用
### 自我类
1. 自我介绍 / 简单介绍一下你自己
2. 介绍你最有成就感的一个项目
3. 介绍你失败 / 挫折最大的一次经历
4. 你最大的优点 / 缺点是什么
5. 你五年后的职业规划
### 协作 / 影响力
6. 讲一个你跨部门 / 跨团队推动事情的例子
7. 讲一次你和同事意见不合,最后怎么解决的
8. 讲一次你说服别人改变想法的经历
9. 讲一次你帮 / 带新人成长的经历
10. 你怎么处理一个不配合的合作方
### 推动 / 执行
11. 讲一次你在资源 / 时间不足的情况下完成目标
12. 讲一次你主动推动一件事(没人要求你做)
13. 讲一次你做了一个艰难决策的经历
14. 讲一次你 ownership 体现得最好的一次
15. 讲一次你打破常规 / 创新的经历
### 失败 / 挫折
16. 讲一次你犯过的最大错误及怎么处理
17. 讲一次你接到负面反馈,怎么应对
18. 讲一次你的项目失败 / 没达成目标,怎么复盘
19. 讲一次你被 reject / 被否决的经历
### 学习 / 适应
20. 讲一次你快速学会一个全新领域的经历
## STAR 回答模板
```
S - Situation背景30 秒以内)
- 时间 / 地点 / 项目背景
- 当时的关键约束(资源 / 时间 / 复杂度 / 干系人)
T - Task你的任务
- 你具体要解决什么问题 / 达成什么目标
- 一句话讲清"我的角色 + 我的目标"
A - Action你的具体动作重点60% 时长)
- 分 2~4 个步骤讲,每步有动词 + 决策依据
- 强调"我做的"而不是"我们做的"
- 关键决策点要解释"为什么这么做"
R - Result结果 + 反思30 秒)
- 量化结果(数字 / 百分比 / 排名)
- 1 句反思:你学到了什么 / 如果再做一次会怎么改
```
## 高频题的"考察点"参考
| 题目 | 考察点 |
|------|-------|
| 自我介绍 | 表达能力、对岗位匹配度的自我认知 |
| 最成功的项目 | ownership、量化思维、复盘能力 |
| 最失败的项目 | 抗挫折、自我反思、成长型心态 |
| 优缺点 | 自我认知、坦诚、成长意识(缺点别答得像优点) |
| 跨部门推动 | 影响力、沟通、利益对齐能力 |
| 意见不合 | 同理心、说服力、底线思维 |
| 资源不足 | 创造力、优先级管理、边界谈判 |
| 主动推动 | ownership、商业 sense、推动力 |
| 接到负反馈 | 情商、成长型心态、改进行动 |
| 五年规划 | 职业稳定性、自驱力、与公司路径的契合度 |
## 常见反模式(用户会答错的)
- 答"优点"答得像招聘广告("勤奋、责任心强、抗压")→ 应该挑 1 个,配 1 个故事
- 答"缺点"答得像反向夸自己("太追求完美""工作太投入")→ 必须真实,加上正在做的改进
- "失败经历" 不敢说真失败 → HR 一眼识破,反而扣分
- 答"五年规划" 直接说"做你们的总监" → 太 ambitious 不真诚;要结合公司业务和个人能力路径
- 用大量"我们"代替"我" → 听不出你做了什么
- 一个故事讲 5 分钟 → 控制在 2~3 分钟,留追问空间
## 故事矩阵(提前准备)
让用户准备一个"故事矩阵"3~5 个故事可以回答 80% 的行为题:
| 故事编号 | 项目名 | 主要展示能力 | 可以回答哪些题 |
|---------|------|------------|-------------|
| 故事 1 | XX 项目 | ownership + 推动力 | 最成功项目 / 主动推动 / 跨部门 |
| 故事 2 | XX 项目 | 数据驱动 + 决策 | 艰难决策 / 数据驱动 / 创新 |
| 故事 3 | XX 项目 | 失败 + 复盘 | 最失败 / 负反馈 / 学习 |
| 故事 4 | XX 项目 | 沟通 + 说服 | 意见不合 / 说服别人 |
| 故事 5 | XX 项目 | 跨界 / 学习 | 快速学习 / 跨界 |
每个故事提前打磨"S 30s + T 30s + A 90s + R 30s"四段,面试时按题目灵活组合。

View File

@@ -0,0 +1,93 @@
# Case 面题库Case Interview
适用咨询MBB / Big4 战略)、战略 / 商分岗位、高级 PM 面试。
## 经典 case 类型
1. **Market Sizing市场规模估算**
- 中国一年卖多少杯咖啡?
- 上海有多少辆出租车?
- 抖音一天产生多少视频?
2. **Profitability盈利分析**
- 客户利润下降,怎么诊断?
3. **Market Entry市场进入**
- 某连锁品牌要进入印度,建议吗?
4. **M&A并购**
- 某公司想收购竞争对手,做不做?
5. **Growth Strategy增长策略**
- 某 SaaS 公司想 3 年 ARR 翻倍,怎么走?
6. **Operations运营优化**
- 某物流公司成本太高,怎么优化?
## Market Sizing 框架
```
Top-down: 总人口 → 目标用户比例 → 频次 → 单价 → 总市场
Bottom-up: 单店销量 → 城市门店数 → 城市数 → 总市场
关键:
1. 假设要明确(性别 / 年龄 / 城市分层 / 频次)
2. 数字要可验算(路演时面试官可能让你重算)
3. 给一个 sanity check"这个数对比 X 行业大概是 Y 倍,看起来合理"
```
## Profitability 框架
```
利润 = 收入 - 成本
收入端:
- 价格 × 销量
- 销量 = 客户数 × 客单价 × 频次
- 客户数 = 市场规模 × 渗透率
成本端:
- 固定成本(人工 / 租金 / 设备)
- 变动成本(原材料 / 物流 / 营销)
诊断顺序:
1. 量价拆分(量降还是价降?)
2. 区域 / 产品 / 客群 拆分(哪一块下滑最多)
3. 与行业对比(是行业问题还是公司问题)
4. 给出 2~3 个改进方向
```
## Market Entry 框架4C / 5C
```
Customer目标客户、需求、规模、增长
Competition现有玩家、市场份额、竞争激烈度、进入壁垒
Company自身能力产品 / 渠道 / 品牌 / 资金)是否匹配
Channel渠道选择直营 / 加盟 / 经销 / 线上)
Cost-benefit投入产出测算 + 时间表
关键:必须给"做 / 不做"的明确答案,不要"看情况"
```
## Case 面回答原则
1. **先 take a moment**:拿到题不要急着答,花 1~2 分钟列框架(面试官期待这个)
2. **MECE 框架**:分类要 Mutually Exclusive, Collectively Exhaustive
3. **Hypothesis-driven**:基于一个假设展开分析,而不是穷举
4. **Number first**:所有结论都要有数字支撑
5. **沟通节奏**:每展开一个分支前,先告诉面试官"我打算先看 X 再看 Y"
6. **主动总结**:每个分支结束做小结,最后给 final recommendation
## 常见误区
- 不澄清需求就开干 → 面试官期待你"先 clarify"
- 框架太机械(生硬套 4P / SWOT看不到思考
- 数字估算时单位混乱(百万 vs 亿)→ 用清楚单位
- 不主动 sanity check
- 跑得太快,面试官没法跟上你的逻辑
- 给建议时不写具体动作("加强营销"是废话,"在 X 渠道投放 Y 类型内容,预算 Z"才是建议)
## 高级 PM Case 高频题(不是咨询,是 PM 战略题)
1. 你怎么衡量微信视频号成功
2. 美团外卖准备进入印尼,你的 product strategy 是什么
3. ChatGPT 推出后,你作为 Notion PM 会做什么
4. 给一个产品设计 north star metric
5. 抖音直播 GMV 卡住了,你怎么 diagnose
PM Case 关键:必须有用户思维 + 业务思维 + 数据思维 同时在线,不要只讲框架,要讲到具体功能 / 实验设计。

View File

@@ -0,0 +1,103 @@
# HR 面 / 终面题库
HR 面通常在所有专业面之后,关注:稳定性、性格匹配、薪资期望、入职意愿。
## 高频问题 + 推荐答法
### 1. 你为什么离职 / 想换工作?
❌ 错:吐槽前公司 / 同事 / 老板
✅ 对:聚焦"成长 / 发展 / 业务方向" 三选一
- "我目前的业务相对成熟,希望挑战 0-1 的环境"
- "上一份工作积累了 ___ 经验,下一步想往 ___ 方向深入,贵司这个岗位正好契合"
- "团队结构调整,业务方向不再是我的兴趣点,所以想找新的发展"
### 2. 你为什么选我们公司 / 这个岗位?
❌ 错:贵公司平台大 / 福利好
✅ 对show 你做了功课
- 公司层面:业务 / 战略方向 / 你看好的趋势 + 1~2 个你具体了解的产品 / 案例
- 岗位层面JD 里的 ___ 与你的 ___ 经验高度契合
### 3. 你期望的薪资是多少?
策略:**永远不要先开口给一个数**
- 如果可以反问:先问"贵司这个岗位的薪资带是多少?"
- 如果必须给:给一个 range不要给点比如"40~55k × 14",下限略高于你能接受的最低
- 如果对方说"无可奉告,必须你先报":基于市场数据 + 当前涨幅 30~50% 给一个略高的数
更详细的薪资谈判脚本见 `salary_negotiation.md`
### 4. 你拿了几个 offer什么进展
策略:**不撒谎,但策略性地说**
- 有真实 offer直接说"目前手上有 X 公司的 ___ offer基本盘是 ___"
- 在面其他公司:说"还在面 X 类公司,预计 X 周内有结果",给对方紧迫感
- 完全没有:说"目前在重点投这一类岗位,进展中"
### 5. 我们 / 这个岗位有没有什么让你担心的?
策略:**给一个真实但可解决的担忧**
- "对 ___ 业务的快速迭代节奏,我需要一段时间适应"
- "团队规模比我之前的大很多,如何融入是我会主动想的事"
不要答"没有任何顾虑"——显得不真诚。
### 6. 你最快什么时候能入职?
❌ 错:随时(显得急)
✅ 对:基于实际 + 给一点缓冲
- 在职:依法 30 天交接 + 1 周休息 = 5~6 周
- 待业2 周左右
- 应届:可按毕业时间 / 学校要求
### 7. 你最近读了什么书 / 最近在学什么 / 业余爱好?
策略:**展示自驱力 + 个性**,不要硬凹"成长性"
- 1 本与岗位有点关系的书 / 课程
- 1 个真实的爱好(运动 / 艺术 / 写作 / 旅行 / 编程副业)
### 8. 你的优点 / 缺点HR 复问版)
HR 复问通常更深,要求"举例"
- 优点1 个核心优点 + 1 个具体故事 + 这个优点带来的成果
- 缺点1 个真实缺点 + 自我察觉的过程 + 正在做的改进
⚠️ 缺点不要选"完美主义、太投入工作、太认真"——这些会被识别为"反向夸自己"。
推荐方向:表达 / 委派 / 公开演讲 / 优先级控制(这些是真缺点但可改进)。
### 9. 你的 5 年 / 10 年规划
策略:**与公司路径绑定 + 留出灵活性**
- "未来 3~5 年我希望在 ___ 方向深耕,从 IC 成长为能带小团队的 senior"
- "5 年后希望能独立负责一条业务线 / 子产品"
- 不要说"自己创业""转行" / "出国" / "做自媒体"
### 10. 还有什么想问我们的?
**强信号题**——必须问问题,不能说"没了"。
参考问题(按 HR / 主管 / 终面分层):
**问 HR**
- 这个岗位的 onboarding 一般是怎么安排的?
- 团队的组成、和我对接的同事的背景能介绍下吗?
- 公司近期的业务重点 / 战略方向是什么?
**问主管 / 业务面试官:**
- 您觉得这个岗位最大的挑战是什么?
- 团队最近的 OKR 是什么?
- 您觉得在这个岗位做得好的人,半年 / 一年通常会做出哪些成果?
**问终面 / 大老板:**
- 您看好的下一个三年的业务方向是什么?
- 这个岗位 / 这条业务线在公司战略里的位置?
- 您在公司最自豪的一个决策是什么?(拉近距离)
**不要问的**薪资细节HR 会主动给)、加班 / 出差(显得在挑刺)、五险一金(显得不专业)
## HR 面综合心态
- HR 看似友好,实际在筛"性格 / 稳定性 / 文化匹配",每句话都是评估
- 答题保持"克制 + 真实",不要为了讨好把答案变得不像自己
- HR 一般不决定 offer 给不给,但能 **veto** —— 别在最后一公里翻车

View File

@@ -0,0 +1,103 @@
# 金融 / 咨询 / 商科 面试专题
## 投行 / IBD
### Technical 题
1. 三大报表勾稽关系
2. WACC / DCF 公式 + 关键假设
3. LBO 模型核心要素 + 退出回报怎么算
4. M&A 交易中 accretion / dilution 分析怎么做
5. 用 5 种以上方法估值一家公司
6. EV vs Equity Value 区别 + 怎么转换
7. 同行业可比公司怎么选 + 用什么倍数
8. PE / PB / EV/EBITDA 各自适用场景
9. 折旧、摊销、利息、营运资本变动 对现金流的影响
10. 一家公司 IPO 流程是怎样的A / 港 / 美股)
### Fit 题(中外资差异)
- 你为什么想做投行
- 你愿意接受 100 小时 / 周的工作强度吗
- 你最近 follow 的一个 deal 是哪个,谈谈你的看法
- 给你一个新的 sector你怎么从 0 开始研究
- 一个分析模型出错了,但 deck 已经发出去了,你怎么处理
### 行业 deal 题(必准备 1~2 个)
准备 1~2 个最近的 sector deal能讲清楚
- 交易结构(买方 / 卖方 / 估值 / 支付方式)
- 战略意义
- 估值倍数 / 溢价
- 市场反应
- 你的看法
## 咨询Consulting
### Case Interview已在 case.md
重点训练:
- Market sizing每家必问
- Profitability
- Market entry
- Growth strategy
### Fit 题
- 你为什么想做咨询
- 你为什么选 MBB或我们这家
- 讲一个你 lead / 推动事情的经验
- 讲一个你和团队意见不合的经验
- 你的 long-term career goal
### Personal Experience InterviewPEI—— McKinsey 必考
PEI 三大类:
1. **Personal Impact**(你说服 / 影响别人)
2. **Entrepreneurial Drive**(你主动推动事情)
3. **Inclusive Leadership**(你带领多元团队)
每类准备 1~2 个故事,按 STAR 讲,每个故事 5~6 分钟McKinsey 喜欢深挖)。
## 量化Quant
### 概率 / 数学题(高频)
1. 一根均匀的木棍随机折两次,能拼成三角形的概率
2. 蒙提霍尔问题(三门)
3. 醉汉问题n 步后回到原点的概率)
4. 给你一个不公平硬币,怎么模拟公平硬币
5. 期望 / 方差 / 协方差 计算题
6. 布朗运动 / Ito 公式 / Black-Scholes 推导(高级)
7. Optimal stopping秘书问题
### 编程题
1. LeetCode 中等 / 困难(数组 / 字符串 / DP
2. 写一个回测框架(伪代码即可)
3. C++ / Python 一些常考语言细节
### 策略题
1. 你了解的策略类型有哪些
2. 你做过的一个完整策略(信号 → 组合 → 回测 → 上线)
3. 怎么处理过拟合 / out-of-sample 失效
4. 怎么估算策略容量
5. Sharpe / Sortino / Calmar / Max DD 各自含义和用法
### Brain Teaser脑筋急转弯
- 100 个囚犯帽子问题
- 海盗分金币
- 8 个球称重找不同的(必备)
- 烧绳子计时
## 公募 / 私募 研究员
### 行业研究题
1. 你 cover 哪个行业?目前的核心矛盾是什么?
2. 你最看好 / 最不看好的 1 只股票,逻辑是什么
3. ___ 公司最近股价涨了 / 跌了 X%,怎么解释
4. 给你一个新行业,你怎么从 0 开始研究
5. 你怎么判断管理层质量
6. 行业景气度 vs 公司基本面,哪个更重要
### 估值题
1. ___ 公司你给多少估值,用什么方法
2. PE 30x 算贵吗?怎么判断
3. 价值 vs 成长 vs 周期 各自怎么估
4. DCF 在 ___ 行业能不能用?为什么
### 投资逻辑表达
- 30 秒电梯演讲3 句话讲清一只股票的投资逻辑
- 5 分钟深度:背景 + 催化剂 + 风险 + 估值 + 时间

View File

@@ -0,0 +1,80 @@
# 互联网产品 / 运营 / PM 面试专题
## 产品经理PM
### 高频题
1. 介绍一款你最喜欢的产品 / APP分析它的优势和不足
2. 如果让你优化 ___具体产品你会怎么做
3. 怎么衡量一个产品 / 功能的成功
4. 一个新功能上线后留存提了 5%,怎么归因
5. 你怎么定义产品的 north star metric
6. 设计一个 ___ 功能(如:抖音的"不感兴趣"按钮)
7. 给你一个用户反馈集合,怎么决定要做哪些
8. PRD 写过吗?怎么写一个高质量的 PRD
9. 你怎么和开发 / 设计 / 运营 协作
10. 你做的最得意的一个数据驱动决策是什么
### PM 案例题答题套路CIRCLES 框架)
```
C - Comprehend the situation澄清问题
I - Identify the customer明确目标用户
R - Report the customer's needs用户痛点
C - Cut, through prioritization功能优先级
L - List solutions具体方案 2~3 个)
E - Evaluate trade-offs取舍
S - Summarize recommendation最终建议
```
### PM 面试官想看
- 用户思维(不是站在自己角度)
- 数据敏感度(你怎么用数据说服 / 验证)
- 业务理解(不只是功能,还有 unit economics
- 跨职能沟通(你怎么处理与开发 / 设计的冲突)
- ownership你 own 一个功能从设计到上线到复盘的全流程)
## 运营
### 高频题
1. DAU 跌了 X%,怎么排查
2. 给你 100 万预算,做 ___ 活动,你怎么规划
3. 怎么搭建一个用户分层运营体系
4. 内容运营 / 用户运营 / 活动运营 你最想做哪个,为什么
5. 你怎么衡量一个活动的 ROI
6. 你做过的爆款活动 / 内容,复盘一下
7. 私域 / 公域 你怎么打配合
8. 怎么提升新用户次留 / 7 留 / 30 留
9. 你怎么和产品 / 数据 / 设计 协作
10. 一个失败的活动,你怎么复盘
### 运营常用框架
- AARRR / RARRA用户生命周期 5 个阶段
- 活动复盘:目标 - 策略 - 执行 - 数据 - 反思
- 内容运营三板斧:选题 - 制作 - 分发 - 数据反馈
### 运营面试官想看
- 数据敏感度(每个动作配数字)
- 用户洞察(不是"我觉得",是"用户说"
- 资源整合(怎么撬动第三方 / 跨部门)
- 闭环思维(活动结束 ≠ 工作结束,复盘 + 沉淀 SOP
- 创意 + 落地(既能想点子,又能落地到 SOP
## 项目经理 / TPM
### 高频题
1. 你怎么管理一个 ___ 人 / ___ 月的项目
2. 项目延期了,你怎么办
3. 跨部门 / 跨时区 / 跨语种 协作的挑战和经验
4. 你怎么管理项目风险
5. 敏捷 vs 瀑布,你怎么选
6. Scrum / Sprint planning / Retro 你怎么主持
7. 怎么和 stakeholder 同步进度(汇报方式)
8. 一个 stakeholder 不配合,你怎么 escalate
9. 你管过的最大 / 最复杂的项目讲讲
10. 项目失败 / 没达成目标,你怎么复盘
### TPM 面试官想看
- 结构化思维(项目拆解、依赖管理)
- 沟通能力(向上 / 平行 / 向下)
- 风险预判(不是事后救火,是事前预防)
- 数据 / 工具熟练度Jira / 飞书 / 自建 dashboard
- 推动力drive 一群你管不到的人)

View File

@@ -0,0 +1,83 @@
# 技术 / 研发 / 数据 面试专题
通用技术八股 + 系统设计在 `technical.md`,本文件聚焦:
- 项目深挖话术
- 算法 / LLM / 数据 岗位特定题
- 团队 / 软技能题(技术岗也要答)
## 项目深挖(每家必问)
面试官最喜欢"刨根问底",一定要准备。
每个项目至少能回答以下 8 个问题:
1. **背景** —— 这个项目为什么要做?业务问题是什么?
2. **你的角色** —— 你在团队里是什么角色?做了 ___ 模块?
3. **技术选型** —— 为什么选 X 而不是 Ytrade-off 是什么?
4. **挑战** —— 遇到的最难的技术问题是什么?怎么解决的?
5. **数据** —— 系统的 QPS / 数据量 / 延迟 / 可用性 是什么?
6. **结果** —— 上线后效果怎么样?比基线提升 ___
7. **失败 / 坑** —— 踩过什么坑?怎么 debug怎么避免
8. **改进** —— 现在让你重新做这个项目,会怎么做?
## 算法 / 机器学习 岗位特定
### 业务理解题
1. 给你一个 ___ 业务,你怎么定义一个 ML 问题
2. 你怎么和业务 / 产品 / 数据 协作
3. 模型上线后效果不及预期,你怎么排查
4. 模型 vs 规则,什么时候选哪个
5. 你做的模型,下线 / 替代过吗?为什么
### 算法岗"假大模型 / 真不深"识别题
- 你说会 RLHF那 PPO 的 KL 项是怎么加的?为什么这么加?
- 你做了 RAG召回准确率怎么算的不同分块策略对比过吗
- 你说做了 Agent你的 planning 模块是 ReAct / CoT / 还是自定义?错误恢复怎么做?
防身:**只写真做过的项目**,编造的 LLM 项目最容易翻车。
## 数据 / 数仓 / 分析 岗位特定
### 业务题(强烈高频)
1. 你怎么衡量一个 ___ 业务的健康度
2. DAU 跌了 5%,你怎么 diagnose
3. 你做的最有价值的一个数据分析项目
4. 你怎么和业务方 / 产品 / 老板 沟通分析结论
5. 给你一个数据需求:"分析下用户为什么流失",你怎么做
### SQL 现场题(必考)
- 写一段 SQL每个用户的连续登录天数
- 写一段 SQL每个商品的复购率
- 写一段 SQL找出最近 7 天每天的新增用户
- 写一段 SQLA/B 测试结果对比 + 显著性
提示:**面试现场写 SQL 一定要边写边讲思路**,别闷头写。
### 数仓建模题
- 你怎么设计一个 ___ 业务的数据模型
- 维度建模 vs 范式建模 怎么选
- 拉链表 / 缓慢变化维度 怎么处理
- 数据质量怎么保障(监控 / 巡检 / 复盘)
## 软技能题(技术岗也要答)
技术岗以为只考技术 = 大错。中级以上会问:
1. 跟其他团队 / 产品经理 / 设计师 意见不合,你怎么办
2. 你怎么 review 别人的代码 / 文档
3. 你怎么带新人
4. 一个技术决策没人响应,你怎么推动
5. 你接手了一个屎山代码,怎么改造
6. 你怎么管理自己的技术成长
## 反向提问(技术面 / leader 面)
技术面:
- 团队的技术栈和未来规划是什么?
- 团队最近的技术挑战是什么?
- code review / on-call / 周会 流程是怎样的?
Leader 面:
- 您怎么看 ___ 技术 / 业务方向的未来?
- 团队的技术债务现在怎么样?
- 您觉得在这个团队最有挑战的事情是什么?

View File

@@ -0,0 +1,99 @@
# 薪资谈判脚本
## 心法
- 永远不要先开口给一个数(让对方先报)
- 给数字时给 range下限略高于你的最低接受
- 谈判全程保持"希望加入" + "理性 base on 市场" 的语气
- 不要 disclose 你的当前 / 历史薪资(除非法律 / 当地惯例要求)
- 多个 offer 是最大筹码,但不要明示要"涨多少",让对方主动提
## 阶段 1HR 初次问期望薪资
**HR**"你期望的薪资是多少?"
**你(首选)**
"贵司这个岗位的薪资带是多少?我希望对齐市场和岗位职级。"
**HR如果说不告诉你**
"我们想先听你的期望,再做匹配。"
**你**
"基于市场行情和我的 ___ 年经验,我希望的范围是 X~Y k × ___ 月,最终可以基于贵司的整体 package 综合谈。"
X 的算法:(当前年包 ÷ 12 ÷ 月数)× 1.3~1.5,向上取整到 5k。
Y 的算法X × 1.2。
例:当前 30 × 16 = 480k 年包。月薪 = 480/14 ≈ 34k。期望 X = 34 × 1.3 = 44k → 给 45~55k × 14。
## 阶段 2HR 给口头 offer
**HR**"我们能给你 50k × 14年包 700k。"
**你(不要立刻接)**
"感谢,让我先了解下整体 package 的细节,包括签字费、股票 / RSU、年终奖结构、五险一金基数、加班 / 出差补贴。"
收到详细信息后:
- 如果**整体满意**:可以表达"基本符合预期,让我和家人商量 1~2 天"
- 如果**期望更高**:进入阶段 3 谈判
## 阶段 3谈高 offer
**你**
"非常感谢您的 offer我对岗位和团队都很认可。基于我目前正在 finalize 的 X 公司类似岗位的 offer / 我的当前 package + 跳槽涨幅期望,我希望能在月薪 / 签字费 / RSU 上有进一步空间,具体是 ___。"
要点:
- **永远给具体数字**(不要说"再高一点")
- **给一个 reason**(其他 offer / 当前涨幅 / 市场行情)
- **只谈 1~2 个核心要素**(不要每项都谈)
- **不要威胁**(不要说"否则我去 X 公司"
## 阶段 4HR 拒绝再加
**HR**"这个数字已经是我们的 maximum无法再加。"
**你**
- 如果 base 已经能接受:尝试争取签字费 / 多一档股票 / 多 5 天年假 / 入职时间调整
- 如果整体不能接受:感谢 + 说"我需要时间考虑",不要当场拒绝
## 阶段 5手握多个 offer
最理想3 个 offer 在手,且各家都知道你在考虑其他
**与 A 公司**"X 公司给了 50k × 14 + 100k 签字 + 200k RSU/年,我个人更倾向贵司 / 这个岗位,但希望整体 package 至少 match。"
**与 B 公司**:同上但换数字
⚠️ 不要伪造 offerHR 圈子小,可能被发现)
## 应届生薪资谈判
应届生议价空间小,但仍有:
- 不同 offer 互比
- 签字费可以争(很多公司有 flex
- 入职时间可以争(毕业延后)
- 工作地点 / base 转换 可以争
应届生**不要**:因为期望太高拒掉所有 offer。第一份工作的"平台 + 业务 + leader"比薪资重要。
## 常见雷区
- "我愿意降薪过来" → 永远不要主动说HR 会觉得你"贱卖" + "需求被低估"
- "我对薪资不敏感" → HR 听了真的会少给
- "你们随便给个数" → 把决定权交给 HR等于自杀
- "如果不到 X 我就拒" → 太 hardcore谈崩
- 把家里 / 房贷 / 个人困难当谈判筹码 → 不专业
## 收到 offer 之后的 checklist
- [ ] 确认 base 月薪 + 月数
- [ ] 确认签字费 / 一次性奖金
- [ ] 确认股票 / RSU / 期权(数量、归属期、估值方式)
- [ ] 确认年终奖结构(保底 / 固定 / 浮动)
- [ ] 确认五险一金基数(很多公司低基数缴费,影响实际收入)
- [ ] 确认补充医疗 / 商业保险
- [ ] 确认年假 / 调休 / 带薪病假
- [ ] 确认加班 / 出差补贴
- [ ] 确认背景调查范围
- [ ] 确认 offer letter 书面文件
- [ ] 入职时间30 天交接 + 1 周休息)

View File

@@ -0,0 +1,100 @@
# 技术面题库
适用:研发 / 算法 / 数据 / DevOps 岗位的 1~2 面(技术轮)。
按职级分层:
- **初级0-3 年)**:基础八股 + 简单算法 + 项目细节
- **中级3-5 年)**:系统设计 + 复杂场景题 + 项目深度追问
- **高级5+ 年)**:架构权衡 + 跨团队问题 + 业务理解
## 一、后端 / 服务端
### 基础八股(每家都问)
1. HTTP / HTTPS / TLS 流程session vs cookie vs token
2. TCP 三握四挥,为什么是 4 次挥手
3. MySQL 索引底层B+ 树)、何时失效、最左前缀
4. MySQL 事务隔离级别 + 各自解决什么问题
5. Redis 持久化RDB / AOF+ 主从 + 哨兵 + 集群
6. Redis 缓存击穿 / 穿透 / 雪崩 怎么解
7. 分布式锁 3 种实现Redis / Zookeeper / 数据库)+ 各自坑
8. Kafka 怎么保证消息不丢、不重复、有序
9. JVM 内存模型 + GCJava 岗)/ Goroutine 调度Go 岗)
10. 一致性哈希、CAP、BASE、Raft / Paxos 简述
### 系统设计高频
- 设计一个秒杀系统QPS 10w
- 设计一个短链服务(生成 / 重定向 / 统计)
- 设计一个分布式 ID 生成器
- 设计微博 feed 流(推 / 拉 / 推拉结合)
- 设计一个限流器(令牌桶 / 漏桶 / 滑动窗口)
### 系统设计回答框架
```
1. 澄清需求(问清 QPS、读写比、数据量、SLA
2. 估容量QPS × 平均请求大小 = 带宽;数据量 × 时间 = 存储)
3. 高层架构(接入层 → 业务层 → 存储层 → 数据流)
4. 关键模块深挖(讲清楚选型为什么)
5. 扩展性 / 高可用 / 容灾
6. 主动指出 trade-off
```
## 二、前端
1. 浏览器渲染流程DNS → TCP → TLS → HTTP → HTML 解析 → 布局 → 绘制)
2. 事件循环 + 微任务 / 宏任务
3. 闭包、原型链、this 绑定
4. React / Vue 响应式原理
5. 性能优化FCP / LCP / CLS 指标 + 实操)
6. SSR vs CSR vs SSG何时用哪个
7. 跨域方案CORS / JSONP / 反向代理)
8. webpack / vite 区别 + 原理
## 三、算法 / 机器学习
### 基础
1. 偏差 / 方差,过拟合怎么解
2. L1 / L2 正则的区别
3. 随机森林 vs GBDT vs XGBoost
4. 梯度消失 / 爆炸 + 解决BatchNorm / 残差 / 激活函数)
5. Attention 机制讲清Transformer 与 RNN 对比
6. 样本不平衡处理(采样 / 类权重 / Focal Loss
7. 模型评估准确率、精确率、召回率、AUC、F1何时用哪个
### LLM / GenAI 方向2024+ 热门)
1. SFT vs RLHF vs DPO原理 + 何时用
2. RAG 完整 pipeline分块策略、Embedding 选型、检索融合、Reranker
3. Agent 的 tool use / planning / memory与单 LLM 的区别
4. 长上下文YARN / RoPE 缩放、Context window 扩展)
5. 推理优化KV cache、speculative decoding、量化
6. 大模型评估benchmark、人工评估、LLM-as-Judge 各自坑
### 项目深挖(每个面试官必问)
- 你这个模型为什么选 ___ 而不是 ___
- 数据是怎么标注 / 清洗的,量级
- 训练用了什么硬件、跑了多久、超参怎么调
- 上线后效果怎么评估,与基线对比
- 失败 / bug 的 case怎么 debug
## 四、数据 / 数仓 / 分析
### SQL必考
- 行转列 / 列转行 / 透视
- 窗口函数rank / dense_rank / lead / lag
- 计算 7 日 / 30 日活跃用户
- 同 user 连续登录天数
- 留存率 / 漏斗 / 同期群分析
- 性能优化索引、explain、分区、避免子查询
### 业务题
- 给你一个业务场景,让你设计指标体系
- DAU 跌了 5%,怎么排查
- 设计一个 A/B 测试(样本量计算、显著性、停损)
- 用户分层模型RFM / 生命周期)
## 五、技术面回答原则
1. **澄清问题再答**:模糊的题先问 1~2 个澄清问题
2. **结构化输出**:分点 / 分模块讲,不要意识流
3. **trade-off 思维**:选 A 而不选 B 时,主动说"因为 ___"
4. **诚实**:不会的题说"这个我没研究过,但根据我对 X 的理解,可能可以这样想 ___"
5. **画图 / 写代码**:白板题写代码先讲思路,再写,最后跑测试用例

View File

@@ -0,0 +1,178 @@
#!/usr/bin/env python3
"""
star_story_builder.py — 从简历文本里抽出工作 / 项目经历,生成"故事矩阵"骨架
用法:
python star_story_builder.py --resume resume.md --out stories.md
输出一份 markdown包含
- 检测到的 N 个经历(按时间倒序)
- 每个经历的 STAR 骨架占位(让用户 / 模型补全)
- 每个故事可以回答的行为题清单
"""
from __future__ import annotations
import argparse
import re
import sys
from pathlib import Path
COMMON_BEHAVIORAL_QUESTIONS = {
"ownership": [
"讲一次你 ownership 体现得最好的经历",
"你做过的最有成就感的项目",
"讲一次你主动推动事情",
],
"collab": [
"讲一次你跨部门 / 跨团队推动事情",
"讲一次你和同事意见不合,怎么解决",
"讲一次你说服别人改变想法",
],
"challenge": [
"讲一次你在资源 / 时间不足下完成目标",
"讲一次你做艰难决策的经历",
"讲一次你打破常规 / 创新的经历",
],
"failure": [
"讲一次你失败 / 没达成目标的经历",
"讲一次你犯过的最大错误",
"讲一次接到负面反馈,怎么应对",
],
"learning": [
"讲一次你快速学会全新领域的经历",
"你最近学到的最重要的事是什么",
],
}
def load_resume_text(path: Path) -> str:
suffix = path.suffix.lower()
if suffix in {".md", ".txt"}:
return path.read_text(encoding="utf-8")
if suffix == ".docx":
try:
from docx import Document
except ImportError:
print("✗ 缺少 python-docx", file=sys.stderr)
sys.exit(1)
return "\n".join(p.text for p in Document(str(path)).paragraphs)
print(f"✗ 暂不支持 {suffix}", file=sys.stderr)
sys.exit(1)
def extract_experiences(text: str) -> list[dict]:
"""
简易抽取:找形如 "公司 | 岗位 | 时间""项目名 | ..." 的行作为锚点,
然后取该行后面、下一个锚点之前的内容作为经历内容。
"""
lines = text.splitlines()
experiences: list[dict] = []
current = None
# 匹配锚点(含 | 或 |,且包含日期/年份)
anchor_re = re.compile(
r"^(?P<title>[^\n]+?[|][^\n]+?[|][^\n]+)$"
)
for line in lines:
if anchor_re.match(line.strip()):
if current and current["bullets"]:
experiences.append(current)
current = {"title": line.strip(), "bullets": []}
else:
stripped = line.strip()
if current and stripped.startswith(("-", "*", "")):
current["bullets"].append(stripped.lstrip("-*• "))
if current and current["bullets"]:
experiences.append(current)
return experiences
def categorize_story(bullets: list[str]) -> list[str]:
"""根据 bullet 关键词,判断这个故事最适合回答哪一类行为题。"""
text = " ".join(bullets).lower()
cats = []
if any(k in text for k in ["主导", "owner", "推动", "drive", "lead", "0-1"]):
cats.append("ownership")
if any(k in text for k in ["跨部门", "跨团队", "协作", "对接", "合作"]):
cats.append("collab")
if any(k in text for k in ["紧急", "时间紧", "资源", "决策", "突破"]):
cats.append("challenge")
if any(k in text for k in ["失败", "下线", "回滚", "复盘", "教训", "踩坑"]):
cats.append("failure")
if any(k in text for k in ["", "学习", "陌生", "首次", "从零"]):
cats.append("learning")
return cats or ["ownership"]
def render(experiences: list[dict]) -> str:
if not experiences:
return (
"# 故事矩阵(未检测到经历)\n\n"
"无法从简历里自动抽取出工作 / 项目经历。可能是因为:\n"
"1. 简历格式不是 `公司 | 岗位 | 时间` 的常见结构\n"
"2. 经历用普通段落写,没有明显的锚点\n\n"
"建议:手工告诉我你最有代表性的 3~5 段经历,我来帮你做 STAR 拆解。\n"
)
out = ["# 故事矩阵Story Matrix", ""]
out.append(f"从简历里检测到 {len(experiences)} 段经历,按 STAR 拆解如下。")
out.append("**请补充每个 STAR 段落里 `[占位]` 的内容**,准备好后这些故事可以覆盖 80% 的行为面问题。")
out.append("")
for idx, exp in enumerate(experiences[:8], start=1):
cats = categorize_story(exp["bullets"])
out.append(f"## 故事 {idx}{exp['title']}")
out.append("")
out.append("**简历原始 bullet**")
for b in exp["bullets"][:5]:
out.append(f"- {b}")
out.append("")
out.append("**STAR 拆解(请补全):**")
out.append("- **S背景**[占位 - 一句话点明背景 / 痛点]")
out.append("- **T任务**[占位 - 你的具体任务和目标]")
out.append("- **A动作**[占位 - 分 2~4 步,每步带动词 + 决策依据]")
out.append("- **R结果**[占位 - 量化结果 + 一句反思]")
out.append("")
question_pool = []
for cat in cats:
question_pool.extend(COMMON_BEHAVIORAL_QUESTIONS.get(cat, []))
out.append(f"**最适合回答的行为题({', '.join(cats)}**")
for q in question_pool[:4]:
out.append(f"- {q}")
out.append("")
out.append("---")
out.append("")
out.append("## 使用建议")
out.append("")
out.append("- 把每个故事的 STAR 段落填好,每段控制在 30~90 秒讲完")
out.append("- 面试时灵活组合:同一个故事可以从不同角度回答不同题")
out.append("- 至少准备 **3 个完整故事**(成功 + 失败 + 协作 各一个),覆盖 80% 行为题")
out.append('- 每个故事里强调「我」做了什么,避免大量「我们」')
return "\n".join(out)
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--resume", required=True)
parser.add_argument("--out")
args = parser.parse_args()
resume_text = load_resume_text(Path(args.resume).expanduser())
experiences = extract_experiences(resume_text)
report = render(experiences)
if args.out:
Path(args.out).write_text(report, encoding="utf-8")
print(f"✓ 故事矩阵已生成:{args.out}")
else:
print(report)
if __name__ == "__main__":
main()