一、备考前期:先摸透方向,再打牢基础
说实话,刚开始准备系统架构师考试时,我挺懵的 —— 这毕竟是高级资格证,不是背背知识点就能过的。后来才慢慢清楚,它核心考的是你会不会做架构设计、懂不懂足够多的技术,还有能不能把项目经验用在答题上。
我第一步先花了整整一周啃考试大纲,把要考的模块都列出来:计算机网络、操作系统、数据库这些基础肯定有,重点是系统架构设计这块,像微服务、分布式架构这些目前常用的,还有性能优化、信息安全、项目管理也不能漏。后来发现,架构设计、技术选型和案例分析这三块分值特别高,后面备考就特意多往这上面花时间。
选资料的时候我没贪多,觉得精准比啥都强。官方那本《系统架构设计师教程》是必须看的,我前前后后翻了 3 遍 —— 第一遍就大致过一遍,知道每个章节讲啥,搭个知识框架;第二遍就抠细节,列如每种架构模式适合啥场景、中间件该怎么选,这些容易考的点都标出来;第三遍就是补漏,之前没看懂的地方再回头琢磨。
历年真题也特别重大,我找了近 8 年的题,做完才发现规律:案例分析总考架构怎么优化、性能瓶颈怎么解决、选技术的时候怎么说理;论文就更实在了,得结合自己做过的项目,讲清楚架构设计的思路和遇到的问题。另外,我还加了本《系统架构设计师考试全程指导》当辅助,有些抽象的概念看教材看不懂,看这本就清楚多了。平时没事也会刷 InfoQ、架构师之路这些博客,了解下云原生、Serverless 这些新趋势,不然考试碰到新名词就慌了。
基础阶段我大致花了 2 个多月,主要就是把知识点过一遍,再串成体系。我习惯用思维导图,列如 “架构设计” 这块,从架构模式(分层、微服务、事件驱动这些)、设计原则(高内聚低耦合这些老规矩)、设计工具(UML 图、架构图怎么画)到实际案例,一个个列出来,这样记起来特别清楚。
不过我也有薄弱的地方,列如信息安全和项目管理,光看书总记不住。后来就找了专项的视频课,跟着老师学,才慢慢清楚 —— 不能只记 “是什么”,得搞懂 “为什么”。列如加密算法,不光要知道有哪些,还得清楚传数据的时候用哪种、存数据的时候又该用哪种,这样考试才会答。
二、强化阶段:盯着核心考点,多做题练手
基础打牢后,就该进入强化阶段了,我大致用了 1 个多月,主要就是刷真题,再针对三科分别突破 —— 毕竟综合知识是客观题,案例分析和论文是主观题,考法不一样,得用不同的法子准备。
1. 综合知识:广撒网,抓重点
客观题考的面特别广,从计算机基础到技术标准,甚至还有法律法规,想全记住不太现实。我当时的办法是每天刷一套真题的客观题,掐着时间做,模拟考试的节奏,免得考试时做不完。
做错的题我都整理在一个本子上,写上错在哪、对应的知识点是啥,每周日晚上花 1 个小时回顾一遍,慢慢错题就少了。实则高频考点就那么些,列如微服务、SOA、分层架构各自的特点和适用场景,消息队列、缓存、负载均衡这些中间件怎么选,响应时间、吞吐量这些性能指标,还有加密、认证这些安全技术,多记几遍就熟了。
像法律法规、技术标准这种偏记忆的,我没硬背,就利用碎片时间 —— 上班通勤路上、午休前,拿手机记几个关键点,列如《著作权法》里软件著作权保护多久、怎么算侵权,理解透了比死记好得多,考试时能选对就行。
2. 案例分析:学会拆题,答题有逻辑
案例分析是我最头疼的,刚开始拿到题根本不知道从哪下手 —— 题目里给一堆项目场景,一会儿说系统性能不行,一会儿说架构有问题,让你分析还得给方案,特别考验能力。
后来我慢慢总结出规律,案例分析常见的就几种题:要么让你优化架构,列如系统并发太高扛不住了怎么改;要么让你选技术,列如是用单体架构还是微服务,得说清楚理由;要么就是调性能,列如数据库查得慢、接口响应超时怎么解决;还有评估风险,列如项目里可能遇到的技术风险、成本风险怎么规避。
我对付这些题的办法就是先找问题核心,再给方案,最后说为啥这么做。列如题目里说 “用户量突然涨了,高峰期接口要等 5 秒才响应,数据库 CPU 都跑到 90% 了”,那问题肯定是数据库压力太大了,解决方案就可以写加 Redis 缓存、分库分表、读写分离,然后再解释 ——Redis 能扛高并发,存热点数据就不用老查数据库;分库分表能减少单库数据量,查得就快了。
答题的时候必定要分点,别堆在一起写,阅卷老师看着累,也容易漏给分。还有,尽量用专业术语,列如 CAP 理论、BASE 理论、熔断降级这些,写上去显得你懂行,但也别瞎用,得用对地方。
3. 论文:必定要结合实际项目,逻辑别乱
论文这块,我刚开始总怕写不够字数,后来发现关键是得有真东西 —— 得结合自己做过的项目,讲清楚架构设计的过程、遇到的难题和怎么解决的,2000 字实则不难写。
我提前准备了两个自己熟的项目,一个是分布式电商系统,一个是企业级 SaaS 平台,围绕这两个项目,把可能考的主题都过了一遍,列如 “微服务架构怎么落地”“分布式系统怎么保证高可用”。准备素材的时候,我会把项目背景写清楚 —— 列如做这个项目是为了满足啥业务需求、有多少用户用;架构设计的目标也得明确,列如要扛住多少并发、保证多久不宕机;选架构的时候,也得说说为啥不选别的,列如当时为啥不用单体架构而用微服务;核心技术实现也得写细,列如服务怎么注册发现、配置中心怎么搭、分布式事务怎么处理;还有遇到的问题,列如微服务拆太细导致调用链太长,最后是怎么解决的;最好再加点数据,列如优化后响应时间从 3 秒降到 500 毫秒,并发量涨了 3 倍,这样更有说服力。
写论文的框架我也固定下来了:开头先介绍项目背景,说清楚架构设计的重大性;然后写架构设计的目标和原则,列如当时项目要求满足百万级并发,还得保证 99.99% 可用;接着讲架构怎么选、怎么设计,画个架构图、说下微服务怎么拆、用了哪些技术;再重点写核心技术怎么实现、遇到的难题怎么解决;然后说优化后的效果;最后总结下经验,再提提未来能怎么改善。
考试的时候写论文有 120 分钟,我一般会留 20 分钟检查,免得有错别字或者逻辑不通的地方。记住别光说理论,必定要结合项目,不然写得再花也拿不到高分。
三、冲刺阶段:模拟考试找感觉,别慌
考前一个月就是冲刺了,我每周会完整模拟一次考试,严格按考试时间来 —— 上午 9 点到 11 点半做综合知识,下午 1 点半到 3 点做案例分析,3 点 20 到 5 点 20 写论文,就跟真考试一样,主要是练节奏,免得考试时时间不够用。
这个阶段我就不抠难题了,综合知识主要看错题本和高频考点,案例分析就把常见的答题模板再顺一遍,提高答题速度;论文就把准备好的素材和框架再熟悉下,列如考高可用就调高可用的素材,考安全性就换安全性的,保证不管考啥主题,都能快速上手写。
还有心态也很重大,我备考后期有时候会焦虑,觉得时间不够用,知识点记不住。后来就每天抽半小时跑跑步,或者听听歌放松下,晚上也不熬夜,保证第二天有精神。实则到了考前,别想太多,信任自己之前的积累就行,考试时遇到不会的题别死磕,先把会做的题做完,回头再琢磨,不然会的题也没时间做了。
四、考试当天:别慌,按自己的节奏来
1. 综合知识:快准狠,别纠结
客观题有 75 道,时间挺紧的,我当时拿到卷子先快速扫一遍,会做的题直接选,不会的就标个记号,先把有把握的题做完,不然在一道题上耗太久,后面就没时间了。
审题的时候必定要仔细,我之前模拟的时候就犯过傻,题目问 “不正确的是”,我顺手选了个正确的,亏得后来检查出来了。遇到不确定的题,就用排除法,先把明显错的选项去掉,剩下的再蒙,正确率能高不少。
2. 案例分析:先看懂题,再有条理地答
拿到案例题,我会先通读一遍,搞清楚题目到底要问啥,然后再带着问题回头找关键信息,列如系统架构图、性能指标、业务需求这些,都可能是答题的关键点。
答题的时候就按 “分析问题→给方案→说理由” 的顺序来,分点写清楚,别写一大段。列如问怎么解决高并发问题,就一条一条列:1. 加 Redis 缓存,理由是……2. 分库分表,理由是…… 这样阅卷老师一眼就能看到得分点。还有,别超时,每个案例尽量控制好时间,别由于一道题影响后面的。
3. 论文:别偏题,结构要清楚
写论文前,我会先花 10 分钟审题,确定主题,列如题目是 “论分布式系统的一致性架构设计”,就赶紧在草稿纸上列个提纲:开头介绍项目→一致性设计的目标→选 Paxos 还是 Raft 算法→遇到的问题(列如网络延迟、节点故障)→怎么解决→效果怎么样→总结。
写的时候必定要紧扣主题,别写着写着就跑偏了,每个部分都得围绕主题展开。字数也得注意,别太少也别太多,2000 字左右刚好。还有卷面要干净,字写得清楚点,不然老师看不清楚也会扣分。
五、总结:想过考试,得懂还得会用
实则考完才发现,系统架构师考试真不是考你记了多少知识点,而是看你会不会用架构思维解决问题,能不能把项目经验转化成答题思路。备考的时候别死记硬背,得搞懂每个知识点的本质,知道它在实际工作中怎么用,结合自己做过的项目去理解,这样记得牢,答题也有东西说。
还有,真题真的很重大,多做几套就能摸透出题规律,知道哪些是重点,哪些可以稍微放一放。
最后想说,备考这事儿真得坚持,我前前后后准备了小半年,中间也有想放弃的时候,但咬咬牙就过来了。只要方向对了,计划合理,一步一步来,多复盘多调整,肯定能过。希望我这些经验能帮到正在备考的朋友,祝大家都能顺利拿证!