45

一篇文章搞懂高级程序员、架构师、技术经理、技术总监、CTO,从薪资到技能要领的区别

 6 years ago
source link: http://news.51cto.com/art/201810/585898.htm?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我希望用一篇文章完全让大家正确的理解从程序员到架构师、技术经理、技术总监、CTO的完整区别以及进阶要领。

raM3UjQ.png!web

只有客观去认识,才会更加合理的找到自己的擅长点,从而更好的发展自己。

yuURryv.jpg!web

上图是典型的薪资结构图,我们先从高级程序员谈起。

01.高级程序员

一般是至少三年以上的工作经验,有些地方是五年以上,很多小公司或者创业公司,高级程序员覆盖工作职责比较广,基本包含部分产品经理、项目经理的工作职责以外,最主要负责核心代码编程,基本技术难点都自己解决为主。

BZJVvyz.jpg!web

在公司大一点的都有非常明确的职责和级别定义,以阿里外代表,P5-P6代表高级软件工程师这个级别,基本能独立负责设计和编码阶段。

6fEFvef.jpg!web

其实,在国外例如google、facebook等公司,很多牛人的title都是Senior Level engineer,这一点不像在中国。

在国内,一般一个高级程序员的准确定义:

负责核心复杂功能的实现方案设计与编码实现。

详细描述:能独立设计一个业务模块的能力,并且独立设计数据库表以及UML画图,利用部分设计模式以及懂得算法和效率的高质量代码。

02.架构师

一般能做到架构师这个称谓,工作年限至少都在5年-8年以上,具体还看每个人的学习能力和领悟能力,以及成长情况(是否具备并发项目环境)。

之所以有架构师这个称谓,主要还是公司发展以及大了的需要,需要专注于技术的人,你也可以理解为技术专家,攻克公司技术难题为主,例如淘宝的双11的挑战,以及公司发展需要考虑独立拆分,数据库压力太大,需要分布式缓存以及CDN的配合,怎么选择,怎么结合自己公司的情况攻克当前技术难题。

如果一定要准备定义,我用一句话:

F7vmIzI.jpg!web

架构师的职责应该是立足于技术和业务之间的中间角色或者平衡点, 在针对业务深刻理解的基础上,针对业务中存在诸多变数,挑选适合的技术架构和技术方案。

03.技术经理

技术经理坦率的讲,就是从高级程序员开始分化而来,一部分同学选择继续专研技术,往纵向发展,一部分同学打算觉得未来管理这条路很好,主动选择开始转型管理这个方向,于是才有里技术主管或者经理经理这个称谓。

我还是以阿里为参考,阿里的M代表管理方向,你可以通过下图可以清晰的看见P系列和T系列对应的级别。

iaIRni7.jpg!web

P6和M1,从技术的角度,如果你打算往管理M发展,M1对应的至少你也能胜任资深工程师。

所以,这个时候你就非常清晰了,技术经理本身就是从资深工程师发展而来,很多公司的技术经理根本没有从一线研发做起,大部分就是一个项目经理,带带项目为主,根本无法胜任刚才我讲到的技术经理的工作。

最后,我稍微总结下部分技术经理的要领:

JrM7Jza.jpg!web

首先,具备核心模块代码编程的能力,从设计方案到核心编码,再到后期的代码review,这方面是能完全胜任的。

其次 ,才是团队任务管理,分配工作,工作量评估,以及帮助团队人员提升实力,以及推动更加合理的考核机制。

再次,协调的能力,与人打交道的能力,平级部门,产品、设计、测试、运营打交道的能力,这个还是要有的,不能一味盲干,也不能一味不发声,总之你要让你的团队在公司应该有一定的美誉,让大家能记住你们团队。

04.技术总监

技术总监一般工作8--10年以上,首先技术经理的事你能做的非常好,再加上公司发展的需要,需要你同时带领多条业务线或者多个小团队的时候,基本就是技术总监了。

从管理的层级,技术总监同时管理多个技术经理,管理从业务线划分的团队。

从技术的层级,这里我补充一点,尽量你能胜任架构师这个级别,也就是说你至少也是一个技术专家最佳。当然,你会问?之前你提到高级程序员开始从技术专家和管理开始分化,这不是有点矛盾么。

F7Rfm2e.jpg!web

其实,当你开始往技术经理发展的时候,其实就是多维度发展了,技术也是一个维度,并不是说你做纯管理脱离于技术,技术的积累你仍然需要继续专研。

最后,总结下技术总监的部分要领:

从业务线和团队的角度,你有能力组建研发部,搭建公共技术平台,管理各条业务线以及从技术经理、高级程序员、项目经理、还有架构师的能力。

05.CTO

