yuzihang777

intern-interview-qa

通用:读取当前工作区源码与用户简历,生成可直接复习的面试文档。 每条能对上代码的经历独立成节;问题按真实面试官(为什么、并发、失败、验证、代码没做什么); 回答按专业候选人(机制+口径+边界);实现按代码分析师(调用链、不变量、SQL/缓存键、缺陷)。 Use when the user wants 根据简历和源码写面试题, 对着代码准备面试, 面试问答, 实习/项目面试复习文档, resume + codebase interview prep, or runs /intern-interview-qa.

yuzihang777 0 Updated 2d ago

Resources

4
GitHub

Install

npx skillscat add yuzihang777/intern-interview-qa

Install via the SkillsCat registry.

SKILL.md

简历 × 源码面试复习文档

面向用户用中文。默认不改简历。默认不写教育/技能清单/自我评价(用户点名要除外)。

角色合一:你同时是面试官(只问这份简历+这份仓库会问的)、候选人(可上口的专业答)、代码分析师(实现以仓库为准,含缺陷)。最终文档合上就能覆盖重要问题和实现,不必再翻源码才能开口。

改简历请用 intern-resume。本 skill 只出题与走读。

1. 读入

  • 简历:用户给的路径/粘贴;否则在工作区找 resume-output/*简历*.docx
  • 工作区:当前 repo。用 grep/读文件,不要凭记忆复述「常见实现」。
  • 范围:默认覆盖简历里能映射到本仓库的经历(实习 + 与本仓相关的项目)。用户说「只实习」则只取实习 bullet。
  • 每条能对上代码的 bullet 单独成节。对不上代码的经历:一节写清「本仓库无实现,面试只讲职责边界」,不要编调用链。

抽取 docx(无 pandoc 时):

import zipfile, xml.etree.ElementTree as ET
W="{http://schemas.openxmlformats.org/wordprocessingml/2006/main}"
with zipfile.ZipFile(path) as z:
    root = ET.fromstring(z.read("word/document.xml"))
for p in root.iter(f"{W}p"):
    t="".join((n.text or "")+(n.tail or "") for n in p.iter(f"{W}t"))

2. 覆盖什么(面试官选点)

对每条 bullet,先在仓库定位实现,再出题。题必须来自这份代码会露馅的点,不是 Spring/MySQL 百科。

每节至少覆盖这些类型(没有对应代码就跳过该类,不要空问):

类型 面试官实际在问
选型 为什么是这个机制,而不是更简单的 if/单表/同步接口
正确性 并发、幂等、重试、回滚、状态会不会倒退
数据 键、索引、唯一约束、缓存失效、一致性
性能 复杂度、N+1、对象分配、池/队列打满
验证 你怎么证明改对了(日志、SQL 次数、压测口径)
诚实 代码没做什么;注释/简历和常量不一致时答代码

加试(有界): 打开该 bullet 所在模块后,补 1–3 个面试官顺手会点开的相邻路径(失败分支、回调、Job 分片、卸载)。不要把整个仓库做成目录。

事实顺序:生产代码常量与 SQL > 注释 > 设计文档 > 简历措辞。冲突写进文档:「代码是 X,注释是 Y,面试答 X」。

不要:编造线上 QPS/SLA/准确率;把压测当生产;把 Young GC/gcTimeMs 加总说成卸类暂停;把 close() 说成类已卸载;把无状态条件的 UPDATE 说成 CAS。

3. 回答与走读的质量

候选人(推荐回答 60–90 秒): 问题 → 机制(类名/键/约束/池参数)→ 一句如何验证。像在白板上讲,不背简历。数字带来源口径。

追问: 失败、并发双写、线程池拒绝、事务、重连、乱序回调。答到方法名或 WHERE。无证据标 【待补】

分析师(源码实现):

  • 调用链(入口 → 策略/队列/缓存 → 落库)
  • 不变量(唯一键、缓存 key、单飞、分片条件)
  • 精确参数(过期、容量、批次、信号量、枚举值)
  • 缺陷与限制(无 CAS、N+1、TODO 返回 0、callback 为空)
  • 对照文件路径,便于点开核对

4. 写文档

默认:resume-output/面试复习-简历与源码.md(用户指定则用指定路径)。

文首:简历来源、仓库、经历目录(专有词 → 代码锚点)、60 秒介绍。

每节用 references/section-template.md。标题含该条专有词。每节末 复习口令(合上文档能默写的 5–8 点)。

文末:

  • 数字与口径:可以说 / 不可以说
  • 默写清单 + 建议复习顺序(先写最容易说错的:并发、幂等、生命周期/GC、异步)

5. 校验后交稿

scripts/verify_interview_doc.py --resume … --md …(实习范围加 --scope intern)。再按本仓库追加从源码解析的断言(常量、WHERE、报告数字),不要把业务魔数写进本 skill。失败改文档,不改生产代码迁就文档。

告诉用户:文档路径、默写怎么用、哪些【待补】不能编。下次 /intern-interview-qa

Categories