为什么大部分的程序员成不了架构师?为什么很多程序员没有升级到架构师?

对我们程序员来说,发展的途径要么是走管理岗,从开发升级到项目经理甚至是部门经理;要么走技术升级路线。不过在技术路线方面,无法升级到架构师的程序员不在少数。一方面,在不少公司的高级开发岗位上,无法让程序员实践甚至接触到架构师的技能,另一方面,有不少程序员甚至不清楚架构师所需要掌握的技能和升级途径。所以从结果上来看,至少有5成的程序员止步于“高级开发”的程度,这是非常令人可惜的。

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

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

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

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

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

4:会钻研的码农又分为喜欢广度了解新技术蜻蜓点水的,以及深入钻研用到知识的。了解广度的码农又有少部分愿意深入某些技术,喜欢深入研究的又往往缺乏广度知识。

5:极少深度广度都关注的码农又分为为技术而技术和为业务而技术的。纯为技术而技术的码农在国内的软件行业需求太少,且需求的往往不是应用软件领域了。

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

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

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

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

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

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

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

金字塔结构

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

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

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

英文水平差

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

小富即安的心理

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

二三流企业的压制

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

知识结构的缺陷

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

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

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

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

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

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

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

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

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

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

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

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

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

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

如果你想要做到架构师这个级别,我自身是一名安卓程序猿,所以在这里放上这样的一份关于Android的架构进阶路线图谱,里面的内容基本概况了目前互联网的主流技术:

Android进阶路线分析

Java语言进阶

  • 泛型与注解在Retrofit中的应用
  • 多线程与Java File IO操作应用实战
  • Rxjava原理分析
  • JVM与内存泄漏原理解析
  • ClassLioader与反射在Hook中应用
  • 动态代理机制在源码中的应用

高级UI与FrameWork

  • UI绘制原理
  • 动画原理
  • 事件响应机制
  • 屏幕适配
  • FrameWork源码解析
  • 相机适配

360°性能优化

  • 从事件
  • 从内存
  • 卡顿调优
  • APP保活
  • 内存优化
  • 高性能编程实战
  • OOM原理解析

NDK开发专题

  • C/C++基础
  • JINI编程基础
  • 图像处理与热修复应用
  • 音视频开发
  • OpenCV人工智能
  • OpenCL 图像绘制

前沿技术专题

  • 热修复/热更新
  • 组件化/插件化
  • RxJava深入研究
  • 图片与网络架构
  • Google I/O大会技术
  • Kotlin项目实操

微信小程序

  • 小程序架构介绍
  • UI界面开发
  • 高级API实操
  • 微信对接实战
  • 任务清单项目
  • 电影榜单项目

Flutter Hybrid开发

  • Dart语法
  • Flutter线程运行模型
  • Flutter与Native通信架构
  • Flutter内存调优
  • Flutter项目实战

想要成长为一个移动互联网架构师,这些技能是必不可少的,除了上面的知识体系,小编自己在还一些平台收集到了许多学习资料和个人总结的一些经验,一线互联网公司得面试经历面试题在这里分享给大家,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

好啦,文章写到这里就结束了,如果你觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

原文地址:https://blog.51cto.com/14332859/2449780

时间: 2024-07-28 14:46:24

为什么大部分的程序员成不了架构师?为什么很多程序员没有升级到架构师?的相关文章

程序员生存定律-职场里那些程序员不太喜欢的事

程序员生存定律这系列的目录在这里:程序员生存定律--目录 喜欢从头瞄的,可以移步. ------------------------------------------------------------------------------- 武林里往往会有很多利益纠葛,常常是你想成为五岳剑派的盟主,我也想成为五岳剑派的盟主.一旦如此,那么就得各凭道行,做过一场一分高下.有利益纠葛就需要合纵连横,恒山派支持了华山派,华山派就实力大进:泰山派支持了嵩山派,嵩山派就实力大进. 有合纵连横就需要政治与

为什么大部分的程序员成不了架构师?