首先澄清几个CTO的误区,CTO的要求是最高的,不是每一个人都胜任CTO,好的CTO在国内非常少,非常稀有。

很多同学的一个巨大的误区,认为CTO就专注于技术的,这是不对的,CTO如果只专注于技术,那你招一个架构师不就成了,为什么还需要找CTO呢。

还有一个误区,很多同学从大公司出来进入一家创业公司 or 小公司,挂名某某CTO,自认为自己已经一步登天,其实离CTO的能力差之甚远。

CTO是一个系统的成长轨迹,不是一朝一夕可以练成的,需要后天的巨大“自我改进”能力。如果用我自己的话总结,CTO的成长之路犹如“从蚕到蛾的蜕变”,整个蜕变过程缺一不可,最后都是要经历性格塑造的,不断的改变自己的性格。

我用一张图能稍微总结下CTO的要领,如果你有志于往CTO发展,至少你得知道,你尽量往这方面发展是OK的。

BBvqEv7.jpg!web

真正的CTO,是软件产品和技术是统一管理的,在通过后期的自己的努力,通过情商、逆商以及商业思维来辅助。

如果一定要总结下CTO的要领:

1.业绩达成:洞察客户需求,捕捉商业机会,规划技术产品,通过技术产品领导业务增长,有清晰的战略规划、主攻方向,带领团队实现组织目标

2、前沿与平台:到这个研发规模规模级别了,一定要有专门的团队做技术应用创新探索和前沿技术预研。而且要和技术平台团队、应用研发团队形成很好的联动作用,让创新原型试点能够很平滑的融入商业平台再让应用研发线规模化的使用起来。

3、研发过程管理:站在全局立场来端到端改进业务流程,为业务增长提供方便

4、组织与人才建设:公司文化和价值观的传承;研发专业族团队梯队建制建设、研发管理族团队梯队建制建设;创建创新激发机制,激发研发人创新向前发展,激发黑马人脱颖而出

CTO做的事情,是商业、产品、技术、管理、团队相平衡的综合统管。


Recommend

  • 110

    51CTO学院 - IT人充电,上51CTO学院! ...

  • 81
    • 微信 mp.weixin.qq.com 6 years ago
    • Cache

    一篇文章搞懂HDFS权限管理

  • 55

    ClassLoader 类型 Java 中的 ClassLoader 可以加载 jar 文件和 Class文件(本质是加载 Class 文件),这一点在 Android 中并不适用,因为无论 DVM 还是 ART 它们加载的不再是 Class 文件,而是 de

  • 59

    对于我们网络开发的人员来说,经常会用到TCP,UDP协议,但是通常情况下,是在局域网内的协议交互通信。可你们有想过吗?如果是涉及到内网和外网的交互呢?也就是说局域网和公网是怎么交互呢?

  • 62
    • www.tuicool.com 6 years ago
    • Cache

    一篇文章搞懂Android组件化

    网上组件化的文章很多,我本人学习组建化的过程也借鉴了网上先辈们的文章。但大多数文章都从底层的细枝末节开始讲述,由下而上给人一种这门技术“博大精深”望而生畏的感觉。而我写这篇文章的初衷就是由上而下,希望别人在阅读的过程中能够...

  • 37
    • 掘金 juejin.im 5 years ago
    • Cache

    一篇文章搞懂android存储目录结构

    前言 前两天因为开发一个app更新的功能,我将从服务器下载的apk文件放在了内部存储目录(测试手机为小米,路径为:data/user/0/packagename/files)下面,然后安装的时候一直安装不了,提示解析包出错。后来查询发现,安装apk是调用了Pa

  • 35

    什么是慢查询? 慢查询,顾名思义就是比较慢的查询,但是究竟是哪里慢呢?首先,我们了解一下Redis命令执行的整个过程: ...

  • 14

    编辑导读:作为一个设计师,需要站在用户的角度思考问题,了解用户真实的需求。我们需要用到一个非常有用的概念,心智模型。本文作者将围绕此进行六个方面的分析,希望对你有帮助。

  • 8
    • dockone.io 4 years ago
    • Cache

    一篇文章搞懂Filebeat

    本文使用的Filebeat是7.7.0的版本,文章将从如下几个方面说明: Filebeat是什么,可以用来干嘛 Filebeat的原理是怎样的,怎么构成的 Filebeat应该怎么玩 Filebeat是什么

  • 8

    今天我就来聊聊 Kafka 的存储系统架构设计,说到存储系统,大家可能对 MySQL 比较熟悉,也知道 MySQL 是基于 B+ tree 来作为它的索引数据结构。Kafka 又是基于什么机制来存储?为什么要设计成这样?它解决了什么问题?又是如何解决的?...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK