101 lines
4.0 KiB
Markdown
Executable File
101 lines
4.0 KiB
Markdown
Executable File
# 技术面题库
|
||
|
||
适用:研发 / 算法 / 数据 / 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 内存模型 + GC(Java 岗)/ 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. **画图 / 写代码**:白板题写代码先讲思路,再写,最后跑测试用例
|