zoukankan      html  css  js  c++  java
  • 为什么大部分的程序员成不了架构师?

    小团队一般 10 人左右,其中常常是技术最牛的人做架构师(或TL)。所以,架构师在广大码农中的占比大概平均不到 10%。而架构师也可以分为初级、中级、高级三档,江湖上真正高水平的软件架构师就更少了。

    所以,大部分(超过九成的)码农干上许多年,还是做不了架构师,这是什么原因造成的呢?

    ① 码农分为真的能写代码的,以及自认为能写代码的。

    ② 真的能写代码的码农又分为自认为写的不错的,以及真的还不错的。

    ③ 真的能写不错代码的码农又分为会钻研会不断优化的,以及安于现状的。

    ④ 会钻研的码农又分为喜欢广度了解新技术蜻蜓点水的,以及深入钻研用到知识的。

    了解广度的码农又有少部分愿意深入某些技术,喜欢深入研究的又往往缺乏广度知识。

    ⑤ 极少深度广度都关注的码农又分为为技术而技术和为业务而技术的。

    纯为技术而技术的码农在国内的软件行业需求太少,且需求的往往不是应用软件领域了。

    ⑥ 为业务而技术的深度广度都了解的码农,又需要有良好的沟通能力。

    ⑦ 而沟通好的,又有一部分当PM去了。

    ⑧ 然后剩下的,又有一部分慢慢脱离实际开发(不再做任何实现)或者开始依靠拿各种中间件搭积木来作为“架构”手段。

    ⑨ 除去这些,剩下对业务有一定了解,对技术广度上有多种涉猎,深度上对部分技术研究彻底,还有很重要的一点,考虑问题足够细致全面。

    ④ 细致全面善于沟通,技术上深度广度都没问题, 又喜欢这个工作,还会不时做底层实现,从业务和开发两个角度出发,搭出“架构”来是为了开发效率,为了运行效率,为了开发质量,为了业务灵活和运行稳定,为了维护方便等等这样的人,个人认为可以称为“架构师”。

    而真能满足这种需求的,别说题主的10%的比例,1%能不能达到我也持怀疑态度。其实现在的“架构师”大多数都停留在8这个层次,甚至很多在5这个层次就当上title上的架构师了。

     

     

    总之,成为架构师,不仅仅是工作上的简单积累,更需要主动接纳工作外的大量知识,同时,对性格上对于非技术能力上也有一定的要求,不仅如此连思维方式都很重要,外加职业发展中又有很多岔路,最后走到架构师这根树枝上的就寥寥可数了。

    金字塔结构

    自古以来,金字塔结构(人群分个三六九等、高中低三档)在人类社会的各行各业中普遍存在,这是客观规律。恐怕再过千万年,也是如此。

    人类社会为什么普遍、长期存在金字塔现象?其他动物,比如蚂蚁、大雁社会,有吗?这个问题就很深了,刨根问底有难度,也许应该问上帝。

    金字塔结构/现象从根本上决定了大多数人做不了软件架构师。不光软件工程行业如此,能做技术领导的始终必然只是位于中上层的少数人。

    英文水平差

    据说中国有 700 万码农,英文不好似乎是一个比较普遍的现象。英语,尤其读写不好,把合格的架构师候选人选砍掉一大半。

    小富即安的心理

    很多码农每月拿到万把块钱,就心安理得了,不再有更高的追求。求稳求安定,这符合大多数人的心理。不满于现状,坚持不断学习,努力提高自己的开发技术和管理水平,拥有强烈进取心,想一朝一日做编程高手、软件架构师的人毕竟是少数。

    二三流企业的压制

    架构师不是随便什么人可以做的。在一个企业团队里,架构师作为研发和管理骨干,具有特殊的地位和权利。

    知识结构的缺陷

    架构师,程序员, 产品经理的区别,大概就是建筑行业里建筑师,建筑工人,甲方业主的区别。产品经理说我要建这么这么一栋楼,架构师说好吧,我来帮你看看是做成砖木结构还是 框架结构,房型怎么设计,水电气怎么布局,预算多少,然后程序员上阵,按照图纸把楼建起来。运营是大楼的物业管理,负责营运大楼。

    软件开发越来越成为传统行业(即便在互联网企 业),一个成熟的软件团队内部自然会分化出这些角色,各展所长。但非常不同的是,建筑工人很少能自发成长为建筑师,后者都是科班出身,因为建筑学科已经高 度发达,需要掌握结构力学,美学等技术,现在软件行业还没有这么高的成熟度,程序员和架构师接受的都是一样的计算机教育,所以程序员可以自学升级到架构 师,走一条不同的升级打怪路线。

    那么,架构师是什么人呢?

    按所工作的不同软件层分,有网络架构,系统架构,数据架构,业务架构,应用架构,平台架构。

    按所解决的问题领域分,有电商架构,支付架构,搜索架构,安全架构,性能架构,游戏架构,多媒体架构,等等等。

    按其工作的深度来分,有集成架构,业务架构,模块架构,框架架构,中间件架构,软件架构,引擎架构,服务器架构,甚至编程语言架构。

    是不是太乱了?好比在设计师的世界观里一切东西都需要设计。软件也需要精心设计,在优秀的程序员眼里,每一行代码都需要架构!都体现了架构。

    为了解决问题,程序员自然需要架构,他们中的佼佼者被冠以架构师的名号,获得了一定的话语权,逐步成为一个职业分工,我想,这就是架构师的本来面目。

    成为架构师,需要经验和眼界

    老码农分为两种:游击队和板凳王

    坐穿板凳有利于积累经验,而不利于开拓眼界

    游遍四海有利于开拓眼界,而不利于积累经验

    码农的生活是高压的,唯有热情可以驱使你一边吃着苹果,一边又去摘梨

    然而,又有多少热情没有随时间而冷却呢?

    转载于:https://zhuanlan.zhihu.com/p/86262782

  • 相关阅读:
    mac上python3安装HTMLTestRunner
    双目深度估计传统算法流程及OpenCV的编译注意事项
    深度学习梯度反向传播出现Nan值的原因归类
    1394. Find Lucky Integer in an Array
    1399. Count Largest Group
    1200. Minimum Absolute Difference
    999. Available Captures for Rook
    509. Fibonacci Number
    1160. Find Words That Can Be Formed by Characters
    1122. Relative Sort Array
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/13442069.html
Copyright © 2011-2022 走看看