研发的修行之路

近来有些参加工作不久的新人向我咨询有关于职业规划的事儿,问得都比较零碎。我答起来也是东讲一点西讲一些,不成体系。不知道是不是因为职业的原因,我个人是特别喜欢呈体系的东西。所以打算写篇小文章系统了介绍下我对研发职业生涯的一些认识(发展路线千千万,不同路线大相径庭,我这里只讲我熟悉的业务研发成长路线)。

既然要呈体系的讲,那必须得找个恰当的体系来对职业生涯各个时期的不同阶段做标注才好。用各家公司的职级体系吧,一方面容易被那家公司的理念所影响,另一方面也显得非常不酷。恰好想起前段时间很火的修仙游戏,突然升起个念头,不如用修仙的境界来做个体系的标注吧!

那么书归正传,我将整个研发生涯一共划分为九重境界,每三重境界又构成一个阶段,所以共三个大阶段,九个小境界。分别是

第一阶段:炼气期 / 筑基期 / 结晶期

第二阶段:金丹境 / 元婴境 / 化神境

第三阶段:悟道境 / 羽化境 / 归仙境

下文我会分享我对于不同时期和境界的理解和体会,对于第一阶段的不同时期,我会重点讲解我自以为的核心要点,希望能对新人有帮助。第二阶段我理解有限,不足为道。第三阶段我连理解都谈不上了,只能说神往之,属于是小孩子聊理想了。

第一阶段

炼气期

其实一个正常计算机相关专业的毕业生,拿到一份不错的互联网公司研发的offer就已经算进入炼气期了。这个时期你被称为:新人。所以最重要的工作就是成为:熟手。对此阶段我唯一的建议就是「找最好的业务,抄最好的代码」。

不用怀疑,炼气期的主要修炼手段就是抄代码,无论是抄团队前辈的代码/抄网上搜索的代码/抄开源软件的代码等等等。炼气嘛,就是个找感觉的过程。这期间抄的代码好坏将会非常长远的影响你后续的技术提升和职业发展。这种种代码中,你抄的最多的,也是对你影响最大的代码无疑是团队前辈的代码。所以你必须要选一个好的技术团队,让自己有好代码可抄。一个好的业务,必然能吸引到好的人才,人才密度决定你能抄到什么样的代码。

所以,第一份工作你得谨慎。一定要是好业务,面试的时候也好确认是个好leader。好leader会持续保持团队人才密度,招新淘汰。这里有个误区要注意:好业务与好公司并不画等号。很多毕业生以为去了大厂就稳了,我只能说厂子越大,边缘业务也往往越多,需要分辨。

整个炼气期一般会持续2-3年,这时你大约是阿里P5,腾讯5/6级,字节1-2(由于百度太拉胯,这里BAT中的B我用Bytedance代替)

筑基期

顺利的话,经过2-3年的抄代码过程你已经对怎么写代码有一定的认识了。做了几十个小需求,对于自己团队的业务也会有些了解,对公司的技术框架也是初步熟悉。这会儿,恭喜你,你已经突破第一个时期,晋级筑基期!

筑基期嘛,顾名思义,就是打基础的时期。对,没错,这会儿你才真正开始打基础,之前抄代码其实你都算不上是打基础,就是个在搬砖的过程中找感觉。

那基础怎么打呢?

不出意外的话,你已经是团队的主力输出了。虽然算不上核心骨干吧,但已经是重要战斗力了,leader对你的最大预期就是高质高效交付需求。所以,你首先需要保障的是:保持高产出!因为一旦你的产出是达不到leader预期的话,你后面就没必要奢谈发展了。。真的,能在年底不背负最低绩效,寒冬不被裁员就不错了。

其实整个职业生涯,尤其在前中期,「超预期」是件非常重要的事情。很多新人往往说leader不给我好对事情做,我做的事情很无聊,我发挥不出来,没法超预期。一旦进入这个误区就很麻烦了,很容易恶性循环,走进死胡同了。首先大背景是:资源总是有限的,所有人的发展诉求与资源的有限性是始终存在的矛盾。那么有限的资源leader会如何分配呢?当然是分配给那些手头工作完成度超预期的人啊!你越是抱怨手头工作含金量,越是离目标越远(当然,如果你所处的大环境的资源过于匮乏,换个工作可能是更好的选择)。

那具体到筑基期来说,我们怎么超预期交付呢?

核心两点:1.交代的事情是否做到了100分?2.交代事情之外我能做什么?

