面试复习系列总览
这组文章怎么读、每篇解决什么问题,以及写这组内容时我刻意保留的边界。
面试复习系列总览
这组东西不按教材顺序来,也不想写成那种“看起来很全,其实不好讲”的面试模板。更实际一点的做法是先抓主线,把自己最容易讲散的几块重新串起来。
我最开始复习时的问题不是没见过这些知识点,而是每个点都知道一点,真要开口的时候又接不上。C++ 能说对象模型,也能说智能指针,但一问到资源管理和并发,又容易答成两摊;OS 也是一堆名词在脑子里飘,连不成一个顺的解释。
最早只想写两条主线:
C++:对象怎么活,资源怎么管,多线程代码为什么会出事。OS:程序怎么变成进程,地址空间和文件描述符分别管什么。
写到后面发现,面试里躲不开的还有一摊后端八股和算法模板,就顺着同一套思路往下补:每篇都不追求全,先把最短那条能开口的回答链立住,再往里填细节。现在目录里的东西大致分四类。
主线
这几篇是 roadmap,写的是怎么把一串名词连成一句话。
- C++ 面试复习:对象模型、资源管理与并发主线 —— 对象模型、值类别、移动语义、RAII 与智能指针、多线程内存模型,落到“资源归谁管、并发哪里会错”。
- OS 面试复习:进程、地址空间与文件系统主线 —— 程序怎么变成进程、虚拟内存和页表、文件描述符和系统调用,落到内核对象和实际行为。
- CUDA / HPC 面试复习:从执行模型到性能分析 —— block / warp / shared memory / occupancy 这些名词之外,怎么回答“程序慢在哪、怎么定位”。
后端八股
这几篇是 crash,口吻偏“这份笔记整理……”,按主题把高频点摊开。
- Go 后端复习笔记:从语法到工程实践 —— 语法、接口反射、并发模型、内存管理,再到 context / net/http / json 和测试部署,用 redcart 电商项目串起来。
- Redis 核心复习笔记 —— 数据结构原理与场景、RDB/AOF 持久化、主从与哨兵、Cluster、事务与分布式锁、缓存穿透击穿雪崩。
- RabbitMQ 与消息队列复习笔记 —— AMQP 模型、交换机路由、消息可靠性、死信与延迟队列、集群高可用与调优。
- PostgreSQL 核心复习笔记 —— 进程架构、MVCC、索引、WAL、事务隔离、VACUUM、流复制与高可用。
- 分布式与云原生复习笔记 —— CAP / BASE、分布式事务与幂等、分布式 ID、Raft / Paxos、负载均衡、Kubernetes 与服务网格。
- OpenViking 上下文数据库复习笔记 —— viking:// 文件系统范式、L0/L1/L2 分层加载、目录递归检索、三种上下文类型,以及 Go 客户端/Agent 的实现八股。
算法模板
刷题用,把一类题的板子和典型题码在一起。
- 动态规划算法题复习笔记 —— 线性 DP、二维路径、子序列、背包、字符串、股票,按状态定义和转移模板展开。
- 图论算法题复习笔记 —— 邻接表建图、BFS/DFS、网格图 dx/dy、拓扑排序、并查集、最短路。
项目复盘
- AgentOps 故障诊断平台复习笔记 —— 基于 Go/Gin + CloudWeGo Eino 的多 Agent 故障诊断平台,ReAct、Tool Calling、MCP、GraphRAG、可观测性与 RAG 评估。
边界
这些都不会写得特别全,更像是复习时给自己留的“开口版本”:先把最短那条回答链立住,后面再补细节。不然一上来就把所有定义、分类、例外情况全塞进去,最后反而什么都记不住。
后面如果继续写,大概率还是沿着这个思路拆小一点,比如单独写 fork/exec、mmap、shared_ptr 的代价。这些东西平时都见过,但真到面试里其实很容易讲空。