所以主要来说说需要具备哪些综合能力以及如何提升吧。
具备哪些能力
首先你要知道任何的软件之上承载的是业务,先有业务才有软件的诞生。所以你对业务要有比较好的了解。不用面面俱到,但是广度一定要有,并且尽量要达到熟悉的水平,否则你无法在宏观层面把控架构设计与业务发展的合理性。比如:
- 你得知道整个系统承载了哪些业务?
- 这些业务之间又有什么关系?
- 如何运转的?
只有了解了这些,你才能知道如何用技术去“撬动”它,发挥技术最大的价值。
关于技术,架构师做的工作是一个宏观层面的工作,所以必须要有一个高视角和良好的抽象设计能力。因为只有视角更高,你才能发现更多的问题。而抽象设计是“架构”工作的本质,怎么去抽象,怎么去设计。前者靠的是分析能力,能否尽可能多的将不确定性识别出来,变成确定性的东西。后者靠的是规划能力,规划不是指整出个完美的、高大上的框架,而是适合当前环境的框架。这里的适合就是尽可能的平衡好时间、人、钱这三要素。
想更详细的了解,可以翻阅偶的个人发布的文章《从架构设计到架构师》:
https://www.toutiao.com/i6579420163462922759/
另外还有一些不管是不是架构师都需要掌握的通用技能,如沟通能力。制定架构方案可能是少数人的事,但是真正的去落地是全员的事,需要发挥沟通能力,或者说谈判能力,给你的技术能力加速、加杠杆。
如何学习
关于业务,只能自己深入到一线去问,看文档等。
关于技术,首先你得找到一把自己的武器,找一门语言深入去学,把底子打扎实,武器磨锋利了才能做后面的事情。然后修炼网络原理、操作系统原理等内功,这些其实是一个蓄力的东西,一时半会看不出效果,但是会逐渐变成你成长道路上的加速引擎,让你后发制人。如下图:
关于沟通能力等软技能,是大家大部分技术人的短板。但只要做到这2点就会有很大改善。
- 一是克服自己的心理障碍,充满自信的去说服别人。
- 二是需要学习一些心理学的知识,所谓知己知彼。
那么如何落实呢?
实际在学习的时候,切勿停留在“看知识”的层面,不管看到什么,多想一下自己怎么去运用它,有没有作用。像技术的话,现在框架冒出来的速度越来越快,不要没有目的的去追逐,做好归类,深入剖析其中的一个,其他的一通百通,了解起来也很快。还可以走一下“捷径”,通过观察实际发生过的事情细节,加上深度思考,去尝试直接套用他人的思想到你的场景中,二次加工,形成你自己的思想。
既然看到这了,送偶一个「赞同」吧,支持偶的创作
也可以「关注」偶,带你以技术思维看世界~
想更进一步和偶一起玩耍,欢迎「搜索微信公号:跨界架构师」。
内容包括:架构设计丨分布式系统丨产品丨运营丨个人深度思考。