记2021年的软考(系统架构设计师)
对软件从业者来说,国家认可的证书其实很少的,软考是其中之一,软考的全称是:计算机技术与软件专业技术资格考试。以前说的什么"程序员"、"高级程序员"、"系统分析师"指的就是这个考试。
程序员
我2002年参加过程序员考试,当时我还在上大学,非计算机科班,想毕业后从事计算机软件的工作,考张证书出来当敲门砖,于是花460元报了个班,一个复旦大学的老师来给我们上了一些课,就这样参加了考试。我在之前的一些博文中有提起过这次考试,其中还有一句很经典的话:"通过率是你们说了算的",就出自于那个老师的口里。其实程序员考试通过率并不高,我们当时去参加培训的3个人(都是同学)只有我通过了,说明有一定的难度,虽然也称不上多难,就是得花些力气才行,另外一个通过率低的原因就是缺考率太高,我那个考场,有1/3的人缺考,缺考如此之高,我想其原因是主要是报考费用比较低,大家都不在意,如果考试那天下雨,干脆就懒着不去了,损失这点报名费可以忽略不计。不管怎么说,我是通过了,这是一张初级证书,上面清清楚楚写着: 水平名称 - 程序员(Programmer),而我也凭这张证书在2003年找到了第一份Programmer的工作,听起来挺励志的故事,对不? 勉强算是吧……这后面的故事就先不表了。
为啥要考
快20年过去了,本来我也不需要再去考这么一个证,一来不需要这个证来帮自己找工作,二来没有落户上海的需求。是的,很多人考证就是为了落户,居住证转户口,有职业资格证,是加分项,同事当中有人就是为了这个参加考试。而我呢,就是突然有了这么一个想参加考试的想法: 这么多年下来,我也算是老鸟了,水平不知道比当年高了多少,要不要试试看呢? 应该不会太难吧? 时间已经是3月份,而上半年的考试安排在5月份,是否来得及呢? 很多问题摆在我面前。
于是我上网搜了一下,找了一些资料,目标锁定了"系统分析师",这是高级水平考试,我虽然之前只考过初级,但总不能现在还去考中级了吧?必须高级啊。但我开始想去报考的时候,发现了"系统架构设计师"这么一个类别,同样是高级,后来再进一步了解,觉得这个更加适合我,于是改锁定了"系统架构设计师"。再一看考试时间,原来得到11月份了,一下子好像宽松了很多,时间大把了,慢慢准备吧。
入坑
我开始在空闲的时候去找找资料,后来发现基本上没有特别好用的资料,能找到的就几本教材,网上也没有特别完整和系统的视频教学什么的,我于是再深挖了一些资料,发现这个考试就算是老鸟也不一定能过,必须得认真准备一下。而网上找资料大概率就能找到一些培训机构,最大的一家就是"希赛",他们除了做软考的培训,还有PMP的培训,当然还有其它,但最出名的就是软考和PMP了。我联系了一下他们,了解一下培训的情况,我在想如果不贵的话可以考虑考虑,或者看看能不能拿一些免费的资料什么的,结果一问,要五千多的学费(原价七千多,五千多还是打完折的),还只是普通班,如果要参加VIP班的,学费得往万去了,虽然我出得起这个钱,但感觉不甘心啊,我觉得自己有经验有能力,应该可以自学通过的,于是就不报班,先自己找资料看。后来我发现51CTO也有做这个培训,价格比希赛要便宜一些,但也要好几千,于是还是选择自己准备,没报班。他们后来都多次联系我,用送礼物的方式变相打折,但我都没去报。
我开始在网上找资料,但发现都不全,于是花了差不多200元,买了考试的四件套,就是这4本书:
![](https://img2022.cnblogs.com/blog/379997/202205/379997-20220501185109364-1983553193.jpg)
正版的,尽管很多人买盗版,但为了阅读体验,我还是买了正版,当我拿到手,开始想啃这几本书的时候,我傻眼了,这都啥玩意儿! 虽然每个字我都认得,但里面的东西如果拿到试卷上来考我的话,我分分钟得挂。光是计算机组成与体系架构这个我自认为很熟悉的,就有好些知识盲点:
- Flynn分类法,这是啥?
- CPU的几个寄存器的作用是什么? 我不知多少年没去碰了,只模糊记得ALU,其它真的跟没学过一样
- "移码"又是什么?
- CRC校验码怎么算?
- 流水线吞吐率/加速比这又啥玩意儿?
- 缓存置换算法有哪些?
- 各种性能指标的含义是什么?
- ……
我有些想放弃了,这些东西对我现在的工作好像也没啥帮助啊,有些概念都已经很陈旧了,只怕这样搞下去,自己也学不到什么东西啊,是的,我确实是想通过准备这个考试,系统的学一些有用的东西。
另一个问题是: 看书实在太乏味了,书上尽是讲概念,缺乏习题和实践,就是说这个看书学习的过程是相当缺乏反馈的,这个是个大问题。所以这几本书我看了一小阵子就基本放弃了,除了有一本带习题的,后来我还浏览了一遍题目,其它的都仅作为参考书,遇到要查的地方才回头翻翻,从头读到尾的做法,我是基本上放弃了。还有关键的一点,这几本书出版时间都是好些年前的了,最近也没有再版,内容会不会已经陈旧过时? 我得想想别的办法。
做题与挫折
前面提到的那些概念和知识点,我不懂太正常不过了,就算这些知识我之前是知道的,长期不用也荒废了,我这才想起了一个事情:那就是我自从毕业那时起,已经有快20年没参加过考试了,除了中间还考过驾照之外,就真的没有了。考驾照的时候科目一是交规,当时是直接有一个软件,上面都是题库,反反复复练,就能考到90分以上通过了。而我发现现在情况也有点类似,应该可以用做题的方式来解决一些问题。做题的好处是有反馈,知道自己到底对不对。更妙的是希赛居然提供了一个APP,上面有免费的历年真题,这个真是太棒了。上厕所,坐公交,利用这些碎片时间就能做个一两组题目,很有帮助。
但这个做题的过程并非一帆风顺,因为这些题目时常会让我发出这样的咆哮:"这TM都啥玩意儿!" 比如有道题目:
"系统工程,对系统的结构、元素、信息和反馈等进行分析,以达到最优规划……霍尔三维结构:时间、逻辑、知识……工程项目7阶段,在研制阶段做出研制方案和生产计划。"
文本里的粗体字就是要选择填空的内容,遇到这种题目我就很崩溃,这就属于每个字你都能看懂,但就是做不对的题目,尽管我工作这么多年身经百战,需求,技术,研发管理的工作都做了不少,但面对这种纯概念题目都只有卡壳的份,咆哮骂几句也是好理解的……类似的还有这么一道题目,大家看看:
"CRM对人力资源、业务流程和专业技术整合……"
粗体字是要填空的内容,CRM我也做过,但怎么都想不明白,为什么CRM当中就没提到C(Customer,客户)。
这两道题目都出自于"信息化"这个章节,这也是最令我抓狂的章节,第一这个章节全是概念,没有什么能够让我去理解和建立联系的地方; 第二这个章节一点技术方面的内容都没有,觉得对工作也没啥帮助,真心有点抵触。
当然,我觉得这个考试有相当多的内容是挺有用的,其中最有用的当属软件工程、设计模式、架构风格这几块,有些技术含量,相当于带着我把这些知识重新复习了一遍,软件工程有哪些模型,特点各是什么,什么时候应该用什么设计模式,各个架构风格有些什么特点等等,这些是对工作有帮助的内容。比如软件工程里提到的几种图,这些都可以让自己在客户面前看起来很专业,数据流图,用例图,模块结构图等,就算不100%贴合概念,但让别人听起来就很专业的样子,是真的有些用的,我并不是说我不参加考试就不懂这些,而是通过参加考试,让自己这方面的知识重新刷了一次,更加成体系一些。
但有些东西就只能硬背,比如CMMI的几个成熟度各有什么特征,产生怎样的文档,这些,不能说完全没用,如果哪天客户提起这个,自己要能应对,但也可以说基本没用,因为我们根本不可能按CMMI要求的那样做啊,我接触CMMI,是我第一份程序员工作的时候的了,到现在也快有20年了,当时没好好搞下去,觉得尽是些折腾人的事情,喜欢技术的我不久后就离职了,如今不知道哪个国内企业还在搞CMMI,也许有,但我99%都接触不到的。
焦虑、对策与记忆力
时间到了快9月份,题目做做停停,感觉自己做了不少题目,但是心里还是没底。按道理说这个考试对我来说应该是个娱乐,考着玩的,怎么到后面反倒形成很大的压力了? 究其原因是这样的,本来确实想考着玩,以为不难,后来发现有难度了,但有没有真正打退堂鼓,而是陆陆续续坚持了下去,投入时间越来越多,沉默成本就越来越高,如果不认真考过,那就觉得自己真是损失大了。我用的时间全都是下班后的时间,上班还是完全在忙公司的事情,所以准备考试并不耽误工作,不能用公司的资源去忙私人的事情,这算是我的原则吧。随着时间投入不断变大,我的压力也就变大了,我自诩老鸟,但这么个考试都应付不过去吗? 心不甘。
而此时自己心里十分没底,因为前面准备的大多都是基础知识科目的题目。架构师考试有3场考试,上午一场,考的是基础知识,75分,都是选择题。下午还有2场,分别是案例分析及论文,下午这两场我完全没有准备。所以焦虑很正常的。我得再找些资料。于是到淘宝去找了一套视频教程,花了一些钱,但还是比报班便宜太多了,而且我发现了,淘宝上这种卖教学视频的还真不少,一套价格不怎么贵,但可以多销啊,这样就能赚不少钱。拿到视频后,我打算从头开始看,但时间不多,得加速一下了,视频速度调到1.5倍,聚精会神,这时我又发现一个问题,前面做的那些题目,学习的知识,由于前后间隔时间太长,自己居然很多又变得陌生了。毕竟,真的年纪大了,不得不承认,记忆力的衰退是个大问题,但没办法,这是人人得面对的,人只能越活越老,不可能越活越年轻,现在参加考试也许有些晚了,10年前考最好,但相比10年后,现在就是最好的时候。有句话怎么说,种一棵树最好的时间是10年前,第二好的时间是现在。这是这次考试给我的一点人生启发。
人到了40岁这个年龄,记忆力是很明显不如以前的,工作中凭着自己的经验,理解力,分析力,还能应对自如,但记忆力真的是扎扎实实在下降,容易忘事,所以现在todo list一直不离手,怕一转眼就忘了事情。回想过去,我刚上大学那阵子,还用201电话卡,那时候都没有手机,要打电话,先拨一长串卡号,再拨密码,再拨目标电话号码,那时候我嫌带卡麻烦,于是直接把面值30的电话卡卡号密码都给背下来,直接拨,用完一张卡再背一张,也不觉得有多费劲,而现在让我背这么一长串数字简直是要命了,我能记住的手机号码一个手数得过来,更多就不行了。
我跟着买的那套视频又过了一遍基础知识,把自己之前做错的题目,陌生的知识点都写到笔记上,关键点用高亮标注,利用艾宾浩斯记忆曲线的原理,安排自己回头复习几遍,为了加深印象,还把历年真题打印到纸上,自己先做,把错误的,不理解的,凭运气做对的,用红笔标注,再重新再拿出来做。经过这样的过程,我心里稍微有点底了。
再就是案例分析与论文了。案例分析有一些题目可以参考,它有它的答题模式和套路,但论文看上去就有些棘手了。我打算最后花一个月时间来突击这两个科目。
案例分析与论文
前面说了,对案例分析和论文我比较没底,因为这两个东西教学视频里讲得不多,且不像基础知识做题那样有明确的反馈,知道自己做对了还是不对。
对案例分析,我主要是做一些历年真题,自己做一遍,对参考答案,再以自己的理解重新再理一遍,觉得大体上应该是可以的,关键是这个案例分析并不是要所有题目都做,它是5选3,选择自己熟悉的来做,这样就有了一定操作的空间。
而论文呢,我采用了临阵磨刀的方式,一来自己时间真的少,很难准备好几篇论文,二来准备了也不知道到底好不好,所以后来我是连一篇完整的论文都没准备好,只准备了一些论文的片段,打算在写作的时候利用这些片段临时发挥,以自己多年的还算扎实的文档写作能力应该能应付。但如今想想,这真是冒险,论文的难度我后面会说,对我来说,这样能通过真得靠运气。再一个就是由于论文需要手写,大约2500字,而时间是2小时,不到3秒钟要写一个字,还还包括了论文的构思时间,可谓挑战巨大,我试了一下我的手速,好像,应该,也许能行。
报考、疫情
这两年多一来,对我们,乃至整个世界影响最大的无疑就是新冠疫情,考试前一两个月陆陆续续开放报考,为什么各地区报考时间不一样呢? 我猜可能跟疫情有关,有些地方甚至都不确定是否能举办考试,上海的报考时间是最晚的了,我当时都有些担心能不能去参加考试了,如果不能,我之前花的时间可能就白费了。最后我还是报上了名,报名费190元,考试时间也确定在了11月6日,那是周六,由于家庭的原因,得事先跟家里人商量好,这天要去参加考试,家里的事情得安排打理好,到了这个人生阶段,真的不像十几年前的那样,想干嘛就干嘛了,所以我常常怀念过去,即便再穷再不堪的日子,那都是美好的,因为年轻,自由,充满希望。
我自从买了那套学习视频后,还加入了一些QQ学习群,当然大部分都各忙各的,你有问题在群里问,基本上也不会有人回答你,反过来别人问你也不会回答对不? 大家都太忙了,参加这个考试的人大多都是有好些年工作经验的人,需要顾及工作、家庭等因素,没法花太多时间帮别人解决问题,我也是一样的。QQ群的一个有用的地方就是了解一些考试动态,群里有好些人是参加过考试的,之前没通过,然后需要重考,就进群了,我从他们那问到了一些考试相关事项,比如考场规定啊,准备物品啊,考试过程啊等等。而最令我担心的东西还是疫情,全国好些地方因为疫情而取消了考试,所幸的是上海到最后还是顺利进行了,但入场需要提供48小时内的核酸证明。
考试
上海很大,考场有好几个,我的考场在市中心,上海八中,还不错,没把我分到浦东某个边远地方去。虽说还行,实际上距离我住处也要一个半小时的公交,所以一大早我就出发了,天下着雨,湿冷湿冷的,凭核酸证明,身份证,准考证排队入场,逐一登记,我到学校里的时候已经很多人在操场上等候了,大家都拿着复习资料临阵磨刀,我也不能免俗,拿着自己打印的错题集再看了一遍。增加点信心也好,要不这个时候也没啥事情干。
我们准时进入考场,一种熟悉又陌生的感觉,想想上次考试,真的都快20年了。唯一能带进考场的只有文具,手机啥的都留在外边走廊了,为了看时间,我还戴了一块手表,当然不能是那种有屏幕的智能手表。
本来我就觉得会有些人缺考,但没想到会这么多,我们这个考场本应有30人,但实际上只有12人到场,这么多年过去了,缺考率还是那么高,都归功于报名费太便宜,想想PMP考试3900元的报名费,谁还敢轻易缺考?
试卷提前几分钟发下来,我初步看了下题目,感觉应该没有问题,时间一到就马上开始做。我需要说,科目1的时间是非常充裕的,75道选择题,2个半小时,再怎么拖沓都是够的了。中间没遇到太多难的地方,最多是不太确定的地方,根据自己的直觉,选择可能性最大的答案,并把题目在试卷里标注出来,方便后面检查。试卷是可以涂画的,答案是写在答题卡上的。用2B铅笔涂黑,感觉有点像许多年前的大学英语等级考试。做完后时间还剩下差不多1个小时,我反复检查了很多遍,我确信这个我能拿高分,虽然这种考试高分和低分没啥区别,只有通过和不通过的区别,但这个给我感觉也太顺利了一点吧。我没提前交卷,因为交了也没地方去,我就在位置上坐到考试结束。
中午外出自行解决了午餐之后,还得走一次上午的入场流程,核酸报告,身份证,准考证,排队入场,显得很是正规。科目2,案例分析考试于下午1:30开始,题目是5选3,但由于第一道题必选,所以应该算是4选2,面对题目,我有点纠结了,其中有一道题是Redis的设计模式,Redis这个东西我们天天用,但问到Redis的设计模式我就懵了,我遇到问题我都直接去查文档,去了解应该怎么使用,但没有上升到用理论去指导实践的层次,所以看似自己熟悉的技术,但完全不知道怎么答题,这道题目放弃,另外还有一道数据库的题目也是类似,里面出现了好几个陌生的概念,我没什么把握,于是选了剩下两道题,这两道题技术性不是那么强,感觉有些东西可以吹吹牛,糊弄过去,其中一道是关于物联网设计的,我在上面谈了一些自己的见解。热衷于技术的我却选择了跟技术相关性较小的题目,为了通过考试,只能如此。科目2考试的时间感觉挺紧张,只有1个半小时,比上午短了很多,选题也挺令人纠结,有些东西你做下去了才知道自己不行,这时候换题就难了,我在选题上也纠结了几分钟,致使后面时间差点不够。但我总算把题目写完了,这次有点悬了,我心想,不过既然来都来了,第三场考试肯定要完成。
第一场考试对我来说是没有难度,那第二场就是有明显难度,第三场呢? 那是严峻挑战! 一点都不夸张,而且我是越靠近考试结束就越发现如此,最主要的原因就是: 我手速根本不太够! 科目3是下午15:20开始的,科目2考完后休息20分钟就开始了,我知道时间紧迫,2个小时要完成差不多2500字的论文,手写,这得很快的手速,但没料到这个难度比我预想的还要难得多。首先是选题,四选一,我知道时间紧迫,没纠结太久,选了一个比较稳一点的,安全方面的架构设计。考试开始没多久就有一个参考者想提前交卷,肯定是放弃了,也许是发现这四选一的题目没有一道是自己能写的,但监考人员不允许离场,这是考试的规定,于是她呆呆坐着陪我们过完了这2个小时,也许这是她人生中最漫长和尴尬的2个小时了。我以我事先准备好的项目作为切入点,开始一笔一划工工整整开始写,脑子出现一句话,手就直接落笔写出,几乎不作停留,就算写错了,也不会再有机会回头改了,甚至回头看自己写了什么的机会都没有。我一开始认为我工整的书写应该能给我加分,但进行了1个小时之后,我发现问题了,我只写了1/3的篇幅,而时间已经过去一半了,我不得不加快笔速,字迹变得有些歪扭了,思维也有些乱了,想到什么就写什么,越到后面越这样,我心想完了,但不能停,必须完成这次考试。我感觉越到后面,我越像在凑字数,尽讲一些无比正确的废话,就这么把论文搓了出来。我写上论文的最后的句号距离交卷时间只有几十秒,几十秒检查自己写了什么?不现实了。把卷子回头翻翻,只看到了密密麻麻和越来越潦草的字,我苦笑着:尽力了。考试就这样结束。
出考场之后,我才发现基本上都是跟我感觉一样的人,说:"我都不知道自己写了什么!" 在考场外我还看到了专业押运公司用来运送考卷的车辆,考试确实是按非常正规的流程操作的,毕竟这是工信部和人社部共同主持的考试。
回家的路上,我明显感觉到自己的手在抖,要抽筋的那种感觉,很多年了,没有握笔写过这么多的字,这就是这个考试对我而言最大的挑战,关于这个论文,其实早有人提议,改成机考,这样大家就轻松很多,毕竟现在握笔写字的人还有多少呢?
考完试之后,我不知道自己有多少胜算,也许通过不了,会栽在论文或者案例分析上,但无所谓了,我参加了考试,总算做完了一件事情,也算善始善终了。
成绩、后记
知道成绩是一个多月之后的12月了,虽然说这个考试对我来说不意味着什么,纯粹自己给自己加戏,但查成绩的时候仍然有些期待的,结果可谓非常险,我3个科目的成绩分别是:57、50和46,45分及格,所以我是通过了。科目1我考了57分比预想的低,我觉得我错的题目不应该超过10题,拿65分以上的,而科目2和科目3的成绩基本如我预料的那样,就是险,运气好就过了,运气不好就等来年再考,当然如果我不过,我估计也不会再考了。同时参加考试的两位同事也都过了,但他们考的是"中项",就是中级项目管理,属于管理类的,管理相对技术来说容易考,他们的目的跟我不同,就是奔着落户去的。
考试到现在又过去了半年,现在疫情原因,上海封城,我在家也呆了一个多月了,打算分享一下自己这次考试经历,这是一段比较特别的经历,一个纪念,一个对20年前的自己的致敬。