转载

TalkingData CTO肖文峰:研发工程师,你为啥升不上去?

【编者按】如果一定要为本文定位,那应该是技术人员的成长图谱。这是一篇来自TalkingData CTO 肖文峰的深度分享。在他看来, 市场需求的扩展,使得一些研发团队不断的增加自身的规模,但拥有同样聪明头脑的工程师,却在发展的道路上千差万别。关键在哪里?针对研发做好自己的职业规划。

以下为正文:

本文不属于成功学的范畴,也不是要让大家整齐划一放弃自己的风格和特点。成功的方法有很多种,找到自己喜欢并且适合自己的才是最重要的。研发是一条艰苦的道路,需要的不是急功近利好高骛远眼高手低,需要长期的积累和不断总结。希望本文能够为大家提供一些自我定位和发展的思路。

今年上半年,因为需求的扩展,TalkingData研发团队基本上扩张了一半,目前团队依然在不断增长中,以应对我们以开发者服务平台、数据服务平台和数据商业化平台为支撑的数据生态环境的高速发展。我们会发现,即使脑袋瓜同样聪明,有人发展很快,但是有人在一个级别上始终停滞不前。我也经常被问到研发人员如何规划自己的职业,其中最常见的问题就是如何往上提升自己。

要解释这个问题,首先需要了解一下各个公司的研发职位设定。我参考了这篇文章“惊呆了!原来腾讯、阿里、百度的内部晋升渠道是这样的”,也结合自己的经验和TalkingData正在规范的研发人员级别体系,同时也向不同公司的HR以及猎头的朋友做了一些求证,单对比几个典型公司的研发体系如下(如有疏漏,还请指正):

TalkingData CTO肖文峰:研发工程师,你为啥升不上去?

对于此表,有几点注意:

1. 京东、优酷的级别和腾讯的类似,美团的级别和阿里类似,TalkingData的级别体系和Oracle类似。

2. 相邻级别之间没有十分清晰的边界,存在一定重叠。

3. 中级、高级工程师是公司研发团队的中坚力量,占据最大的比例(一般50%以上)。

从此表可以看出,不同公司虽然有不同的薪资级别体系,但是在职位设定上,概念差别不大,都经过了从初级、中级、高级到资深的发展过程,并且每个阶段都有侧重的要求。职位的晋升一般都需要专门的机构来评定。比如,360在T5以下(包括T5)是部门自己决定,超过T5就需要公司级别的技术委员会(由跨部门的高级技术人员组成)来面试评定。阿里也有专门的晋升委员会来负责这件事情。

这里是较为详细的描述:

初级工程师

初级工程师之前,是打基础的时候,研发人员的升职仅依靠个人的成长即可达成,包括经验的增长、编程能力的提升、甚至工作年头的积累,都可能把级别涨上去。

中级工程师

到了中级工程师,就需要重点观察独立工作的能力,是否代码bug率足够低?是否还需要资深工程师的监督和提醒?是否能够综合的考虑架构设计上的各个方面,比如安全性、可扩展性、可管理性、可重用性、可测试性等等?这时候的关键是,要让同事对你的工作产生信任,放心把事情交给你独立完成。这其实也不算是十分困难的事情,因为绝大部分工程师只要态度端正有具备责任感,有一定学习能力,加上细心,都能做到。我曾经见到过一些“无bug”工程师,他们的交付基本上很难发现bug,测试一次完成,这样的工程师是公司的宝贝!也见到过一些粗心大意,不是这里有问题就是那里有问题,让人始终不放心的所谓“高级工程师”,这些人如果长期不成长,就需要降级处理。

高级工程师

从高级工程师开始,研发往往就会遇到瓶颈。瓶颈主要来自于,从高级工程师开始,就要求研发人员至少在公司(或是事业部)范围具备一定的影响力,不仅个人能力要强,你还要能够帮助团队强大起来,不仅能在你的小团队范围有影响力,还需要建立跨团队的影响力。

影响力这个词在无数培训和书籍都有提到,啥叫影响力?

我觉得通俗的说,就是当别人遇到hadoop的问题的时候,就会想起来“打个电话找老阎”;当大家就一个架构问题争论不休的时候,都会说“还是听听YC的意见吧”;当大家不知道从客户角度到底怎么看这个功能的时候,会“咨询一下Ash吧”。——这就是影响力,当你在某个领域经验足够丰富,判断足够准确,并且经过一定时间的验证,在大家心智中形成权威印象的时候,你就具有影响力了。影响力是看得见的,你的话是否有人听就能明显感受到。正如之前提到的,我反对“ 全栈工程师 ”,因为全栈工程师会导致研发人员在每一项技术上都没法钻的足够深。当深度不足的时候,你能解决的别人也能解决,别人解决不了的问你也没用,这时候影响力很难建立。只有技术做的更深一下,经验积累更多一些,才能解决他人的难题,积累信誉,提升影响力。所以什么都浅尝辄止,对于研发人员能力提升和级别增长,具有负效果。

正所谓“千军易得,一将难求“。当工程师在某项技术上积累足够多的时候,他如果能利用自己的优势提升周围研发同事的工作效率和能力,这对公司来说是价值最大的,所以研发体系会偏向于有能力也有意愿增强自己影响力的工程师。这就要求研发人员具有一定沟通能力和技术领导能力,要走出自己的舒适地带,让自己的能力在其他团队也可见并可用。沟通力和领导力都属于软技能,软技能恰恰是研发人员的传统弱势领域,所以这时候大家改变起来就会感觉比较痛苦。这种现象在所有公司都是相似的,比如腾讯T3升T4很难,阿里是P6升P7困难,百度是T6升T7很难,微软升职到Senior也是非常困难的。

