【宝典】软件开发的职业规划路线
软件工程师
在许多小公司和刚起步的公司里,软件工程师的工作职责比较广,基本包含部分产品经理、项目经理的工作职责以外,最主要负责核心代码编程,基本技术难点都自己解决为主。一般有三到五年的经验。
![](http://tupian1.hg-daigou.com/weixincj/20191010/kfs3nblfosa4194.jpg)
在国外像Microsoft、Google、Facebook这样的公司,Senior Level engineer是一个很牛的Title。
软件架构师
达到软件架构师这个层次,工作年限至少也有五年以上了,对技术和公司业务都有了相当程度的熟悉,有相当的项目把控能力,主要负责技术攻关。
软件架构师是公司发展壮大后的需要,需要专注于技术的人,你也可以理解为技术专家,攻克公司技术难题为主,例如某个特殊的技术难关(淘宝的双11),以及公司发展需要考虑独立拆分,怎么选择,怎么结合自己公司的情况攻克当前技术难题。
![](http://tupian1.hg-daigou.com/weixincj/20191010/j000klyiiqe4195.png)
架构师的职责应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数,挑选合适的技术架构和技术方案。
技术经理
技术经理坦率的讲,就是从高级程序员开始分化而来,一部分高级工程师选择继续专研技术,往纵向发展,另一部分人觉得未来管理这条路很好,主动选择开始转型管理这个方向,于是才有了技术主管或者技术经理这个称谓。
还是以阿里巴巴为参考,M代表管理方向,你可以通过下图可以清晰的看见P系列和T系列对应的级别。
![](http://tupian1.hg-daigou.com/weixincj/20191010/m4aqbyaywbs4196.jpg)
P6和M1,从技术的角度,如果你打算往管理M发展,M1对应的至少你也能胜任资深工程师。
技术经理本身就是从资深工程师发展而来,如果一个技术经理没有从一线研发做起,缺少相应的技术能力经验,是很难胜任这个工作的
![](http://tupian1.hg-daigou.com/weixincj/20191010/3i3v5fqen2h4197.png)
一个合格的技术经理,首先要具备核心模块代码编程的能力,从设计方案到核心编码,再到后期的代码review。
其次 ,还要负责团队任务管理,分配工作,工作量评估,以及帮助团队人员提升实力,以及推动更加合理的考核机制。
再次,协调的能力,与人打交道的能力,平级部门,产品、设计、测试、运营打交道的能力,让自己的团队有一个相对良好的外部环境。
技术总监
如果你有十年以上的工作经验了,在技术经理的职位上能够很好的完成工作,再加上公司发展的需要,需要你带领多个团队,协调多条业务线和多个部门的时候,从管理的角度上来说,你已经是个技术总监了,一个技术总监可以同时管理多个技术经理,管理从业务线划分的多个团队。
![](http://tupian1.hg-daigou.com/weixincj/20191010/ilmguhayea04198.png)
其实,当你开始往技术经理发展的时候就是多维度发展了,技术只是其中一个维度,并不是说你做纯管理脱离于技术,技术的积累你仍然需要继续专研。
最后,总结下技术总监的部分要领:
从业务线和团队的角度,你有能力组建研发部,搭建公共技术平台,管理各条业务线以及从技术经理、高级程序员、项目经理、还有架构师的能力。
CTO
许多人认为CTO就专注于技术的,这是不对的,CTO如果只专注于技术,那你招一个架构师不就成了,为什么还需要找CTO呢?CTO的要求是最高的,不是每一个人都胜任CTO,好的CTO在国内非常少,非常稀有。
CTO是一个系统的成长轨迹,不是一朝一夕可以练成的,需要后天的巨大“自我改进”能力。CTO的成长之路犹如“从蚕到蛾的蜕变”,整个蜕变过程缺一不可,最后都是要经历性格塑造的,不断的改变自己的性格。
我用一张图能稍微总结下CTO的要领,如果你有志于往CTO发展,至少你得知道,你尽量往这方面发展是OK的。
![](http://tupian1.hg-daigou.com/weixincj/20191010/hshmnih14k04199.png)
真正的CTO,已经不仅仅局限于技术层面了,在通过后期的自己的努力,通过情商、逆商以及商业思维来辅助工作。CTO做的事情,是商业、产品、技术、管理、团队相平衡的综合统管。