一篇文章搞懂高级程序员、架构师、技术总监 技术总监

技术总监(一篇了解高级程序员、架构师、技术总监的文章)
点击上面关注,每天学习进步 。
“我希望通过一篇文章,让大家充分了解从程序员到架构师、技术经理、技术总监、CTO的完整差异和进阶要领 。
只有客观的认识,才能更合理的找到自己的优点,从而更好的发展自己 。

以上是典型的薪酬结构图 。先说高级程序员 。
高级程序员
一般工作经验至少三年,有的地方五年以上 。在很多小公司或者初创公司,高级程序员涵盖的工作职责非常广泛,基本包括一些产品经理和项目经理 。他们主要负责核心代码编程,自己解决基本的技术难点 。

在比较大的公司里有非常明确的职责和层级划分,以阿里为代表,P5-P6为高级软件工程师,基本可以独立负责设计和编码阶段 。

实际上,在谷歌和facebook这样的外国公司,许多伟大的头衔都是高级工程师,不像在中国 。
在中国,高级程序员的一般准确定义是:
负责核心复杂功能的实现方案设计和编码实现 。描述:能够独立设计一个业务模块,并独立设计数据库表和UML图,使用一些知道算法和效率的设计模式和高质量代码 。
建筑师
一般来说,建筑师这个头衔是可以做到的,工作年限至少5 -8年,看每个人的学习能力和领悟能力 。也有时间短的,但大部分都是例子 。
之所以有建筑师的头衔,主要是公司发展壮大的需要 。需要专注技术的人也可以理解为技术专家,主要是攻克公司的技术难题,比如淘宝双11的挑战,公司发展需要考虑独立拆分 。数据库压力太大,需要分布式缓存和CDN的配合 。如何选择,如何结合自己公司的情况克服目前的技术难题?
如果一定要准备一个定义,我就用一句话:

架构师的职责应该基于技术和业务之间的中间角色或平衡点 。在深刻理解业务的基础上,架构师应该根据业务中的诸多变量选择合适的技术架构和技术方案 。
技术经理
坦白说,技术经理和高级程序员是有区别的 。有些同学选择继续专攻技术,纵向发展 。有同学打算认为未来的管理是一条好路,主动开始转型管理方向,于是有了技术总监或经理的称号 。
我还是指阿里 。阿里的M代表管理方向 。通过下图可以清楚的看到P系列和T系列的对应级别 。

P6和M1,从技术的角度来说,如果你打算发展成管理M,至少可以取得与M1相对应的高级工程师资格 。
所以,这个时候你就很清楚了,技术经理本身就是由高级工程师发展而来的 。公司里很多技术经理根本没有从一线R&D做起,大部分都是项目经理,主要从事项目,根本无法胜任我刚才说的技术经理的工作 。
最后,我简单总结一下一些技术经理的要领:
【一篇文章搞懂高级程序员、架构师、技术总监 技术总监】
首先,我有能力编写核心模块代码,从设计方案到核心代码,再到后期的代码审核,完全可以胜任 。
其次是团队任务管理,工作分配,工作量评估,帮助团队成员提升实力,促进更合理的考核机制 。
还是那句话,协调的能力,与人打交道的能力,与产品、设计、测试、运营在同一层面的能力,这个还是要有的 。不能盲目去做,也不能保持沉默 。总之你要让你的团队在公司有一定的知名度,让大家记住你的团队 。
技术指导
一般技术总监工作8-10年以上,你可以很好的做技术经理的工作 。再加上公司发展的需要,需要同时领导多条业务线或者小团队的时候,你基本就是技术总监了 。
从管理层面来说,技术总监同时管理几个技术经理,管理从业务线划分出来的团队 。
从技术层面来说,我想在这里补充一点,你应该是一个合格的架构师,也就是说,你至少应该是一个技术专家 。当然,你问?你之前提到,高级程序员开始与技术专家和管理层区分开来 。这是不是有点矛盾?

其实你开始做技术经理发展的时候,其实是多维度发展的,技术也是一个维度 。不代表你的纯管理脱离了技术,你还是需要继续专攻技术的积累 。
最后总结一下技术总监的一些要领:
从业务线和团队来看,你有能力组建R&D部门,搭建公共技术平台,管理所有业务线和从技术经理、高级程序员、项目经理到架构师 。
首席技术官(Chief Technology Officer)
首先,澄清几个CTO的误区 。CTO的要求是最高的 。不是每个人都能胜任CTO,好的CTO在中国非常少 。
很多同学的一个巨大误区就是CTO只关注技术,这是错误的 。如果CTO只专注于技术,那么你可以雇佣一个架构师 。为什么需要找CTO?


推荐阅读