但是也不是说必须强迫每个研发人员都是能说会道口若悬河,因为个性是很难在短时间内强行扭转和改变,过程可能很长。对于在这方面比较薄弱的工程师来说,确实会在晋升上比较吃亏,上升速度可能放缓。这也是合理的,因为你不沟通的话,其他人怎么可能对你的技术水平和专业程度有更深的了解。之前在微软,听说美国那边有一位研发同事,在微软工作了很长时间,对于各种版本的windows和office的代码都非常熟悉。但这个人比较内向,不喜欢跟人打交道,每天都呆在自己放满了电脑显示器和主机的办公室,周围同事有什么难以解决的技术问题,都去找他帮忙分析和定位。但是这个牛人一直就保持senior级别,他也没啥追求,无所谓,反正我不喜欢的事情我就不去做,级别不涨就算了。每个公司都可能有这样的人,他们未必像人们想象中的那么“上进”,他们喜欢呆在自己觉得舒服的一个尺度里面,做到自己能力范围内的就够了,对升职兴趣不大。公司实际上也允许这样的人存在。

高级工程师+

高级工程师以上,依然是在技术的深度上继续耕耘,提升在某个分支技术领域的影响力,工程师不仅需要在公司内部有可见度,还需要你代表公司在行业内发出声音,比如参加一些行业的技术社区活动、发表一些技术论文或博文等,这时候就迈入资深工程师的范畴。并且随着经验积累和影响力日益加深,工程师会具备更加宽广的视野,能够触类旁通,甚至横跨多个技术方向建立行业影响,成为行业的领军人物——这时候已经很难用具体指标或职位来衡量工程师的能力和价值了。

建议

所以对于研发人员来说,职业上没有什么捷径可走,只不过在选对了行业和方向,或者面临大的压力的时候,可以加速成长的过程。

相对正常的做法是:

1. 对于刚入行的初级工程师,选择一个喜欢的行业(比如大数据行业,别在乎暂时的得失,包括薪资),尽快培养编程和工程能力,尽量独立思考解决问题,打好基础。

2. 当升职为中级工程师的时候,能独立工作是必须具备的能力,同时要选择一个技术方向深挖,不要什么都做到最后什么都做不好,要开始注意一些软技能(比如沟通能力)的培养,也可以带带新人,逐步扩大自己在所属团队的影响力。至于哪个技术方向,我觉得最好是能够结合自己的兴趣来选择,不要选一个看起来时髦但是自己毫无感觉的方向,这在长远来看得不偿失。比如在大数据领域,有数据采集、清洗、脱敏、存储、计算、挖掘、交易等众多分支,有无数的开源框架可供选择,在每一个分支做好都需要长期的经验积累,也都可以体现巨大的价值。

3. 随着能力和经验的提升,影响力扩大到公司或者事业部范围的时候,也许就具备条件升职到高级工程师甚至资深工程师,需要对行业(不仅仅是技术)有一些自己的见解和看法,最好是能够走出公司去参与一些技术社区的交流。TalkingData经过4年的沉淀和积累,已经培养了一批大数据技术领域的专家,目前有很多一线工程师已经积极参与到各种技术社区的活动中,不少已经成为中国数据库技术大会(DTCC)、InfoQ全球架构师峰会(ArchSummit)、Top 100 Summit、Spark Meetup等顶级技术盛会的特约演讲嘉宾或明星讲师。

4. 当在某项技术方向上具备行业的影响力的时候,可能要开始考虑拓展自己的技术广度,把影响力扩散到相关联的更多技术分支领域,能够对公司管理者的业务决策提供及时可靠的技术支持。这时候一定需要走出去,多看多听,对于行业的技术发展很深的见解,甚至可以在某种程度上影响行业的技术发展路线,而不只是跟随。从这时候开始,能做到什么程度就看自己的努力和运气了。

最后也要提到的就是,职位并非越高越好,升职也未必是越快越好,一定要和能力相匹配。研发体系会对职位有要求和压力,这一般是通过绩效评估来体现。工程师按照同样的表现和产出,在上一个级别的绩效可能是“优秀”,但是在下一个级别却可能变成“差”,压力会突然变得非常大。不要过分看中职位,“那真的都是虚名,就像浮云一样”。见过不少所谓的“资深架构师”甚至“首席架构师”,不过是找个小的创业公司呆了几个月自封罢了,能力本身没有什么提升。更加需要关注的始终是如何提升自己的能力,不管是硬技能还是软技能,能力上去了职位最终一定会匹配上来。如果职位长期滞后于能力,代表公司体系有问题,你也不需要在这个环境里继续浪费时间。(编辑/郭雪梅,欢迎更多朋友投稿!guoxm@csdn.net))

TalkingData CTO肖文峰:研发工程师,你为啥升不上去? 作者: 肖文峰 TalkingData CTO

1978年生,清华大学硕士,曾就职于Lucent贝尔实验室移动研发中心、BEA和微软,担任软件研发和研发管理工作。现在TalkingData任CTO,负责全业务线的研发工作。

正文到此结束
Loading...