小团队一般 10 人左右,其中常常是技术最牛的人做架构师(或TL).所以,架构师在广大码农中的占比大概平均不到 10%.而架构师也可以分为初级.中级.高级三档,江湖上真正高水平的软件架构师就更少了. 所以,大部分(超过九成的)码农干上许多年,还是做不了架构师,这是什么原因造成的呢? ① 码农分为真的能写代码的,以及自认为能写代码的. ② 真的能写代码的码农又分为自认为写的不错的,以及真的还不错的. ③ 真的能写不错代码的码农又分为会钻研会不断优化的,以及安于现状的. ④ 会钻研的码农又分为喜欢广

百度开放云首席架构师徐串:架构师必须理解程序员的痛

在2016中国云计算技术大会(CCTC 2016,专题报道)上,百度开放云首席架构师徐串发表了题为<企业IT基础架构在云端如何变革>的主题演讲,并接受CSDN记者专访,深入分享了他对架构及设计的认识,对架构师工作和技能的理解,以及百度开放云架构满足大数据和人工智能等不同应用需求的实践经验. 徐串表示,云计算环境下的架构,除了高吞吐.可扩展性.稳定性的需求,灵活性的实现也很重要.架构师的工作就是在各种矛盾之间坚持或妥协,如高吞吐和低延迟的矛盾,优雅架构和紧迫需求的矛盾.保证业务的需求,是设计架构

腾讯首席架构师:Java程序员四个阶段成长路线,少走弯路

有这么一位Java大牛 他是前 Oracle 首席工程师,负责过北京Java核心类库.国际化.分发服务等技术团队的组建.大家都知道,Java 就是 Oracle 公司的,他对Java的理解会与众不同.他把Java程序员的成长路线划分为新手.高级新手.胜任者.精通者和专家,让大家少走弯路.创一个小群,供大家学习交流聊天如果有对学JAVA方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学JAVA能够持之以恒JAVA爱好群,如果你想要学好JAVA最好加入一个组织

为了升级到架构师,程序员无需过度关注哪些技能?哪些技能不可缺?

如果走技术路线,架构师是个关键的结点.如果在大厂,一般有有6年时间足以升级到高级开发.因为在大厂里,能提供架构师所需的分布式组件开发调试以及上线的经验,上进点的程序员只要跟着大流,多通过排查问题观察底层,多通过压测或部署组件多实践缓存.高并发高可能之类的技术,想不升级到架构师都难. 但不少程序员止步于高级开发,在我之前的博文为什么很多程序员没有升级到架构师?里讲述了这一现象并分析了原因.如果是因为主观不上进导致自身发展受限,那么别人也帮不了你,不过我在面试候选人的时候,发现一些态度积极的程序员把

一名资深架构师规划Java程序员五年职业生涯指南

每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来.今天我给大家分享的是一篇来自阿里大牛对五年工作经验程序员的职业建议,希望对你们有启发. 第一阶段: Java程序员 Java初级程序员 第一阶段我认为对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发. 第二阶段: Java中级程序员 企业标准程序员 第二阶段—又是

做10年Windows程序员与做10年Linux程序员的区别

如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大.我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在windows下面的, 学的是VB,后来转到VC++,当时用的是VC6.0, 做windows下面的开发5年后转入linux下面做开发的,开始在li

做10年Windows程序员与做10年Linux程序员的区别(附无数评论)(开源软件相当于熟读唐诗三百首,不会作诗也会吟)

如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大.我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的感受,我最早开始学习编程也是在windows下面的, 学的是VB,后来转到VC++,当时用的是VC6.0, 做windows下面的开发5年后转入linux下面做开发的,开始在li

程序员生存定律--前言:解码程序人生

#本来这些陆续累积下来的文章是要汇集成一本书的,和侠少同学也谈过,但弄V众投实在太忙了,没空管精调细作它了,所以把这些章节陆续整理下放出来,希望对刚入行的小朋友们有些帮助.有些事真是入行很久后才明白,感觉上如果能预先明白了,应该挺有帮助的.下面故事开始. ----------------------------------------------------------------------------------------------------- 有这样两个人,他们一个66年出生于陕西长