什么叫做到100分?100分就是你把自己代入一个跟你有过节的人,从他的角度看,完全挑不出你工作的毛病,这就叫100分。这里包括了需求的沟通/系统的设计/排期的协调/代码的编写/联调和测试的协作/上线的流程/上线后的维护/数据的观测和跟踪等等整个 DevOps 全链路。这个过程做到找不出毛病还是要一番功夫的。

另一方面,交代的事情之外我又能做什么呢?这个就需要我们做「有心人」了。我们在工作中,不太可能所有环境都是理想的。无论是沟通过程/协作过程还是写代码的过程,一定会遇到各种各样的问题。可能是流程的问题/可能是基建的问题等等。这些问题,你遇到后是抱怨一句,还是会深入思考?有心人总是会留意到这些问题,并且不断思考,与同学/朋友交流讨论,甚至网上搜索相关的问题/认识和解法。更进一步,作出一个可能的解法与leader讨论,尝试落地优化现有的流程/基建。你换位思考下,你是leader,你会不会觉得超预期?以后资源要不要倾斜?

做到这一步,你事业发展应该是比较稳妥了。但是我们说筑基期最重要的是打基础嘛。除了事业方面的基础,还有一个更加重要的基础,就是「技术底子」,也是这个时期的重中之重。我们常说:毕业后3-5年是技术提升的关键时期,说的就是这个筑基期。

那筑基期如何打这个「技术底子」呢?其实大家或多或少都会有些思路,上网课/看书籍/搞开源项目/看博客/看文档等等等。这些都是好的。

我只需提一点:打基础切忌贪快。我面试中见过太多同学花了大量时间,东学一点西学一点。所学的东西过眼云烟,什么名词都熟悉,什么东西都不真的会。这个时期一定要把眼光放长远一些,你想想自己是要做一辈子计算机的,20年起步的,这一两年的时间算什么?只要所学真的能成为自己的知识,一步一脚印,总是能学完的。篇幅有限,具体的学习方法我就不在这篇文章详细聊了,我推荐几本书吧。

首先,你最好把《CSAPP》看完,书很大,慢慢看,不着急。有条件的把习题都做了。这本书吃透,你对计算机这个东西会有真正深入且底层的理解,看似没啥用,对后续长远发展会大有裨益。

然后,把《DDIA》细读一遍,这本书与互联网业务关系极大,很多抽象对具体工作很有价值。读这本书的时候如果能自己演练一番那就更好了。演练啥呢?假设自己是架构师,设计超大体量的一些系统,比如说:朋友圈?Feed流?等等。书里只有一个中心思想,包不住太多细节。而细节又太重要。做这些演练的时候,重点就在细节的处理。对内多思考,对外多交流,不要轻易放过自己。

最后,把《SICP》读了,读完你会对「计算」和「语言」这个两个概念有新的理解,也是着眼于未来,短期确实没啥用。筑基嘛。

筑基期一般也会持续个3年左右,这会儿你应该是阿里P6,腾讯7/8/9级,字节2-1(同一公司不同部门职级含金量相差极大,这里也就个大概示意,具体职级不重要,修为的提升更重要)

结晶期

这么一路走下来,你差不多工作5/6年了(晚一点的7/8年也没啥问题,人生很长,不急一时)。目前来说,你大概是某厂某业务线某团队一个重要方向的小owner了。你的个人实力已受团队广泛认可,无论技术实力还是业务理解都扎扎实实。你应该也带过一些新人了,代码被新人反复抄来抄去,填各种业务迭代的坑。leader最重要的项目要么直接交给你,要么跟你商量让谁做,具体怎么做。换句话说,你已经是团队核心骨干。

此刻你的目标已经不在是打底子了,虽然技术基础的学习你需要一辈子持续不断,但是眼下你更加着急的目标是:结晶。

结晶也是个颇费资源的事儿,你怎么拿到这些资源呢?毫无意外,你还是得「超预期」,其实修行路上越往后越费资源,你只有不断的保持「超预期」才能拿到这些有限的资源。

这个阶段想超预期自然不是件容易的事儿,我们从业务/技术/团队三个方面看。

由于我们是业务研发这条路,业务自然是重中之重。一定程度上说,你与你对口的业务是一荣俱荣一损俱损。在业务方面,我们结晶强者应该做些什么呢?中心思想就是:不要停留在被安排的工作,要全面而深入的理解业务。你得知道你负责的业务完整的面貌,核心的商业模式,以及你手上的做的事情与之的关系。一个明显的误区就是:你可能会觉得,你是做技术的,业务了解不需要太深。一旦进入这个误区里面,我可以肯定你做出的技术架构一定是短视的,纷繁复杂的工作摆在你面前,你一定判断不准优先级。你甚至在需求之外找不到任何事情做。一句话,你不会知道现在和马上到来的未来业务最头疼的事情是什么。你不知道所以你做不了任何有价值的事情。

