技术成长周记03|在面试中照见短板,从八股到工程落地
写在前面
这周最大的转折点,是一场面试。
虽然只是一家深圳的小公司,但面试官问得非常细:
- 从 HashMap 到红黑树
- 从 Redis 缓存三兄弟到双写一致性
- 从 Lua 脚本到 Java 与 Python 跨语言协作
- 从 AI 上下文存储到 Docker 部署
一场面试下来,我清晰地看到了自己的知识盲区:
- 红黑树实现原理答不上
- 数据库锁含糊其辞
- AI 对话上下文调试说不清
但我反而很庆幸——
这些问题现在暴露,总比春招终面时暴露要好。
一、本周完成
1️⃣ 项目实战推进
知学汇项目(接近收尾)
完成:
项目即将收尾,下周准备转入数据结构猛攻阶段。
- 优惠券发放功能
- 兑换券生成功能
-
实现排行榜功能:
- 使用 Redis SortedSet
- 底层:跳表 + 哈希表
同时输出一篇:
👉 RESTful API 设计博客。
AI项目(智答)工程化升级
本周重点:让 AI 项目更像“生产系统”。
完成改进:
稳定性
- 引入全局异常拦截
- 区分状态码,避免敏感信息泄露
可观测性
- 引入 Python 结构化日志
- 新增审计日志:
- 用户登录
- 文档删除
产品体验
- 前端修复嵌套问题
- 普通问题不再展示参考来源 → 降低信息噪音
- AI 可通过 userID 获取用户名 → 生成个性化回答
项目正在从「能跑」走向「能上线」。
2️⃣ 八股与基础补强
-
Java集合:
-
HashMap:数组+链表+红黑树,阈值8转树、6转链,线程不安全。 -
ArrayList:动态数组。 -
TreeMap:红黑树,有序,不允许null键。
-
-
MySQL:
-
事务ACID,
undo log(原子性/一致性),redo log(持久性)。 -
隔离级别:读未提交、读已提交、可重复读(默认)、串行化。
-
索引最左匹配原则。
-
-
分布式事务:XA、TCC、本地消息表,Seata框架。
-
分布式锁:Redisson实现锁续约、红锁。
-
数据库锁:共享锁、排它锁、悲观锁。
-
海量数据存储:分区、分表、分库(主从)。
-
IoC & AOP:Spring核心概念。
3️⃣ 面试实战复盘
-
八股部分:
-
HashMap底层原理 ✓
-
红黑树实现原理和优点 ✗(自己挖坑没填上)
-
IoC和AOP ✓
-
Redis缓存三兄弟(穿透、击穿、雪崩) ✓
-
数据库锁 ✗(转而讲索引最左匹配原则)
-
Mybatis-plus vs Mybatis ✓
-
双写一致性:答延迟双删 ✓
-
-
AI部分:
-
使用过哪些AI工具,什么是MCP(被推荐了一个MySQL的MCP) ✓
-
如何让AI根据接口实现代码 ✓
-
-
项目部分:
-
Python工程化相关知识 ✓
-
高并发点赞:Lua脚本的优点和作用 ✓
-
Java与Python服务如何连接 ✓
-
跨语言数据一致性:分布式锁 ✓
-
Redis存储上下文对话:怎么调试?存多少轮? ✗(细节说不清)
-
Docker部署 ✓
-
4️⃣每日运动
- 4/1:5km
- 4/2:5km
- 4/4:5km
- 4/5:5km
二、本周收获(核心)
1️⃣ 面试是最高效的学习催化剂
HashMap 我能讲。
红黑树我“以为能讲”。
直到被追问:
红黑树为什么比 AVL 更适合 HashMap?
我卡住了。
面试后立刻画旋转图,才真正理解。
追问,是检验理解深度的试金石。
2️⃣ 延迟双删背后的工程细节
问题:
为什么要“延迟”?
答案:
等待 MySQL 主从同步完成,避免读到旧数据。
这一刻我意识到:
所有工程方案,都是对极端情况的妥协。
3️⃣ 跨语言协作的真实工程经验
Java + Python:
- HTTP + RESTful 通信
- 分布式锁保证一致性
面试官提醒:
必须考虑锁超时与重试。
这是我之前忽略的风险点。
三、遇到的问题
-
红黑树:知道但不深入
面试时被问到红黑树优点,我只答了“自平衡、查找快”。但面试官追问“比AVL树好在哪?”我答不上来。后来复习:红黑树不追求绝对平衡,插入删除旋转次数少,更适合写多读少的场景。
-
数据库锁:完全空白
面试官问“数据库锁”,我直接跳过讲了索引。这是明显的知识漏洞。周末专门补了:行锁、表锁、间隙锁、Next-Key Lock,以及MVCC如何与锁配合。

-
Redis上下文对话存储:缺乏调试经验
项目里用Redis存储对话上下文,但面试官问“怎么调试?存多少轮?”我答得含糊。回来后梳理:可以设置过期时间(如30分钟),每轮对话存一个hash,key为用户会话ID,field为轮次,value为消息体。调试可用redis-cli --monitor实时查看。这是需要实际踩坑才能积累的经验。 -
MCP概念第一次听说
面试官推荐了MySQL的MCP(Model Context Protocol),我完全不了解。面试后查了:MCP是一种让AI模型与外部工具交互的协议。这提示我需要关注AI工程化的前沿动态。
四、本周不足
-
知识体系不够网状
红黑树、数据库锁、分布式事务……这些点单独背了,但没串起来。比如:MySQL的间隙锁和Redis的分布式锁,都是解决并发问题,但适用场景完全不同。下周要画知识图谱,把相关概念连成网。 -
数据结构与算法学习依然滞后
本周只做了2道LeetCode简单题,远低于目标。知学汇项目结束后必须严格执行“猛攻数据结构”计划。 -
面试准备缺乏模拟
没有提前模拟面试,导致临场被问红黑树时紧张卡壳。下周开始每周至少一次自问自答录音复盘。
五、下周计划
-
项目收尾与转型
-
完成知学汇项目收尾,写项目总结文档。
-
猛攻数据结构:数组、链表、栈、队列、树(二叉搜索树、AVL、红黑树)、图(BFS/DFS),每天至少1道LeetCode,周末做2道中等题。
-
-
知识补强
-
红黑树专题:手写旋转逻辑,对比AVL树,输出一篇学习笔记。
-
数据库锁专题:行锁、间隙锁、MVCC,结合MySQL实战案例。
-
分布式事务深度:画XA、TCC、本地消息表、Seata AT模式的对比表格。
-
Redis上下文存储最佳实践:整理会话管理方案,包括过期策略、轮次限制、调试方法。
-
-
习惯保持
-
每天五公里跑步。
-
每天写日记,记录一个技术点或面试反思。
-
总结
这周是一场“实战体检”。一场面试把我从舒适区拉了出来——那些自以为掌握的知识点,在追问下纷纷露出破绽。但正是这些破绽,让我看清了下一步的方向:从“背结论”转向“懂原理”,从“会使用”转向“知权衡”。
技术成长从来不是线性的。这周我经历了面试受挫、项目推进、写作输出、跑步坚持,每一件事都在提醒我:春招是一场持久战,比的不是谁背得熟,而是谁补得快。红黑树没搞懂就去画旋转图,数据库锁不会就去查行锁间隙锁,Redis上下文说不清就去敲命令调试——行动是最好的复盘。
下周,知学汇项目收尾后,我将全力攻克数据结构和算法。保持节奏,保持饥饿,继续前进。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)