对我们程序员来说,发展的途径要么是走管理岗,从开发升级到项目经理甚至是部门经理;要么走技术升级路线。不过在技术路线方面,无法升级到架构师的程序员不在少数。一方面,在不少公司的高级开发岗位上,无法让程序员实践甚至接触到架构师的技能,另一方面,有不少程序员甚至不清楚架构师所需要掌握的技能和升级途径。所以从结果上来看,至少有5成的程序员止步于“高级开发”的程度,这是非常令人可惜的。
而小团队一般 10 人左右,其中常常是技术最牛的人做架构师(或TL)。所以,架构师在广大码农中的占比大概平均不到 10%。而架构师也可以分为初级、中级、高级三档,江湖上真正高水平的软件架构师就更少了。
所以,大部分(超过九成的)码农干上许多年,还是做不了架构师,这是什么原因造成的呢?
1:码农分为真的能写代码的,以及自认为能写代码的。
2:真的能写代码的码农又分为自认为写的不错的,以及真的还不错的。
3:真的能写不错代码的码农又分为会钻研会不断优化的,以及安于现状的。
4:会钻研的码农又分为喜欢广度了解新技术蜻蜓点水的,以及深入钻研用到知识的。了解广度的码农又有少部分愿意深入某些技术,喜欢深入研究的又往往缺乏广度知识。
5:极少深度广度都关注的码农又分为为技术而技术和为业务而技术的。纯为技术而技术的码农在国内的软件行业需求太少,且需求的往往不是应用软件领域了。
6:为业务而技术的深度广度都了解的码农,又需要有良好的沟通能力。
7:而沟通好的,又有一部分当PM去了。
8:然后剩下的,又有一部分慢慢脱离实际开发(不再做任何实现)或者开始依靠拿各种中间件搭积木来作为“架构”手段。
9:除去这些,剩下对业务有一定了解,对技术广度上有多种涉猎,深度上对部分技术研究彻底,还有很重要的一点,考虑问题足够细致全面。
10:细致全面善于沟通,技术上深度广度都没问题, 又喜欢这个工作,还会不时做底层实现,从业务和开发两个角度出发,搭出“架构”来是为了开发效率,为了运行效率,为了开发质量,为了业务灵活和运行稳定,为了维护方便等等这样的人,个人认为可以称为“架构师”。
而真能满足这种需求的,别说题主的10%的比例,1%能不能达到我也持怀疑态度。其实现在的