架构师备考的一些思考
前言
之前的python-pytorch的系列文章还没有写完,只是写到卷积神经网络。因为我报名成功了系统架构师的考试,所以决定先备考,等考完再继续写。
虽然架构师证书不能证明技术水平,但在现实生活中的某些情况下是有意义的,比如我要是去学校做培训老师的话,有这个证就会课时费高一点。考试虽然无聊,但有些考题还是蛮有意思的。
思考
看了几套架构师的考题,发现个有趣的现象,就是综合知识的考题都会加入当年流行的概念,比如2020年就有问微内核的考题,这是因为19年华为发布了鸿蒙系统。
【微内核简介:微内核就是把宏内核(windows系统)中的一些功能提取出来,比如文件系统,提取出来,以进程形式存在。优点就是不容易挂,比如文件系统挂了,系统不挂,缺点是性能不好,因为调文件系统还要进程交互】
这让我想起来两种架构师的区别,一种是能从1-100搭建框架的,一种是10-100搭建框架。什么是10-100呢,就是找一个开源项目或者付费开源项目。
区别一:10-100的架构师的特点是,当开发向他发问一些细节问题,他会让开发去自己调查,如果推脱不掉,他就只能自己调查,然后把意见给开发。而1-100的架构师,会直接给出答案。
区别二:10-100的架构师就会特别关注这种实事,比如鸿蒙发布的系统这种事;然后通过加入10概念+10组件,让100分的系统进化到200分。而1-100的架构师会深入研究组件,然后优化或者自研组件,然后将重组后混合的5个概念和3个组件,以最优的性能的方式,将其加入到系统,然后将系统从100分提升到200分。
两种模式的架构师,其实都很累,但10-100分的架构师是更被重视,而且其所在团队的人数数量通常是,1-100架构师的团队人数数量的5-10倍。所以通常10-100的架构师会被老板认为能力更强,毕竟带的团队更大,概念和组件更多。
回到架构师考试,这个考题,从本质上就是从java的10-100架构师的角度出发的。
后来,我又回头看了软件设计师的考题,因为我已经从1-100的net架构师转java开发了,所以我看这考题就有一种很深的思考,那是一种这考题就是为了java开发出的感觉。
比如,23种设计模式,这个就是在java里玩的很转,这是因为java语言的不完善,他是一个高级语言和低级语言的结合,但在其他语言,23种设计模式就是常规的写代码操作,完全没必要学习,因为只要你会写代码,你写的每行代码都可以解释为23种设计模式中的一种或几种。
而如果你是java开发,只要你工作几年,就会对23种设计有深刻理解,完全不用背,因为总用。但其他语言开发,就得背,而且背的时候还不理解,因为它违背了你认知,所以你不可能背明白。
再比如微服务设计,只有java搞无限制的http请求,例如一个用户创建接口里要创建用户和部门关系,而创建用户部门关系又要验证用户是否存在,那么我们就有token,创建用户,创建用户部门关系,验证用户存在,4个http请求,如果业务复杂,10+的http请求也是可能的。
这在其他语言是不可理解的,因为其他语言玩微服务不是这样的。但因为java的环境如此,所以会有很多相关问题,而这些问题被拿到考题中,这就跟其他语言的开发者的认知相背了,所以这是其他语言开发根本不可能靠背和理解能认知的。
考题
当然还是有一些考题很有意思,下面是09年的考题,虽然是以前的,可能这题型不会考了,但还是挺有意思,可以学习一下。
当然这题的答案我认为是有问题的。
这道题,关键点是ZP=Z,在已知转移矩阵p的情况下,已知x是当前的销售数量,例如x=[10,5],那么如果要预测下一次该品牌的销售概率x'的话,可以使用公式x'=x⋅P。
[10,5]⋅ [ 0.8 0.4 =10*0.8+5*0.2 10*0.4+5*0.6 = [9,7]
0.2 0.6 ]
即A,B品牌下次卖 [9,7]。
因为ZP=Z,所以,选项中的最终占有率就是Z,所以我们挨个计算就行。
答案是D。
计算如下:
[2/3 1/3]⋅ [ 0.8 0.2 =2/3*0.8+1/3*0.2 2/3*0.2+1/3*0.6 =2/3*4/5+1/3*1/5 2/3*1/5+1/3*3/5 =9/15+1/15 2/15+3/15 =2/3 1/3
0.2 0.6 ]
所以d令zp=z成立,所以选D。
注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!