大概是某个C轮融资的医疗网站CTO被离职。而CTO是一个知乎大V和微信大号。此事一出,在微信群有支持也有反对之声。支持此CTO被离职的认为其在工作时没有Review程序,自己不写代码,而是热衷出没于技术大会,写互联网圈的花边新闻。而CTO侧的原因是深度参与创业多年,期权回报到头来一场空。

 

你我都不是吃瓜群众,这事不同角色不同的利益点,肯定态度不一样。作为一个技术老司机,今天和大伙谈谈这三个角色到底有啥不同。

程序员

 

程序员,英文名coder/programmer,大家常自嘲叫码农的阶段。这个角色职责是把需求或产品实现为用户可用的软件产品。

 

此职位为执行级别。另外因为经验较少,一般需要求助别人,或与别人一起完(ban)成(zhuan)一个任务。

 

此阶段大概要经历3年,程序员的职责如下:

 

1、负责公司运营系统的设计与开发工作

 

2、运营数据处理和分析

 

高级程序员

 

高级程序员学名工程师。到了这个level,英文名可改叫做engineer或developer。此时你的功力开始增强,这与你平时的积累努力是分不开的,祝贺你~

 

此时的你不仅可以完成任务,开始注重代码的质量,能够写出工业级的代码。

 

你的经验可胜任模块级的系统设计,承担完成较为复杂的技术,能有效的自我管理,有帮助别人快速解决问题(trouble shooting)的能力。

 

此阶段你需要经历到7、8年左右的体验,中间要经历一段深刻自我历练的过程。

 

有时给人致命一击其实是心里的小蟊贼。一般人在5年前后遇到一个门槛,碰到天花板 彷徨期,或者你打心眼里不在喜欢编程,可尝试转为其它角色,如产品经理,售前售后支持等岗位,也不失为好选择。

 

当我们熬过这段儿,就会“山随平野尽,江入大荒流“,渐入佳境矣。

 

高级程序员定义软件功能、做开发计划推进和管理。可以带几个个帮手把产品规划的功能实现,你是团队中的”大手“,遇到难题也是你亲自攻艰克难。

 

所以,一个高级程序员,他的职责很清晰:

 

1、负责产品核心复杂功能的方案设计、编码实现

 

2、负责疑难BUG分析诊断、攻关解决

 

架构师

 

到了架构师级别,想必你已经学会降龙十八掌,可登堂入世,成为一位准(lao)专(you)家(tiao)。

 

我们大喊声:“单打独斗,老衲谁也不惧!“,遂开始领导一众技术高手,指点武功,来设计和完成一个系统,大多是分布式,高并发的系统架构平台。

 

架构师的任务是为公司产品的业务问题提供高质量技术解决方案。可能每条产品线都设置了架构师,也可能多条生产品线的的后端是由一个架构师设计的平台提供。

 
 

通过上面架构师的部分成果,总结其职责如下:

 

1、需求分析:“知彼”有时比“知已”还重要。管理市场,产品等的需求,确立关键需求。坚持技术上的优秀与需求的愿景统一,提升技术负债意识,提供技术选项,风险预判,工期等解决方案。

 

2、架构设计:在产品功能中抽取中非功能的需求,由关键需求变成概念型架构。列出功能树,分层治之,如用户界面层、系统交互层,数据管理层。达成高扩展,高可用,高性能,高安全,易运维,易部署,易接入等能力。

 

3、功能设计与实现:对架构设计的底层代码级别实现。如公共核心类,接口实现,应用发现规则、接口变更等。

 

技术经理

 

人生就是不断上升的过程,你已经到达经理的层次了。如今的你,需要不断提高领导力,需要定期召开团队会议讨论问题。

 

首先我们要更加自信,在工作中显示自己的功力,给讲话增添力量。如:“本次项目虽然有很大的困难,我们也需苦战到底。当然示先垂范,身先士卒,方能成功!”

 

你需要和大家站在一起,因为人们也都有解决问题的能力,更需要有以下的能力与责任:

 

1、任务管理:开发工作量评估、定立开发流程、分配和追踪开发任务

 

2、质量管理:代码review、开发风险判断/报告/协调解决

 

3、效率提升:代码底层研发和培训、最佳代码实践规范总结与推广、自动化生产工具、自动化部署工具

 

4、技术能力提升:招聘面试、试题主拟、新人指导、项目复盘与改进

 

技术总监

 

如果一个研发团队超过20人,有多条产品线或业务量很大,这时已经有多个技术经理在负责每个业务,这时需要一位技术总监。

 

技术总监的职责:

 

1、组建平台研发部,与架构师共建软件公共平台,方便各条产品业务线研发。

 

2、通过技术平台、通过高一层的职权,管理和协调公司各个部门与本部门各条线。现在每个产品线都应该有合格的技术经理和高级程序员。

 

CTO

 

首席技术官,英文名Chirf Technology Offcer。是与CEO,COO,CFO同级的领导者,是技术和业务融合的领袖。

 

国内与国外对CTO的定义有些许不同。

 

美国对CTO的职责是设计公司三年内的产品和服务的技术发展方向,较少参与技术团队的日常管理和项目管理事务。基本是前瞻性的策略思维,比如Google的谢尔盖.布林一直保持对技术方向的敏锐,比如无人驾驶汽车,人工智能等走向。

 

在国内,CTO大部分则偏重于研发管理,相当于技术总监的Plus版。它相当于美国互联网公司常设的工程师副总裁 CTO的工作并集。但总体事情比美国的CTO层次低,大部分CTO的是领导技术团队开发各类产品,解决技术问题,管理不同的项目,排期交付。还有一部分的职能类似于架构师或总工程师,作为技术侧的权威,为下一步的发展方向 做研究探讨,为CEO提供建设型决定参考。

 

CTO的职责如下列表:

 

1、技术愿景:识别新技术、利用新技术、整合新技术、驱动新技术。驱动商业战略、驱动产品战略

 

2、技术架构:建立主营业务中的技术架构与实施模式,建立技术体系标准

 

3、流程制度:建立高质量,高效率的技术团队。健全的项目管理体系;完善的员工能力发展体系

 

4、知识培训:建立以研发内容为主的知识库管理体系、技术分享与技术文化的体系

 

5、业务支撑:与其它部门的沟通协作,如HR、市场、BD、财务、客服等提供技术管理接口;在产品技术层面能够领先于业内同行

 

6、影响力:在公司内部与行业中具备一定影响力与口碑

 

5、视野&格局&执行力:看待问题全面,具有强大的学习力,具备技术前瞻力,敏锐的市场嗅觉,战略落地的能力

 

小结

 

上面为大家描绘互联网技术团队的角色区分,我们一起来做一个小结:

 

CTO做的事情,是商业、产品、技术、管理、团队相平衡的综合统管,公司的技术研发方向与重点商业化的结果负责,激励员工,营造工程师文化。

 

而技术总监主要是协调团队内部各个资源,引入工具,和方法提升工作效率。

 

技术经理角色相对具体,绩效考核,产品落地,执行优胜劣汰的规则。

 

正像《少有人走的路》,每个人的成长路径都不同,但无一不是兴趣与使命驱动——无论你是程序员,技术经理,还是在CTO的角色。大家一起发挥潜力,去迎接不期而遇的挑战与胜利后的曼妙风光。

 

分享是一种美德:)

coder/programmer engineer Chirf Technology Offcer的更多相关文章

  1. 程序员、架构师、技术总监、CTO

    程序员 程序员,英文名coder/programmer,大家常自嘲叫码农的阶段.这个角色职责是把需求或产品实现为用户可用的软件产品. 此职位为执行级别.另外因为经验较少,一般需要求助别人,或与别人一起 ...

  2. 关于新加坡IT薪酬

    很多朋友发邮件或留言问我关于新加坡IT薪酬的问题,由于前段时间比较忙,所以没有及时一一回复,在此表示抱歉. 新加坡IT薪酬范围大概如下(月薪,新加坡币对人民币为1:5): Junior Develop ...

  3. DTrace to Troubleshoot Java Native Memory Problems

    How to Use DTrace to Troubleshoot Java Native Memory Problems on Oracle Solaris 11 Hands-On Labs of ...

  4. IT薪酬

    新加坡IT薪酬 2014-06-12 12:51 by 圣殿骑士, 8856 阅读, 37 评论, 收藏, 编辑 很多朋友发邮件或留言问我关于新加坡IT薪酬的问题,由于前段时间比较忙,所以没有及时一一 ...

  5. 关于新加坡IT薪酬和找工作网站

    关于新加坡IT薪酬 很多朋友发邮件或留言问我关于新加坡IT薪酬的问题,由于前段时间比较忙,所以没有及时一一回复,在此表示抱歉. 新加坡IT薪酬范围大概如下(月薪,新加坡币对人民币为1:5): Juni ...

  6. python 中面向对象编程的几个概念

    Python super() 函数 super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会 ...

  7. Java注解-元数据、注解分类、内置注解和自定义注解|乐字节

    大家好,我是乐字节的小乐,上次说过了Java多态的6大特性|乐字节,接下来我们来看看Java编程里的注解. Java注解有以下几个知识点: 元数据 注解的分类 内置注解 自定义注解 注解处理器 Ser ...

  8. python类继承中构造子的调用

    python面向对象中的继承关系中,子类对父类的构造方法的调用有两种方法: 父类名.__init__(self,参数) #注意名字是父类 super(本子类名,self)__init__(其他参数) ...

  9. 10 Best TV Series Based On Hacking And Technology

    Technology is rapidly becoming the key point in human lives. Here we have discussed top TV shows whi ...

随机推荐

  1. vue 初步了解provide/inject

    provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量. 需要注意的是 provide / inject这对选项需要一起使用, ...

  2. 算法导论学习笔记1---排序算法(平台:gcc 4.6.7)

    平台:Ubuntu 12.04/gcc 4.6.7 插入排序 #include<vector> #include <algorithm> #include<iostrea ...

  3. (转)shell变量及扩展

    1.shell变量 shell变量赋值语句为”name=[value]“,等号两边不能有空格,可以给shell变量追加内容”name+=value“,取消shell变量的设置使用”unset name ...

  4. (转)Python 标准库笔记:string模块

    String模块包含大量实用常量和类,以及一些过时的遗留功能,并还可用作字符串操作. 原文:http://www.10tiao.com/html/384/201709/2651305041/1.htm ...

  5. Python数据分析学习之Numpy

    Numpy的简单操作 import numpy #导入numpy包 file = numpy.genfromtxt("文件路径",delimiter=" ",d ...

  6. Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)

    最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储. ...

  7. Shiro与Spring、Springmvc的整合

    1.在web.xml中配置Shiro的filter 在web系统中,shiro也通过filter进行拦截.filter拦截后将操作权交给spring中配置的filterChain(过虑链儿) shir ...

  8. 问题集录01--java对list列表进行排序

    用Collections.sort方法对list排序有两种方法 第一种是list中的对象实现Comparable接口,如下: /** * 根据order对User排序 */ public class  ...

  9. SSRS 通过Customer Code访问Dataset

    A dataset in Reporting Services is not the same type of object as an ADO.Net dataset.  A report data ...

  10. C# wx获取token基本方法

    #region 请求Url,不发送数据 /// <summary> /// 请求Url,不发送数据 /// </summary> public static string Re ...