为什么选择这个主题
2026年初,我决定认真准备系统设计面试。
作为一个有五年经验的后端开发,我的日常工作是写业务代码、调API、改Bug。系统设计能力一直是短板——分布式缓存怎么选型、一致性哈希怎么实现、数据库分片策略如何设计,这些我都知道皮毛,但从来没系统学过。
按传统路径,我该买几本大部头书啃:《设计数据密集型应用》(DDIA)、《系统设计面试》、《分布式系统概念与设计》……但作为一个有全职工作的人,我实在没信心看完。
这时候一个念头冒出来:为什么不试试让AI当我的老师?
与其让AI帮我写代码,不如让它帮我构建知识体系。
这篇文章就是这90天的真实记录——不是「5个最佳系统设计学习工具」,而是一个真实的学习实验:用AI主导的自学,到底靠不靠谱?
第一阶段:制定学习计划(第1-3天)
踩的第一个坑:AI不会帮你「制定」计划
我先跟ChatGPT说:「帮我制定一个90天的系统设计学习计划。」
它5秒给了一份完美计划:
| 阶段 | 内容 | 时间 |
|---|---|---|
| 第1-10天 | 基础概念(CAP、一致性哈希、负载均衡) | 每天2小时 |
| 第11-30天 | 存储系统(MySQL分片、NoSQL选型、缓存策略) | 每天2小时 |
| 第31-60天 | 设计实践(短链接、聊天系统、新闻流) | 每天2小时+实战 |
| 第61-90天 | 高级主题(微服务、事件驱动、分布式事务) | 每天2小时 |
看起来完美对吧?
但真正执行的时候我才发现问题:这计划是基于「理想人类」制定的,不是基于「我」制定的。
ChatGPT不知道我的基础水平(它默认我懂所有前置知识),不知道我的时间弹性(每天固定2小时对打工人不现实),更不知道我的学习风格(我学东西需要先动手再理解理论)。
转机:让AI先帮我「做检测」
第三天我换了一种方法。我告诉ChatGPT:
「我是一个后端Java开发,工作中用过Redis和MySQL但不深入。现在用选择题的方式测试我的系统设计基础知识,每次10道题,根据我的正确率动态调整难度。」
这个对话持续了3天,每天测10道题。结果让我汗颜:
- 基础概念(CAP、BASE):60%正确率
- 数据库相关(分片、索引、复制):70%正确率
- 分布式理论(一致性、共识算法):30%正确率
- 系统设计案例(设计XX系统):20%正确率
测试完了,我让AI给我一份「针对我的薄弱环节」的学习计划。
这次生成的计划完全不同了:
第1-20天:主攻分布式理论(我最薄弱的部分)
- 第1-5天:CAP定理与BASE理论(配合具体案例)
- 第6-10天:一致性模型(强一致性 vs 最终一致性)
- 第11-15天:共识算法(Paxos/Raft的核心思想)
- 第16-20天:分区容错与脑裂问题
第21-40天:数据库深度
- 重点:MySQL主从复制、分库分表、NoSQL选型
- 穿插练习:每3天设计一个数据存储方案
第41-70天:实战设计
- 每周拆解2个大厂经典设计案例
- 用白板画架构图,再用AI校验
第71-90天:冲刺刷题
- 每天模拟1个系统设计面试题
- AI扮演面试官,我做presentation
这个计划明显务实多了——它知道我需要补什么。
核心教训:不要让AI直接给你「最优计划」,先让它了解你的真实水平。AI不认识你,你得帮它认识你。
第二阶段:学习方式的摸索(第4-30天)
我尝试过的三种学习模式
模式A:让AI讲给我听(第4-10天)
用法:「解释一下Raft协议,举一个具体的例子」
效果:⭐⭐⭐
ChatGPT的讲解逻辑清晰,举例生动。但有个致命问题——听完就忘。
我发现自己处于「被动接收」状态,跟看视频课一样,当时觉得懂了,过两天就忘干净了。
模式B:让AI出题我做(第11-18天)
用法:先自己看完资料,再让AI出10道练习题检验理解。
效果:⭐⭐⭐⭐
这个模式好很多。比如学完一致性哈希之后,AI出了这么一道题:
「一个分布式缓存系统有5个节点,现增加2个节点。使用一致性哈希,平均需要迁移多少数据?不使用一致性哈希,需要迁移多少?」
这道题逼着我真正理解了「最小化数据迁移」的含义。
模式C:费曼学习法 + AI(第19-30天)
用法:学完一个概念后,用自己的话讲给AI听,让AI当我的学生。AI会指出我讲错的地方和遗漏的关键点。
效果:⭐⭐⭐⭐⭐
举个例子,学完「分布式事务」后,我花20分钟给AI讲了一遍二阶段提交(2PC)和三阶段提交(3PC)的区别。
AI听完后的反馈让我印象深刻:
「你讲2PC的阶段基本正确,但有一个关键遗漏:你没提到协调者单点故障的问题。在实际系统中,协调者宕机后所有参与者会一直持有资源锁,可能导致系统完全不可用。这就是为什么大多数现代系统更倾向于Saga模式而不是2PC。」
这个反馈让我记住了2PC的致命弱点——如果只是看书,我可能不会对「协调者故障」这个场景有如此深刻的记忆。
从第19天开始,我固定了学习流程:
- 读一段资料(书/文章/AI生成的概述)
- 用自己的话讲给AI听
- AI挑错 + 补充
- 根据反馈修正自己的理解
- AI出题检验
这个流程的核心是:AI不负责「输入」,只负责「校验」。输入还是得我自己来。
第三阶段:实战练习(第31-60天)
用AI模拟「白板设计」
系统设计面试的核心环节是白板设计——给你一个需求,让你画出系统架构并解释设计决策。
这个环节最难练习,因为你需要一个人听你讲、给你反馈。我以前试过找朋友模拟面试,但大家都很忙,一周能练一次就不错了。
AI完美解决了这个问题。
我的练习流程:
- Ask AI:「作为面试官,给我一个系统设计题」
- AI出题:比如「设计一个短链接服务」
- 我用15分钟在纸上画架构图
- 我对着AI「讲解」我的设计,就像在面试一样
- AI给我打分并给出改进建议
第一个练习:设计短链接服务
我的设计:
- 用MySQL存储URL映射
- Base62编码生成短码
- 加一层Redis缓存
AI给我打了7/10,指出了三个问题:
- 「你的短码生成是自增的,任何人都可以遍历你的数据库枚举所有短码。考虑用哈希截取+冲突检测」
- 「没有考虑短码的过期策略。存量的短码越来越多,查询性能会下降」
- 「你的架构图中缺少监控和告警组件,生产环境这些不可少」
这三个问题我确实一个都没想过。那20分钟的「面试」比我读一周书的收获还大。
后续的练习:
| 题目 | AI评分 | 主要改进点 |
|---|---|---|
| 短链接服务 | 7/10 | 短码生成安全性、过期策略、监控 |
| 聊天系统 | 6/10 | WebSocket连接管理、消息顺序保证、离线消息 |
| 新闻Feed流 | 6/10 | 推拉模式选择、热点处理、冷启动 |
| 电商购物车 | 8/10 | 并发冲突、一致性、持久化策略 |
| 视频推荐系统 | 5/10 | 特征工程、冷启动、AB测试 |
| 分布式KV存储 | 5/10 | 一致性模型选择、数据分布、容错 |
每次练习后,我会把AI的反馈整理成笔记。一个月下来,积累了6个完整的设计案例笔记。
遇到的问题:「AI的答案太完美了」
用AI做面试练习有个我没想到的副作用:AI给出的「标准答案」过于完美,容易让我产生「我也可以」的错觉。
比如我让AI设计一个「推荐系统」,它给了一个包含7个模块、4层缓存、3个模型的架构。看的时候觉得「哇塞太棒了」,但冷静下来一想——这TMD是YouTube级别的架构,一个面试问的是「可扩展的MVP设计」,不是「全量生产方案」。
解法:在Prompt里加入约束
我开始在开始之前加一句:
「请以中级工程师的身份回答,给出能应对百万日活、可横向扩展的实用架构,不要包含过于复杂的组件。」
加了这句之后,AI输出的东西务实了很多,也更有参考价值。
第四阶段:冲刺刷题(第61-90天)
最后一个月,我让AI扮演面试官模式刷题。
每天流程:
- AI随机出题(从题库里抽)
- 我计时45分钟,画架构图+写关键方案
- AI评分 + 逐项反馈
评分维度:
- 功能性覆盖(需求的完整性):30%
- 架构合理性(组件选型+模块拆分):25%
- 可扩展性(是否考虑到流量增长):20%
- 深挖回答(特殊场景的应对):15%
- 沟通表达(逻辑清晰度):10%
到第75天左右,我的平均分从最初的5分提高到了7.5分左右。
最有价值的几次反馈:
反馈1:关于容量规划
AI指出:我设计的每个系统架构看起来都「技术正确」,但缺乏量化的容量规划。「你说用Redis缓存热点数据,缓存的QPS预算是多少?内存需要多大?这些数字才是面试官想听的。」
这一点说到点子上了。我开始在每份设计中加入具体的数字:预估QPS、存储容量、带宽需求、节点数。
反馈2:关于权衡讨论
AI说:「你每次都能给出一个方案,但很少讨论为什么不用其他方案。面试官想听的是你的设计决策过程——你知道哪些选项,为什么选了这个而不是那个。」
从那以后,我每讲一个决策,都会说「这里我考虑了ABC三个方案,选A因为……不选B因为……」
反馈3:关于系统边界
AI指出:「你的设计里每个组件都独立运行良好,但你没有画清楚各组件之间的接口和数据流。接口定义是系统设计中最容易被忽略但最关键的部分。」
第90天:我学到了什么
知识层面的进步
- 分布式理论:从「知道CAP是啥」到「能讲清楚为什么大部分系统选AP+最终一致性」
- 数据库:从「用过MySQL分表」到「能设计分库分表方案+选一致性哈希」
- 缓存:从「会用Redis set/get」到「能讨论缓存穿透/击穿/雪崩的应对策略」
- 消息队列:从「用过Kafka发消息」到「能对比Kafka/Pulsar/RabbitMQ的适用场景」
- 微服务:从「写过微服务代码」到「能设计服务拆分策略+API网关选型」
对「AI辅助学习」的重新认识
AI做到的事:
- ✅ 提供即时反馈(这是传统学习最缺的)
- ✅ 模拟面试场景(这是最稀缺的练习资源)
- ✅ 指出盲区(AI能看到你没意识到的知识缺口)
- ✅ 适应性难度(根据测试结果动态调整)
AI做不到的事:
- ❌ 替代基础阅读(深度知识还得看书)
- ❌ 保证准确性(AI会编造错误的「事实」)
- ❌ 提供真实压力(跟真人面试官完全不同)
- ❌ 评判方案的「商业合理性」(AI不知道业务背景)
我保留的核心工作流
现在我的学习方式已经固定下来:
阅读资料(书/文档) → 用自己的话讲给AI听 → AI挑错补充 → 出题检验 → 错题复盘
这个流程把AI定位为「学习教练」而不是「知识搬运工」。AI不帮我省「学」的时间,而是帮我提高「学」的质量。
几个值得说道的踩坑
坑1:AI编造的技术「事实」
有次我问Claude关于「DynamoDB的全局二级索引写性能」,它详细解释了一堆技术细节,看起来非常专业。后来我查AWS文档发现其中两条完全是错的:
- 「全局二级索引的写入吞吐量和基表共享」——其实GSI有自己的写入容量
- 「GSI默认是最终一致性」——实际上GSI支持强一致性读
如果我把这两条「事实」带进面试,会被面试官当场识破。
教训:AI说的一切技术细节,重要的一定要查官方文档验证。
坑2:过度追求「标准答案」
刚开始练习时,我总想让我AI给一个「标准设计」,然后背下来。但实际面的不是标准题,而且面试官根本不care「标准答案」,他们想听「你的思考过程」。
教训:AI是练过程的,不是背答案的。
坑3:把AI当作唯一学习渠道
有段时间我完全依赖AI讲知识,不看任何书。结果发现知识是「碎片化」的——AI能讲清楚「一致性哈希是什么」,但讲不清楚「为什么一致性哈希在Dynamo和Cassandra中实现方式不同」。这种深层的背景知识,只有读论文和源码才能理解。
教训:AI是「导航」,不是「地图」。它指路很好用,但没有地图你永远不知道旁边有别的路。
坑4:高估了「面试练习」的掌握程度
我用AI练了30次模拟面试,自我感觉良好。但第一次正式模拟面试(跟真人),直接翻车——紧张导致大脑空白,讲话结巴,之前想好的框架全忘了。
教训:AI演练跟真人演练不是一回事。AI不会给你紧迫感,不会在你卡壳时给你压力。
最终评估
90天下来,我觉得这个学习实验的效果是:
实际能力提升:6/10
知识量确实增加了,但离「真正的系统设计能力」还有距离。真正的能力需要在真实项目中积累。
AI价值评估:8/10
作为学习辅助工具,AI的表现超出预期。特别是「费曼学习法+AI校验」这个模式,效果非常好。
面试准备效果:5/10
AI模拟帮助很大,但不能替代真人模拟。实际面试中的沟通技巧、临场应变这些,AI模拟不太够。
给也想用AI学习的人
如果你也想用AI辅助学习,我的建议是:
- 先检测,再计划:让AI先测你的基础,再有针对性制定计划
- AI是教练,不是老师:主动学习(讲给AI听+AI出题)比被动学习(AI讲给你听)效果好3倍
- 交叉验证:AI提供的信息,关键内容一定要查官方文档确认
- 保持手感:AI学完了,还要找真人练习。AI不能替代真实的人类互动
- 不要依赖AI的记忆:自己的笔记永远比AI的对话记录可靠
接下来
90天的学习计划结束了,但系统设计的学习还在继续。我现在每隔一周让AI出1道新题保持手感,同时开始读DDIA的原著——有了AI帮打的基础,读书的效率高了很多。
下一步的计划是:把学到的知识用在真实项目中。我准备把家里的小项目(一个个人博客)从单体架构重构为微服务——当然,这次我不让AI帮我写代码,我要自己动手。
这篇文章写于2026年5月,所有学习方法和建议基于个人真实体验。如果你也在用AI自学,欢迎分享你的经验。
💬 评论
0