软考高级架构师备考记录
- 记录
我参加了 2024 年上半年(5 月)的软考(全称:全国计算机技术与软件专业技术资格(水平)考试),通过了高级资格「系统架构设计师」的考试。本文记录我的备考过程。
个人背景
科班 CS 本科,参加工作 2 年,大厂底端程序员。
参加软考的原因
如果回看我的 23年总结&24年展望 的话,会发现当时我已经把通过软考作为 24 年的个人目标之一了。其实我接触软考是 23 年 9 月,但是了解信息有些延迟,当时已经过了报名窗口,所以只能再等半年。当时我并没有非常清晰的动机,以下列出的原因只是站在考完的时间节点上反向硬找出来的:
- 学生时代的考试思想延续:作为中国学生,考试思维估计是我思想中比较难剥离干净的一部分了,核心是将各类难以量化的目标想方设法量化,并且制定明确的验收标准(例如通过考试)来催促自己达成目标
- 学习架构设计:虽然我接受了科班教学,也做过不少项目(无论是学生时代还是工作之后),但是大部分情况下,架构要么是直接给出(例如更高级的同事已经设计好了),要么是自己瞎整(例如各类课程项目),没有系统性学习过;既然刚好有”系统架构设计师“这个资格科目,作为考试也有系统性的知识梳理,不妨以考促学
- 为未来发展留点余地:虽然目前在私企工作用不上,但是未来无论是跳槽国企还是润其他国家,软考的证书认可度还是可以的(e.g. 软考在日本永居打分接受的证书列表中)
- 退税:考过了的话可以
退税 3600 元(8/7 评论指正:是 3600 元的退税额度,实际退税金额取决于税率)(每个税收年度可以在继续教育类目下认证一个资格类证书) - 听起来比较厉害:毕竟叫做高级,能满足下虚荣心 当然每个人可能还有其他的原因(例如落户、国企内评职称、所在地域有优惠政策…),不过我自己的原因大致就是以上这些了。
但决定参加前,也必须要了解软考的局限性:软考本质上还是个八股文考试,有很大可能学了用不上(毕竟对于考生的工作年限是没有要求的);而且软考是水平考试而不是资格考试,做开发也没有任何资格壁垒(不像建筑)。
软考的考试内容
既然是考试,最重要的当然是考什么。好在这个问题并不难回答,看教材就好了。架构师的教材名叫《系统架构设计师教程(第2版)》,大体上可以分为两个部分;第一部分是综合知识,其中一些章节接受过科班 CS 教育的人稍作复习即可(计算机系统、信息安全、数据库设计),另外一些章节则之前学的不够深入或者是首次接触,需要学习(软件工程、架构设计、质量属性、软件可靠性、架构演进);第二部分是各类架构的详细介绍,总共划分了八大架构(信息系统、层次式、云原生、SOA、嵌入式、通信系统、安全、大数据),每个架构内会有概述、设计、优缺点、适用场景、示例等。
和考试内容同等重要的,还有考试形式。软考高级资格的考试是 3 个科目:综合知识(单选,75题)、案例分析(简答,1必选+4选2)、论文(4选1,2k字+)。(是不是有种高中语文的感觉了?)每个科目满分 75 分,及格线是 45 分。所有科目都及格才能通过。其中综合知识和案例分析上午连着考,论文则是下午单独考。每个科目的考试时间都是 2 个小时。这其中综合知识和案例分析,基本上靠刷题可以覆盖掉,然而论文就是一个大坑了,毕竟2个小时时间,要完成选题、构思、写作、检查,而且字数还要求2k以上,如果没有训练过实在是比较困难。(顺带一提,23年下半年之前,软考是纸质考试,论文当然也是要手写的;好在23年下半年开始改为了机考,论文也可以打字作答了;真不敢想象之前的考生是如何考过的)。
备考资料
我认为比较有用的资料有:
- 书《系统架构师设计师考试 32小时通关》(作者:薛大龙):基本上是教材的精简版本,还带有简单的例题;初期可以先用这本书读一遍,建立下知识框架(软考官方教材不要买纸质书,又厚又重;找 PDF 就够了)
- 软考备考资料:https://github.com/xxlllq/system_architect;虽然 repo 里有些东西,但是大部分资源还是要付费后从阿里云盘获取;虽然这些资料自己逐个找也可以找出来,但是相对于花的时间和精力来说,花点小钱(¥20)一次找全还是划算的
- 小程序《软考达人》:刷题用(综合知识和案例分析);单纯刷题的话完全免费,不需要付费也不用加群
- B站视频课程(up 主:文老师软考教育):https://www.bilibili.com/video/BV1Dy4y1a71j;时间比较紧,就看了论文的两 P,对梳理论文结构很有帮助(e.g.十段式)
总体上,最必须的书 + 资料大概五六十元就可以拿下;是否要买课或者是报班就见仁见智了。
备考时间线
基本上备考时间只有 2 个月,核心的学习时间大概是 60 小时(18 小时读书建立框架、30 小时刷题、12 小时考前临时抱佛脚)。
- 报名:2024/3/25
- 建立框架:2024/4/4 ~ 2024/4/6,趁着清明假期,把 32 小时通关读了一边,顺带做了下书上的例题
- 综合知识刷题:2024/4,基本上是上班的地铁上刷题,一开始刷综合知识的选择题,到了4月底,基本上能保证在40分钟内完成且分数高于及格线了;这一阶段硬刷就是了,很多知识点都是边刷边熟悉的,错了也不用太担心,下次还会遇到的
- 案例分析刷题:2024/5,也是在上班地铁上,小程序的题库量比较少(120题左右),但是案例分析比选择复杂很多,所以可能一天只能刷个三四题;我自己的做法是先读题,自己想怎么回答,然后看参考答案,根据参考答案补全自己的答案(因为不方便用纸笔,基本上都是脑内过一下就完了)
- 考前抱佛脚:2024/5/24(考前一天);因为一些工作上的调整,5月开始每周的工作量都很大,周中已经很累了,周末也完全提不起精神去学习;眼看着马上就要考试了,报名费还挺贵的,这次没过还不知道是否有自信再来一次,思来想去还是考前请了一天假,去图书馆专心复习,能复习多少算多少吧;最后这一天从早9点一直学到晚上10点图书馆关门,虽然不确定学进去多少,但是至少心态上自信多了
- 错题整理:过了下之前刷题阶段的错题,一些知识点回到教材重新梳理知识脉络,编一些自己能记住的记忆口诀(例如 六大质量属性 APTSUM:A可用性 P性能 T可测试性 S安全性 U易用性 M可修改性)
- 看论文网课:说来惭愧,之前一直都没写过论文,于是先B站找了个网课看下(就是上面备考资料写的),了解了十段式(项目概要+正文概要+项目背景+项目组成+子题目回应+正文论点3+总结+不足)
- 写一篇论文:学完了论文结构之后,就立刻写了一篇试试看(不然一篇没写过上考场准完蛋,写一篇可能还有点盼头);题目是随便想的,考虑到 LLM 发展如火如荼,自己定了个《大语言模型和人工智能技术在软件系统开发中的应用》的题目;然后就努力花了 4 个小时憋出了第一篇论文,对照着论文网课还有其他资料中的论文范文又继续改了改;然后整理了所有押题的论文题目,想自己的项目怎么套上去
- 考前资料整理:把认为考前需要复习的内容(常错的知识点、案例分析套路、论文架构、自己瞎编的论文)拼成了一个文档打印出来,考前背诵用,也安心一些
- 考试:2024/5/25
- 综合知识:有些点忘了,有些完全没见过,但是好在之前刷的题够多,75 题中自己完全确定答案一定正确的就有 48 题,这部分应该是稳了
- 案例分析:必选题是质量效应树和微服务架构,开考前刚背过;4个自选题选了大数据(mongodb、nosql)和 UML 时序图,剩下的两个(嵌入式和分布式锁)感觉不太稳没敢选
- 论文:题目有模型驱动架构设计、单元测试、云上自动化运维、大数据lambda架构;刚好最近在做一些数据系统的工作,于是选了大数据lambda架构的题目;内容上虽然参杂了一些工作上的技术,但是主体大部分还是瞎编+课本知识的混合
- 查询成绩:2024/6/24,通过,综合知识 56,案例分析 52,论文 52;只能说运气很好,论文编的合判卷人口味了
- 领实体证书:2024/7/25
感受和建议
- 对于科班 CS,有实际开发经验的同学来说,这个考试并不算非常困难(10分最难的话,大概是7~8分的水平),但是依然要花时间准备(主要是刷足够多的题)
- 论文真的很看运气,本次是运气好,可选的题目里有一个和我最近的工作相关的题目;如果没有这个题目可能我就跪了;最好要掌握如何把自己做过的项目套到论文题目上
- 写作速度很重要,论文的 2 小时我基本上前 5 分钟在选题和构思,后面就一直在写了,结束前 2 分钟才完稿,时间非常紧张
- 如果你是学生,有比较多的空闲时间,不妨去考下试试看,反正也不要求工作年限
和正文无关的一些碎碎念:上次写考试相关的文章,还是 2021 年 7 天 TensorFlow 开发者认证的那一篇。那篇文章意外上了阮老师的周刊,还给本博客增加了不少流量。现在回过头来看看 ML 领域 PyTorch 几乎已经一家独大,TF 如风中残烛,更别提 LLM 的突飞猛进,当年的认证回头来看其实除了满足虚荣心+能写在简历上之外,并没有起到实质性的作用。前几天收到 Google 的邮件,说当时考的认证已经过期了(有效期只有三年),问我还要不要再续(实际上就是再考一次),那当然就选择不考了。虽然软考没有有效期,不存在重考的问题,但在决定投入精力被考前,依然得好好想想是否真的「对我有用」。
本文发出后的修正
- 修复了关于退税的表述(2024/8/7)
- 修了错误的日期描述;“基础知识”改为“综合知识”;补充证书图片(2024/8/9)