前言
我参加了2022年11月份的《软考-系统架构设计师》考试,在一个多月的备考之中我总结了一些学习经验和答题技巧,现毫无保留的分享给大家,希望对报考的同学们有所帮助。彩蛋:关注我的公众号【劼哥舍】,回复“软考”即可获取我精心整理的学习资源。祝愿所有报考的同学们都逢考必过~
一、为什么考
软考,全称计算机技术与软件专业技术资格(水平)考试,是由国家人力资源和社会保障部、工业和信息化部领导下的*考试,其目的是科学、公正地对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。详细介绍可参见官网:www.ruankao.org.cn。
获得软考高级证书的好处:
- 职称评选:属于高级从业资格证,类似于注册会计师,此证书在国企和事业单位可以评职称(在互联网公司可能没用);
- 积分落户:通过此证书评定高级职称后,可以以人才引进方式获得工作所在城市的户口,或者积分入户有加分;
- 项目竞标:项目竞标是要看资质的,高级证书可以为公司投标加分;
- 抵扣个税:拿证书的当年,可以一次性定额抵扣3600块钱的所得税;
我自己为什么参加软考呢?
- 个人成长:通过备考,体系化的温习架构设计相关基础知识,实现一定程度的自我提升;
- 免费培训:公司专门请了软考培训机构,每周组织两次内部培训和学习,备考更加轻松;
- 小赚一笔:如果能拿到证书,拿证当年可以直接减税3600大洋,这可是国家实实在在补贴的真金白银啊~
二、要选哪科
如下图所示,软考有3个级别5个专业,很多同学在报名的时候不知道如何选择科目。
软考高级比中级的难度要大一些。中级考试为基础知识和应用技术两科,各科目考试时间均为2.5小时。高级考试主要多了论文,考试时间为2小时(将近要写3000字)。合格标准是各个科目都要求在45分以上(含45分)。中级合格率约为20-30%,高级合格率不到20%。
我的建议是:不要报考初级,因为参加软考没有任何的门槛限制,没有必要一步一步考;中级和高级具体报哪一个,按个人技术储备的实际情况来选择,IT基础差一点的同学可以报项目管理方向。有3~5年后端经验的同学可以尝试高级资格,因为写论文还是需要一定的项目经验的积累。
三、如何备考
我自己报考的是系统架构设计师,下面主要介绍系统架构设计师的备考方法。
1、核心考点及复习建议
1.1 计算机基础知识(20%)
对于计算机类科班的同学来说,这一部分主要就是在学校里学习的内容,主要包括:计算机组成与体系结构(计算机组成、指令系统、流水线技术、存储体系、总线等)、操作系统(进程与PV操作、存储管理、设备管理、文件管理等)、数据库系统(设计范式、关系代数、SQL、数据架构、并发控制等)、计算机网络(常见网络设备、常用协议、组网方式等)、嵌入式系统(嵌入式操作系统、多核处理等),每个部分基本就是学校里面所学知识的简化版。针对这一部分,有科班基础的同学可以看视频1.5倍速复习一轮,题目大部分就是送分题;如果是没有基础的同学,最好跟着视频多学几遍,这些都是程序员安家立命的根本。
1.2 软件工程(25%)
这一部分是很枯燥的理论性内容,主要包括:软件开发生命周期、软件开发过程模型(瀑布模型、螺旋模型、原型模型等)、需求管理、开发管理、软件系统设计 (易用性设计、设计模式)、软件系统建模(结构化设计、UML)、软件系统构建、软件测试(黑盒、白盒、回归、单元、集成、路径覆盖等)、项目管理 (关键路径)。其中,系统建模很可能会在案例分析题中出现。这一部分的概念枯燥并且不好记忆,建议反复观看资料学习。
1.3 系统架构设计(35%)
这一部分是系统架构师这个科目考察内容的重中之重,无论是选择题,还是案例分析题,还是论文,都会涉及该部分的内容。这一部分首先引出了软件架构的定义,紧接着讲如何从多个维度评价一个软件架构设计(质量属性、软件质量评估方法),为了达到软件系统设计的预期标准,如何通过一些架构模式(或叫架构风格)来实现整个架构的设计。并额外列举了一些派生的架构模式和现实系统中的架构设计案例,如MVC、 微服务架构、常用中间件等。这一部分的内容最少完整学习一遍,深刻理解每个章节的内容。这一部分很重要,很重要,很重要!这一部分除了固定题型的送分题,还有很发散的开放式问答。看完这一部分的内容,也基本上就知道怎么写论文了。
1.4 信息化战略与规划 (9%)
这一部分内容都是概念性并且十分抽象,主要涉及到企业信息化需要做什么怎么做。比如,企业内外部有信息系统的类型的信息系统,它们之间是如何进行系统集成的,如何进行系统迁移和系统迭代,信息系统如何支撑企业的发展,如何建设电子商务等。信息系统如何服务企业、个人、*,这些概念虽然很抽象,但我认为这也是一个系统架构师应该掌握的知识,它站在一个宏观的视角回答了“为什么要做信息化、智能化”。这一部分建议深度学习,因为在论文中写项目的背景、价值的时候可能也会用到,要深刻理解之后再开始刷题。
1.5 信息安全&法律常识(5%)
这一部分内容是信息安全和法律常识的基础内容,信息安全包括:基础密码学(对称、非对称加解密、数字签名)、常用身份认证方案设计、访门控制方案设计、系统安全性设计等内容;法律常识包括:著作权、专利、商标、商业机密等概念,在选择题和论文中可能也会用到这一部分的知识点。
1.6 数学&逻辑&英语 (6%)
这一部分内容是作为程序员最基本的要求,如果数学和逻辑不好,很难写出逻辑清晰工整优雅的代码。数学一般考离散数学、运筹学里面的东西,比如高考考过的线性规划、大学学过的图论,一般在考场上都能硬算出来,这一部分不建议复习,直接刷真题,边刷边了解一些算法。英语主要是计算机和软件的专业英语,会以5道完形填空的形式出现,英语很难在短时间内提高,只能鹏鹏运气了。
2、题型解析及解题技巧
整个考试分三个题型:选择题、案例题、论文题,每种题型一场考试,一天内考完。上午考选择题,下午考案例分析和论文。每种题型满分都为75分,达到45分及以上算合格。由于是资格性考试,而且通过后不区分等级,因此合格万岁。这个考试很大的一个难点,在于三个题型的分数要同时达到45分及以上。
2.1 选择题
考试时间120分钟,75道四选一单项选择题,每道题1分,主要考上面提到的知识点。解题技巧如下:
- 直接选择法:对题中给出的4个选项,一看就能肯定其中的一个是正确的,可以直接得出正确选项。注意,必须有百分之百的把握才行。
- 排除选择法:对题中给出的4个选项,一看就知其中的一个(或2个、3个)是错误的,在这种情况下,可以使用排除法,即排除错误的选项,剩下的为正确答案。
- 估计选择法:在排除法中,如果最后还剩2个可能的选项,而对某题却一无所知时,也别放弃选择,在剩下的选项中随机选一个。
- 因为选错了不扣分,所以选择题不要漏选,即使不能完全确定正确答案,每题也要都选出一个选项。
- 注意:对于有把握的题目要保证一次答对,不要想再次验证。对于吃不准的题目,可以根据经验先初步确定一个答案,做一个标记。在时间允许的情况下,可以回过头来重做这些做了标记的题目。切记不要在个别题上花费太多的时间,以免到最后没有时间完成剩余的题目。
2.2 案例题
考试时间90分钟,主要是问答题和填空题,总共五道大题,每道大题25分,第一题必答,二到五题四选二,选定的三题一共75分。
第一道大题比较固定,一般是软件架构评估。二到五题中,固定会有一道题是嵌入式系统设计(建议非嵌入式从业者直接放弃),除此之外还会有以下题型:
- 软件系统建模(UML图填空、问答)
- 系统数据库设计(DFD图填空、问答)
- 系统架构整体设计(表格填空、架构图填空、问答)
- Web系统架构设计(表格填空、架构图填空、问答)
- 单个场景详细设计:高可用设计、高性能设计、高可靠设计、微服务设计、可扩展性设计等(表格填空、架构图填空、问答)
其中问答题一般有两种问法,一是概念问答类:
- 请说明什么是xxx,并指出它的作用与特点;
- 请说明A和B两种设计模式的区别和联系;
二是方案分析与选择类:
- 请指出选用xxx技术方案存在的问题,限200字以内;
- 项自组最终使用了xxx技术方案,请分析采用xxx技术方案的原因;
- 请分析N种技术方案的优势和劣势/适用场景,并确定使用哪个技术方案;
2.3 论文题
考试时间120分钟,考试形式是给出4道论文题目,只需要选其中一道题目来写,两个小时,手写在类似高考语文作文的答题卡上,摘要部分一般要写200字以上,正文部分一般要写2000字以上。
论文是软考高级中经常出现不合格的题型,不过只要你有实际的工作经验,有一定的理论基础,再进行了认真的准备,达到45分合格线并不是一件很困难的事。
通常来讲,论文给出的4道题目里面,一般有一道是最近两年比较火热的技术,如云原生、无服务架构、区块链等。其它三道题的出题方向很固定,频次大致从高到低主要包括:软件系统架构设计(架构评估、架构风格、微服务架构等)、软件系统建模、信息系统规划与集成、软件质量保证、软件高性能设计、软件可用性设计、软件安全性设计、需求管理、项目管理等;
想拿下论文,就必须要深入的准备一个项目,—般是自己平时工作中做的系统,从全局的角度来梳理这个系统的方方面面,然后针对不同题目从不同角度来描绘这个系统就行了。
论文的结构可以直接套用以下模板,不同的题材,结构和框架可以相同,只需要替换内容就好了。
- 摘要(一般要写200字以上):
- 交代自己做了项目,自己是做什么的 (一般是架构师)
- 我在这个项目里面,用到了哪些与题目相关的技术
- 项目很成功,客户很满意,老板很开心
- 正文(一般要写2000字以上):
- 我在什么公司工作,什么职位(100字左右,注意数据脱敏,敏感信息可以用某某代替)
- 我做了什么项目,业务背景和产品设计是怎么样的(300字左右,同样注意数据脱敏)
- 说说题目里面的技术或概念是什么(作为论点,300字左右)
- 项目中是怎么体现题目中的技术的(作为论据,也是整篇论文的主体部分,1000字左右,举2到4个例子)
- 项目取得了怎么样的结果,有哪些细小的可以改进的点(结论,400字左右)
- 客户很满意,老板很开心,感叹人生,赞颂社会 (结尾,100字左右)
3、备考策略及学习资源
我主要的复习方式是视频学习+真题训练+论文仿写。
3.1 视频学习
视频主要用于掌握基础知识,附带一些练习题,以巩固知识点的记忆。
上午的选择题,完整的刷过一遍视频,然后再刷个10来套选择题真题,如果分数能达到60分以上的话,选择题这块应该就比较稳妥了。
下午的案例题,比选择题要难一些,有较多的概念手写,所以学习视频中明确提到的五星考点,都要背下来才行,这个背太早可能就忘记了,可以先背一轮有个印象,然后考前一周再集中记忆。另外也要配合多刷题,历年的真题都做一遍。
我自己的视频资源是公司请的培训机构讲的线上直播,虽然这课程不花钱就能听,但质量真的一般。后来我又在网上找了一些视频资源,比公司课程强太多,大家关注我微信公众号【劼哥舍】,回复“软考”即可获取我精心整理的学习资源。
3.2 真题训练
学习完视频之后,就要拿分类练习题和真题来训练,在训练的过程中如发现模棱两可的知识点,可以再去反复刷视频的某个章节,力争把每个知识点都记住,软考需要记的概念性知识点还不少,特别是下午的案例题和论文,必须需要写出来大段准确概念或者某个架构方法。
刷题的话我推荐用软考通APP,安卓和苹果都有同款APP。
有历年真题、模拟测验、智能练习等功能,让我们非常灵活利用碎片时间来刷题。还有错题集、收藏夹等功能,让我们能够针对部分不熟悉或经常出错的知识点重点复习。
不过该APP也有2个问题,一是真题只更新到了19年(可以配合上面学习资料一起用),二是偶尔会弹广告(可以手动关闭不会强制看完),已经算是一款良心的学习APP,如果APP的作者能把最近两年的真题也更新进去就太完美了。
3.3 论文仿写
对于论文的准备,建议先多看看别人的论文,然后自己至少仿写三篇不同主题的论文,重点写架构设计方向的主题,最后再准备一篇近期流行的技术,比如:云原生、区块链、Web3等。
2个小时的论文书写时间非常紧张,如果没有经过考前特训,很多同学2个小时2500字抄都抄不完,更不要谈临场发挥直接写。所以每篇论文框架(摘要、开头、结尾)必须能熟练默写,要做到这3部分完全不用思考,提笔就能写至少800字,那么两千字的正文,你真正需要边思考边书写的内容就只有1200字,然后再把你准备的项目经验,结合题干套进正文里就好了。
特别需要注意的是,大家练习论文一定要拿格子本或者把答题卡打印出来练习,这样你才能习惯在答题卡上写字的感觉,避免临场书写习惯问题而手忙脚乱。
3.4 我的经历
刚开始准备的时候,我觉得自己有点基础,没有复习就直接做了一套选择题的模拟题,结果惨不忍睹只拿了30多分。完整的做过一套真题才知道,选择题里陌生的知识点和概念特别多,如果不复习直接做的话,估计大部分题目都只能靠猜,后面就老老实实的开始刷视频来补基础。
视频总时长在30个小时左右(除论文以外),我大概从9月下旬开始每天用上下班通勤时间1.5~2倍速刷视频,每天大概能看2个多小时,连着国庆假期一起把所有的视频全部刷完了。大家可以看到上图中的选择题刷题记录,从最开始的30分到能拿55分,这就是刷完视频的效果。
国庆之后就只剩不到一个月的备考时间(其中包含3个周末)。日常工作比较忙,抽不出大段的时间用来复习,只能拿通勤和休息时间来零碎做做选择题、翻翻错题集、背背不牢靠的知识点。然后充分利用周末,尽量推掉所有事情,完整的做一套选择题、案例题以及论文,然后针对错题进行复盘和针对性练习。
在考试的前一周,我完整的练了2套选择题,按道理说选择题要练习到60分以后才比较稳妥,我自己训练得还不达标。作文又把摘要、开头、结尾专项练习了一遍,控制手写时间在半小时以内。然后刷了一些案例题查漏补缺,把不熟悉的知识点再背了背。
四、考前必看
1、考前准备
- 前一天保证充分睡眠。睡眠不足的头脑里,充满了因疲倦而产生的不安的荷尔蒙。人的集中注意力是有限的。疲倦状态下熬夜用功,还不如聚精会神地学习一个小时的效果。考试前保持身体的最佳状态很重要。
- 下午的考试时间非常紧凑,第一场90分钟的案例题考完之后,休息20分钟(不允许出教室),紧接着就进入第二场120分钟的论文,整个下午连轴转非常消耗精力。建议中午至少小睡半小时,然后再两门考试之间喝一瓶红牛来保持精力。
- 可以带个非电子表,防止考场没有钟,如果是在广州大学考的话,一般都会有电子钟。
2、心态调整
- 进考场手机一定要关闭,免得被当成作弊嫌疑人。考试时不要有侥幸心理。网上有不少关于考试作弊的文章,千万不要信以为真,更不要以身试法。
- 当遇到答不出来的题时,心里一定不要慌乱,可以把这类题留下暂时不做,先把会做的题做好,能做多少就做多少。
- 当题做得非常顺利时,心里不要太得意,因为越是看似容易的题目越是错的多,当然也不要逆向思维,觉得这题这么简单是不是做错了,要相信自己,说到底还是要审清题目的意思。
- 不要受周围环境影响,当看到别人翻卷子时,觉得别人做了很多题,心里就开始着急,可以来点阿Q精神,也许是他不会做,先做下一页卷子呢。
- 当别人开始交卷时,也不要慌张,只要沉着冷静,认真回答每一个题目就可以了,千万不要感觉如果只剩下你一名考生多不好意思,因为监考人员是有责任陪你考完最后一分钟的。
3、答题注意
- 拿到答题卡第一件事儿是填涂好自己的姓名、准考证号等重要内容,然后再开始看题!注意:填涂都是用2B铅笔,而需要写字的地方一定要用墨水笔,千万别弄混。如果对填涂卡有什么不明白的地方,一定要举手问监考老师!
- 答题顺序以有利于心态稳定为准。先易后难,先熟后生,稳扎稳打。而且一定要边答边填涂,不要等到最后一起涂!万一没时间了,你的客观题就没分了!记着,客观题的答案写在卷上是没分的,所以一定要填到答题卡!
- 合理的安排时间。保证在能得分的地方绝不丢分,不易得分的地方争取得分。自己要时刻意识到,与其花十分钟去攻克一道分值为一分的选择题,不如花十分钟去攻克一道分值为十五分的大题。合理分配时间,才能最终取胜。
- 只要不扣分,尝试回答所有的问题,不要留下空白题。
- 主观题答题的时候,如果发现错误,请不要使用涂改液等修改,因为阅卷老师可能会认为是在卷子上刻意做记号。如果发现错误,请用笔画个框圈起来,打个叉子即可,然后再找一块干净的地方重新写过,千万不要在原地改得乱七八糟!
- 答题卡分两种,横版的和竖版的,所以不要和旁边的考生对题,作弊先不说,主要是答题卡不一样!只要填的时候按着题号填,就不会有问题。
- 答题时尽量保持卷面整洁干净,老师改卷时不可能将无法辨认的试卷给高分,因为都看不清楚,当然也不会给高分。所以一定要注意卷面的书写工整。
五、考完感想
最后,来讲讲我自己这次考试的表现情况:
- 选择题,考试的范围有点超出预期,虽然往年的真题我基本都刷了一遍,但还是有将近五分之一的题目是我完全没印象的(如鸿蒙操作系统的架构),学习群里的小伙伴在选择题上翻车的不在少数,我自己也没有太大把握选择题能过。
- 案例题,第一题必选题是架构设计和质量属性相关的,比较容易写。第二题考的是数据流图和ER图,也还比较容易写。第三题是嵌入式直接跳过。第四题考的是数据库缓存技术,第五题考的是Web系统架构设计,这两题我都能写,第四题全是问答题可能答不准,第五题有填空题好答一点且分值更大,所以我选择了第五题作答。案例题我写得还比较顺利,也比较有把握。
- 论文题,第一题是《基于构建的软件开发方法》,第二题是《论软件维护的方法及其应用》,第三题是《论区块链技术及应用》,第四题是《论湖仓一体架构及其应用》。我自己我准备过的题材有架构风格、架构评估、微服务架构,后面两题完全超纲了没法写,第一题ABSD我没有实际写过,整个ABSD的流程和具体步骤记不太清楚了,只能选第二题软件维护来写。因为是临场发挥的,所以花了较多的时间构思,导致后面时间很赶,算是卡着点凑够了字数,没有时间从头到尾整个通读一遍,感觉自己写得一般。
- 整体来讲,三门考试,案例题比较有把握,论文写得一般般,选择题不太行,这次考试不合格的概率较大,担心也没有用,老老实实等结果。如果这次没有过应该还会再考一次,毕竟准备过一次还算有点经验,下次备考也会更容易。
以上就是我2022年备考系统架构设计师的全部过程,期望我的经验能带给大家一点帮助,最后祝愿所有报考软考的同学们逢考必过~
六、引用参考
- 中国计算机职业技术资格网 https://www.ruankao.org.cn
- 软考中级有用吗? https://www.zhihu.com/question/482212478
- 软考应该如何选择合适的科目?https://zhuanlan.zhihu.com/p/494420154