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