上图是典型的薪资结构图,我们先从高级程序员谈起。
高级程序员
一般是至少三年以上的工作经验,有些地方是五年以上,很多小公司或者创业公司,高级程序员覆盖工作职责比较广,基本包含部分产品经理、项目经理的工作职责以外,最主要负责核心代码编程,基本技术难点都自己解决为主。
在公司大一点的都有非常明确的职责和级别定义,以阿里外代表,P5-P6代表高级软件工程师这个级别,基本能独立负责设计和编码阶段。
其实,在国外例如google、facebook等公司,很多牛人的title都是Senior Level engineer,这一点不像在中国。
在国内,一般一个高级程序员的准确定义:
负责核心复杂功能的实现方案设计、编码实现。详细描述:能独立设计一个业务模块的能力,并且独立设计数据库表以及UML画图,利用部分设计模式以及懂得算法和效率的高质量代码。
架构师
一般能做到架构师这个称谓,工作年限至少都在5年-8年以上,具体还看每个人的学习能力和领悟能力,也有时间短的,但大部分都是个例。
之所以有架构师这个称谓,主要还是公司发展以及大了的需要,需要专注于技术的人,你也可以理解为技术专家,攻克公司技术难题为主,例如淘宝的双11的挑战,以及公司发展需要考虑独立拆分,数据库压力太大,需要分布式缓存以及CDN的配合,怎么选择,怎么结合自己公司的情况攻克当前技术难题。
如果一定要准备定义,我用一句话:
架构师的职责应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数,挑选适合的技术架构和技术方案。
技术经理
技术经理坦率的讲,就是从高级程序员开始分化而来,一部分同学选择继续专研技术,往纵向发展,一部分同学打算觉得未来管理这条路很好,主动选择开始转型管理这个方向,于是才有里技术主管或者经理经理这个称谓。
我还是以阿里为参考,阿里的M代表管理方向,你可以通过下图可以清晰的看见P系列和T系列对应的级别。
P6和M1,从技术的角度,如果你打算往管理M发展,M1对应的至少你也能胜任资深工程师。
所以,这个时候你就非常清晰了,技术经理本身就是从资深工程师发展而来,很多公司的技术经理根本没有从一线研发做起,大部分就是一个项目经理,带带项目为主,根本无法胜任刚才我讲到的技术经理的工作。
最后,我稍微总结下部分技术经理的要领:
首先,具备核心模块代码编程的能力,从设计方案到核心编码,再到后期的代码review,这方面是能完全胜任的。
其次 ,才是团队任务管理,分配工作,工作量评估,以及帮助团队人员提升实力,以及推动更加合理的考核机制。
再次,协调的能力,与人打交道的能力,平级部门,产品、设计、测试、运营打交道的能力,这个还是要有的,不能一味盲干,也不能一味不发声,总之你要让你的团队在公司应该有一定的美誉,让大家能记住你们团队。
技术总监
技术总监一般工作8–10年以上,面技术经理的事你能做的非常好,再加上公司发展的需要,需要你同时带领多条业务线或者多个小团队的时候,基本就是技术总监了。
从管理的层级,技术总监同时管理多个技术经理,管理从业务线划分的团队。
从技术的层级,这里我补充一点,尽量你能胜任架构师这个级别,也就是说你至少也是一个技术专家最佳。当然,你会问?之前你提到高级程序员开始从技术专家和管理开始分化,这不是有点矛盾么。
其实,但你开始往技术经理发展的时候,其实就是多维度发展了,技术也是一个维度,并不是说你做纯管理脱离于技术,技术的积累你仍然需要继续专研。
最后,总结下技术总监的部分要领:
从业务线和团队的角度,你有能力组建研发部,搭建公共技术平台,管理各条业务线以及从技术经理、高级程序员、项目经理、还有架构师的能力。
8年开发老码农福利赠送:网页制作,网站开发,web前端开发,从最零基础开始的的html+css+JAVAScript。jQuery,Ajax,node,angular框架等到移动端小程序项目实战【视频+工具+电子书+系统路线图】都有整理,分享给每一位对编程感兴趣的小伙伴,每晚8点讲解web前端技术!
获取方式: