郭东白的架构课_51_40职业成长上架构师成长的必要条件是什么
你好,我是郭东白。
到上节课为止,我们已经覆盖了架构师的五个核心能力。
不过无论做什么事情,都必须问自己这么一个问题,我做这件事情的优势是什么?为什么我可以成长为比别人更优秀的架构师?其实这个问题呢可以分解成两个问题,一个呢是成长为优秀架构师的必要条件,另一个呢是成长为优秀架构师的充分条件。
我们今天呢先来讨论第一个话题。
说起必要条件呢,让我小想起了小时候背过的一篇古文文学,其中有一句是这样子子何视而亡?曰,一瓶一波煮矣。
用白话文来说呢,就是你凭什么可以去那么远的地方呢?有个瓶有个碗儿就行了。
其实我们今天想找的就是你做架构师的一平一波。
我们先回顾一下代表架构师成长的五种角色,也就是程序员兼职架构师、跨域架构师、总架构师和CTO.希望通过这个总结思考,能帮助你看到架构师这个职业更深刻的内涵。
我在文稿里放了一张图,你可以看一下,不过呢也再来解释一下这张图的内容。
这五个角色呢分别代表了架构师成长的五个阶段。
在每个阶段,架构师关注的是软件架构的不同侧面。
在程序员阶段,主要关注实现的结构化,也就是一个模块内有关业务的部分。
兼职架构师阶段主要关注模块整体以及跟业务无关的横向问题。
跨域架构师阶段主要关注不同模块间结构、合理性的问题。
总架构师阶段主要关注技术架构的长期正确性。
Cto阶段主要关注企业的长期生存。
可以看出呢,这五个阶段其实是关注点不断扩展的过程。
回想上节课,我提到的双重人格,其实在架构师成长的整个生命周期内,最好培养出五种人格。
这样的话呢,你就可以站在不同的立场,从不同维度去审视公司软件结构的合理性。
就像我现在呢是CTO,依然呢保持着写代码,看代码的习惯,依然呢要去看横向问题的投入,依然需要在团队间争吵不休的时候对跨语问题做出裁定。
与此同时呢,我还要履行总架构师和CTO的职能。
我们之前也提到过了,任何一个架构师都要关注从微观到宏观的所有问题,只不过权重有所差异罢了。
也就是说呢,五重人格不是说你在每个职业阶段呢仅仅需要其中一个,而是每个职业成长阶段都需要。
只是随着职业成长,你的关注点会逐渐迁移到宏观问题和更直接的生存责任上去。
甚至哪怕不做架构师,你也要想办法提升自己在这五个维度上的能力。
这些能力呢对你从一个初级程序员过渡到资深程序员也很重要。
所以你一定要好好学好这门课。
那我们思考一下,想培养出这五个维度的能力,你需要具备什么样的必要条件呢?必要条件一就是思考力。
如果说架构式成长必要条件只能有一个的话,我认为只能是思考力,更准确的呢是独立思考的能力。
我们在模块四呢专门会讲怎么提升思考力。
这里呢我先把思考力的概念解释清楚。
在我看来呢,思考力就是我们生活的工作中第过独立思考带来有效结论的能力。
这里的关键词有两个,首先呢是独立思考,独立呢,并不是说避免跟他人讨论或者不上网查资料,不参加会议,而是指你得出的结论需要来自这三个方面。
第一,有别于他人的视角,第二,不同的证据组合。
第三,不同的思维模式。
也就是说呢通过你的独立思考,你能得出区别于他人的结论。
第二个词呢是有效。
也就是说呢,能为公司或者团队带来足够的价值。
你看到了别人有不到的东东。
而而且这东东呢对对公司来说是越价值的,而不是把大家的主意分散到了。
没有长期或或短期价价值的方力。
有很多人呢把思考力误认为是学习的能力。
其实这两个能力呢完全不同。
学习能力呢是指把把已的知识高效吸收和利用的能力。
好的学习能力呢会帮助你获取更多维度的证据。
而思考力呢是创新的源泉,是得到新的有效价值的能力。
我在开篇词就提到了,思考力呢是架构师的愉为。
为么这么说呢?有很多呢随着网络络普及,这就世界获取知识识成本本越越越低,知识扩散的延迟也越来越低。
为一个架构师呢,如果所有的知识来源都是知乎即刻时间和stack overflow,或者是某本流行书籍的映射,那呢你就没办法通过学习来持续获得额外的竞争优势。
另一方面呢,我们现在的互联网呢其实是充分竞争的状态,解决方案呢远远比市场需求要多得多。
在基础设施到云,到服务框架,从基础模型到端上交互有多种组合。
在这种情况下呢,我们缺少的呢往往不是答案难,是甄别多个答案优劣的能力。
当我们面临一个问题的时候呢,多数人都能google出十个答案来获取答案不难。
而在通过对场景做推演,也就是依靠你的思考力,最终排除九个次优的答案。
这就是呢为什么我认为思考力是互联网时代软件架构师的必要能力。
接下来呢来讲第二个必要条件,也就是信息内化的能力。
谈架构师成长的必要条件时候呢,很少有人会提到架构师的信息内化的能力。
但是根据我过去十年的观察,在架构职能上做的比较好的人,一般都具有一定程度的优势,以及高效内化这种优势的能力。
所谓信息优势呢,就是你所在的环境呢有大量的高质量信息,或者呢你获取这些信息的能力呢比别人强,渠道源多。
所谓内化,是指能够从这些源头中有效总结,比别人积累了更多的知识。
我这里呢特别用信息只在你之外客观存在的那些内容。
而用知识呢只在你的脑海里可以随时随用的那些内容。
信息内化的过程呢,也就是从接触信息到消化吸收成个人知识的过程。
如果更进一步,把这些知识系统性的表达出来,你就是一个很了不起的知识传播者了。
信息优势的例子有很多,比如说十几年前国内做架构做的比较好的人往往英文比较好,因为他们在读文档上占了优势。
再往后呢,是海归带着国外大厂积累的互联网经验和知识也很受欢迎,因为很多国外大厂的技术细节并没有对外开放,别人学不到。
再往后呢,就是一些随着国内大厂成长起来的老兵,在PC和移动互联网高速成长的过程中,积累了大量的实战经验。
我出国很早呢,一直在国外大厂工作,在国内互联网爆发前呢,积累了一定的信息优势。
如果你是一个刚入行不久的程序员,那你怎么去寻找自己的信息优势呢?这呢让我想起前不久在杰克时间上分享架构师成长这个话题直播的时候呢,接到了一些问题。
有的同学会说我在一个小公司用户量少,验证不了架构设计,是不是合理也的同学说公司规模小,接触不到很完整的很主流的架构模式或者实战机会。
也的同学说我们公司太大了,我就是一个小螺丝钉,知识面不够广。
还有同学说呢,我们公司有专职的架构师,根本轮不到我做架构,专职架构师还抢不过来呢?有相当多类似的问题,我梳理总结了一下,同学们基本上就这么一个需求模式。
我想在大大公司里求广度。
我呢也想在小公司里求深度,我想在大公司里快速成长,也想在小公司里有一个高度稳定的职位来钻研技术。
我呢引用一个禅中公案来回答这个问题。
行者呢,问老和尚,你得到钱,你做什么?老和尚呢,说砍柴担水做饭。
行者又问呢,那得到后呢,老和尚说呢,砍柴担水做饭,那行者说那那叫有什么区别呢?那何谓得到呢?老和尚回答说,得到钱呢,我砍柴时候惦记着挑水,挑水时候惦记着做饭,而得到后呢,我砍柴即砍柴,单水即端水做饭即做饭。
其实呢大厂里砍柴,小厂里挑水,不论是大厂还是小厂。
他们呢都用不同的方式呢提供了架构式成长的信息优势,大厂呢更有利于增加深度。
大厂呢更有利于拓展做饭。
如果你在大厂里,就要多解决难题,把这种信息优势转化成某个领域的深度。
如果在小厂里做事,那你就要把小厂里提供给你的信息优势,内化成你所在领域的宽度。
这过程呢会帮你把外部的信息优势内化成内在的知识优势。
当你处在一个有相对信息优势的环境中,你又比别人更擅长于发泄总结和抽象知识,最终就会形成知识优势。
这种能力呢是从大量信息中提炼出知识模型的能力,而这些知识呢最终也会固化到你脑海里,可以帮助你一生。
我在模块一里呢介绍到六个法则,以及这个模块里举的稳定性的六个法则,都是从信息到知识的典型例子。
当然呢最佳选择呢就是在一个小场。
然后随着呢小厂啊成长为大厂,你同时提升自己的深度和宽度,能做到这一点呢就需要有足够的眼光了。
关于这个话题呢,我们在这个模块的最后呢会有一些讨论。
总结一下呢,就是在当前高度竞争的环境下,缺少信息优势,其实很难在架构师成长过程中胜出。
我们需要更深度的理解自己所在的企业行业的特点,找到自己特定的信息优势,并且最大程度的内化这些信息来获取成长。
同时呢也能帮助到公司。
最后呢是第三个必要条件,也就是适盈率。
通过前面几节课的分析,我想你已经看到了从程序员到架构师,再到CTO职业成长阶段,跟其他的职业相比呢有一个重大差异,那就是能力的不连续性。
有的职业呢,比如说书法家、工艺美术家、中医和厨师等,这个精神呢就非常适用。
他们在职业生涯中不断打磨,同一种能力,所以呢越老越值钱。
但架构师这个行业就很不一样。
一个人呢从程序员到CTO的成长过程中呢,需要经历多次蜕变。
比如说在职业初期呢要沉迷于技术,而一旦成为CTO呢,反倒要不断思考技术之外的解决方案。
在职业初期呢基本上不需要什么人际关系能力,但当成为跨界跨域,架构师想要解决好冲突这个能力呢就是绝对必须了。
所以呢架构师成长的一个必要能力的呢就是适应能力。
意思是说呢,你在不同的成长阶段,根据环境和场景不断调整和扩大自身能力的matter能力。
也就是这个原能力目标呢是最大化自己的产出,以及对企业的增持。
我在模块导读里的提提到过啊,架构师的职业成长呢需要的不只是这五种能力,像沟通交流人员管理的也是不可或缺的。
为了把这个道理呢讲清楚,我把程序员到CTO成长过程中所需要的能力变迁,用一个表格来表述一下。
我把这个表格呢放在文稿里,听完音频呢你记得去看一下这个表的主要目的呢是展示出架构师成长过程中的变化。
所以呢我没有追求完整性。
我把其他方面的能力,比如说写文档做培训,跨职能协同、规划落地等等呢,没有在这个表格里呢表述出来。
我来解释一下这张表格啊。
我把这个能力呢分成三大组。
第一组呢是伴随职责而扩大的岗位技能。
第二组呢是个人技能,第三组呢是管理技能。
而第四组呢就是我们前几节课提到过的每个角色的工作范围、工作重点和核心能力。
这里呢是不再重复了第一组技再重复了经验和机会磨练出来的,不能仅仅靠读书学习来提升。
从程序员到CTO所处理的问题的不确定性越来越高,而应对不确定性的过程中,业务理解也变得越来越重要。
更大的领域范围就要求更大的技术宽度和更好的沟通交流能力。
第二种技能呢是可以学习的,往往在学校里的优等生呢会比较出色。
但是呢随着架构师职责的扩大,对技术深度项目推动交付的能力,以及对执行细则的关注呢会越来越少。
所以自主的技能呢对职业初期成长来说很重要,随着时间的推移,慢慢呢就没那么关键了。
第三种技能呢是管理宽度,一般架构师岗位呢都没有下属少数首席架构师呢会带小团队,对管理要求也不高。
但是CTO呢管理幅度非常大,往往呢会突破当bar number.也就是说呢,社会科学家呢认为的一个人有效管理团队的大小,这个数字呢有很多版本,比较流行的说法呢是一百五十人。
但是根据我的观察是,互联网软件行业高速变化,每个人的工作职责呢要宽很多,如果管理幅度超过一百人,就很难靠个人管理来有效协同。
所有的人呢必须靠下属呢来协调大家的工作。
这时候呢一个人的真正的管理能力,注意呢,这里不是社交能力呢,而是基于自身经验和管理科学的管理能力。
这个角色呢跟以前程序员到架构师的个人贡献者,角角呢跨度非非大大也正是为为这个原因呢。
一个优秀的个人贡献者往往在成为管理者的过程中呢会栽很多跟头。
总结一下呢,多种角色的转移,多次的能力变迁以及职业后期复杂度的迅速提升,意味着架构适应力呢对架构师而言是成长的必要条件之一。
好了,今天的内容呢就是这么多,我来简单总结一下,我再扩充一些知识。
刚才讲的这三个必要条件呢其实并不完整,像自驱力啊学习能力,影响感召力、推动力、沟通交际能力和管理能力呢也是职业成长的必要条件。
不过呢我认为大多数都是普遍存在的能力,或者是没有高区分度的能力。
举个例子呢,架构师本身是一个非常非常自驱的职业,所以自驱力呢是架构师成长的一个必要条件。
但是呢我认为整个软件行业已经进入到极度内卷的竞争环境中。
无论是做程序员、产品经理,还是UED,自驱力呢是标配,我呢就不专门提了。
当然呢我选择思考力信息内化能力和适盈力,作为架构师成长的三个必要件件。
还有一个很重要的原因,我因为这门课呢就是帮你做架构师成长的战略规划。
所谓战略呢,就是根据长期目标做合理规划划,要主动放弃一些能力,才能专注在另一些能力的发展上。
想拿我自己的职业发展举力呢,从职业生涯初期到今天呢,我还有很多能力都很欠缺。
所所以这些板板没有有特多的影响到我的职业发展,主要呢还是靠一些相对强的能力来给自己遮扯。
所以呢如果我建议你修行一百个能力呢,那其实啥都没帮助你。
在我看来呢,思考力信息内化和适应力是一个优秀架构师成长中最重要的必要条件。
最后呢我还给你留了一些必选的作业。
请你呢务必完成这个作业的目的呢是强迫自己尝试,跟他人有不同的思考角度,最好呢能给出一些具体的理由。
举个例子,你可以在留言区这么写。
老师,我不认同你的观点,我认为架构师成长的三个必要条件,不是思考力信息、内化能力和适应力,而是某某条件。
我因是什么什么,欢迎把你的思考和想法分享在留言区我也和你交流,也欢迎你把课程分享给你的朋友。
我同时呢我们一起进步。
也我也请你关注我的抖音号,郭东白从这周起呢,我将在里面发布这门课程的一些补充内容,那么我们下节课再见。