业务之外是技术,在这个时期很容易进入的另一个误区就是忽视自己的技术成长。因为很可能你日常接触的同学中,大多数技术都是不如你的,你leader又很少在你面前展露技术。你甚至觉得你后续要转管理,所以技术实力不再重要了。其实吧,你的技术之路才刚刚开始。你别忘了,你才过筑基期不久,你刚打完基础呢。。那结晶期的技术如何提升呢?这个晶怎么才能结出来呢?这块我推荐一篇文章《实践论》。如果筑基期你已经打了不错的基础,那现在你最重要的事情是:实践和总结(实践不是个简单的事情,大家自己看实践论,我多说的都是废话)。那为了更好的实践,有两件事情你得积极主动的做:1. 争取有挑战的项目,越难越好,这个时期你犯的起错,不用害怕。2. 在项目之外,一定要担负起责任来,如果说筑基期只有「有心人」会去思考流程/基建的问题,作为结晶强者的你,自然是当仁不让了。主动把优化流程和基建的担子挑起来,为团队解决实实在在的问题(多思考这些问题业界有啥好的解法/公司有哪些落地的组件等),提升整体的研发效率。做到这两点,其实技术方面很容易超预期。

最后是团队,这块除了显而易见的指导新人之外,更重要是建设影响力。从这个时期开始,你除了要不断的输入(学习/提升)之外,也要分配一定的精力做输出(越往后期这个比例越高)。影响力建设也是个大话题,囿于篇幅我这里不展开,我只说一点,影响力的体现不在于你写了多少文章/做了多少分享,而在于一提到某某事情,大家首先想到的是你。

结晶期持续的时间不好一概而论,一般来说至少会有3年。这会儿你大约是阿里P7,腾讯副组长,字节2-2左右。

好了,走到这一步已经挺不容易了,你也差不多工作8/9年了。而且我发现一个现象,一般到这里大家或多或少会变得焦虑(不少甚至开始担心35岁失业问题)。但我必须得说,后续修行更加困难。。。因为后续的修为提升所需资源之大,已经不可能满足所有人的需求了。一般来说,每一层境界的提升都是十之进一。也就是说,你的小伙伴大多数其实都迈不过去。

第二阶段

金丹境

从这一层开始,我不说「期」改说「境」了,因为从第二阶段开始人数急剧减少,一步一重天。而我也不好为人师瞎几把指导了,只当闲聊,谈谈我粗浅的认识。

金丹强者已经修出金丹,也就是,你至少是个团队leader了。你角色有重大转变,你除了为自己负责外,还需要为整个团队负责。这种角色的转变对有些人来说是痛苦的(现实世界的残酷性会百分百落在你身上),这时的你除了搬砖带来的身体劳累会更加深刻体会到什么是心累。

怎么带好团队?其实我有一些总结,但这个话题也是过于庞大,以后有机会再单独分享吧。

总之,你现在是所属业务线的核心,但是在整个公司层面还不算有声量。

这会儿你应该是阿里P8,腾讯组长/副总监,字节3-1左右。

元婴境

元婴境最大的特点在于「不死不灭」,也就是你其实已经不会担心失业这回事儿了。因为到这层的人数属实不算特别多,但是作为整个公司来说又是中流砥柱,需求量其实挺大,所以无论你多大年纪,你总归是有去处的。元婴强者恐怖如斯,哈哈。

现在你所处的位置应该是,大厂某条业务线的技术负责人(或者小厂CTO)。你所直接管辖的团队已经不仅仅是你自己职能线了,会包含:前端/后端/客户端/测试等等。那么跨线管理是个很大挑战。另外你跟一线同学会有1-2级的汇报隔离,那么间接管理又是个很大的挑战。管理能力将会是限制你发展最核心的点。

无论如何,此刻你已经是公司内有一定声量的专家了!

这会儿你大约是阿里P9,腾讯技术总监,字节3-2/4-1左右。

化神境

元婴强者再往上,其实需要一些机遇巧合。一个重大的项目,一个关键的业务,一个颠覆的技术等等。借着这个巧合,你成为公司风云人物,也成为业界有一定声量的大佬。我等芸芸众生口中的:大神!

这会儿你的级别已经不太重要,甚至你的实力成为各家公司职级本身的背书。但我按照惯例还是说下,你大约是阿里P10,腾讯技术GM,字节4-1/4-2的大佬。

到这儿,你已经是世俗层面的大成了。但从我们修行层面看,你所有一些成就不过都是过眼云烟,随着时间不会留下太多痕迹,只能算作小成。

所以,修行之路,你还会继续走下去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值