15 年腾讯"老兵"谈技术人成长之路
共 9481字,需浏览 19分钟
·
2021-10-25 23:00
作者:alexguo,腾讯TEG技术总监&技术专家
每个职场人都会经历从职场新人到骨干、专家亦或是管理者的蜕变过程。作为技术职业人,大家常会碰到一些困惑,在不同职业发展阶段所需要具备的认知和专业能力差异在哪里?除了勤奋地敲代码,还有哪些方法可以加速成长?腾讯云架平总监 alexguo 以自己经历为蓝本,分享从毕业生新人到有经验者、骨干、专家一步步的历程,每一阶段的成长和烦恼,更与大家共同探讨内卷、35 岁之后的职业规划等当下内部热点,为所有可能看到这个分享的技术鹅们带来一些成长道路的启示亦或是感悟。
作为毕业后就一直在 TEG 的老鹅,这里结合我个人在公司成长晋升过程的思考,跟大家交流下,不一定都对,也不一定适合每个人,但还是希望带给各位的成长或者晋升有些帮助指引或启发。
技术人员升级之路
1.1 升级成长之路全景图
一个新人在 TEG 的成长过程我画了一幅非常简单的图,对应当前职级,通常 5~6 级的阶段为新人,7~8 级为有经验者,9~11 级是通常的骨干;12 级即为专家,专家向上可以继续 13/14 级.....发展,也可以向 TechLead 的路径上发展,TechLead 目前是部门甚至公司去提报且任命的,一般 TechLead 一个方向只有一个,是专家中的专家,所以全过程就是从新人-专家-TechLead,当然从骨干级别开始如果你足够的管理能力和有合适的机遇也可以往管理路线即 leader 上走也就是新人-骨干-leader。以下结合个人经历以及同事间的交流就大家遇到的一些普适性、共性的问题谈一下我的思考建议。
新人的成长与烦恼
2.1 新人的第一印象
好的第一印象融入是关键,一个从外部加入腾讯的体系或文化的新人,能够快速给别人留下好的第一印象是非常重要,这就需要快速融入,那如何做到呢?
首先,是能力。举个自己的例子。06 年我们一起的是 20 几个新人,全部被派到一个平台部工作(平台部里都是专家)培训和练习,最终部门仅留 10 个人。但我被留下来了,其实当时编程水平有限.记得当时题目,固定给你一个 IP 地址的二进制文件,里面 IP 地址会对应一个实际地址(哪个省哪个地方),要求写个程序即输入一个 IP 地址就显示出其真实地址,是比较简单的题目,当时的我也不能立即写出来,但完成后,部门检测时我发现其实题目考察的不是一个简单功能的实现,因为测试输入了很多非标准类 IP 的数据格式内容来测试,看系统是否有做出错处理等等;而当时我恰好设计了一块,针对各种条件做了很多限制,可能正是因为这样全面系统化设计让部门印象深刻,所以我被留下了。
这里想告诉大家,或者你能力足够强学东西很快;或你的细节做得好,或者你是一个非常积极主动的人,突出自己的优点给别人留下深刻的第一印象非常重要是你快速融入团队的第一点。
其次,让别人更容易地记住你。比如有些人取了很容易识别的名字,或者有共同的爱好,比如说打羽毛球、篮球等等。
最后,让自己忙起来。一个新人是做后台开发的,但进来发现没有后台开发工作可以做,怎么办,那不挑活先忙起来。我加入公司后曾在某业务系统做后台开发,做了一段时间发现没人写前端主页面,上面就派我去,Web 前端开发我基本没做过,但我接受了,而且还有一个很牛的前端同事来带我,还提供一些前端文档,所以当下我更觉得是个非常好的机会,虽然没有经验且与自己的长期发展不符,但是:
1)我了解前端开发;
2)让大家看到了我的学习能力和适应力,什么地方都能顶上。
也因此我收获了第一次 5 星。所以新人加入先不要挑活,而是先应该让自己忙起来。
再比如后台开发的代码有很多告警,先去看一下 warning 的情况怎么样,能不能去解决?如果是运营日报数据不准确,能不能做的更准确?如果有很多中间件的工具、脚本的建设工作,可能没有人指挥或安排你做,但如果你有精力,就用心做起来,这些都能够体现出你的价值,也能让你更快速成长,扩充知识体系,融入团队,所以让自己忙起来,去主动承担更多事情。
2.2 新人的烦恼
做杂事,不受重视
有人说新人来了都是做杂事,写个运营系统或是做日报,或是就做周边的一些杂工作,总之新人似乎都不受重视。
但是我看来不是不受重视,而是在你不太了解研发团队情况下,安排一些相关的事情,这是建立信任的一个必要过程,当你逐步把每一件事情做好后,才能承担更多更重要的事情。所以能把杂事做好了,其实更能反映出你的能力。但如果你做运营系统一年了,同时已做得很好了,还在分配你做杂事,那你可以尝试去主动沟通能不能承担更多更重要的项目。我相信我们所有的团队都是希望每个人能更快地成长,所以如果你要求,一定会分配给你更多更难的项目去历练的。
原来的代码是垃圾,坑多
当看到原来的代码差、垃圾、坑多,但却不知道是否要重新做一套,怎么办?其实你认为的垃圾代码目前也在现网运行着,在后台服务着,所以先不要想着全部推翻,而是该思考如何用更好的代码逐步去替代。
首先要把自己想补在上面的东西做好,其次要把自己相关的文档逻辑理清楚,最后有选择地去做,同时保证好心态。目前互联网公司的整个研发体系和过程,包括做云市场和 To C 产品,都必须是先解决问题,把产品需求尽快先完成后,再去优化和完善质量等细节。
考核不好,晋级延期
低考核会经常给新人吗?从历史统计数据看,新人差考核相对较少,但往往由于新人比较脆弱,所以触动和反应就较大。如果你是新人考核成绩不理想需要先沉下气,分析判断,再主动找 leader,通过沟通真正认识到实际问题并找出不足。过往很多情况都是因为自己的认知和 leader 的认知不匹配导致的,员工认为,事情完成了,自己也有努力加班、学习;导师认为,员工工作交付延期,遇到问题不主动不积极请教,这种间隙认知导致考核结果低,所以月度改善计划能够弥补员工和导师之间的间隙,员工应主动跟导师进行月度沟通,对齐事务目标、完成时间以及具体工作内容,工作期间的沟通对双方都非常重要。
成为一个有经验者
3.1 有经验者-能负责部分模块/功能
新人大概经过一两年时间,就成了有经验者。如何定义有经验者?简单讲,就是能负责部分功能/模块,甚至整个体系。
如何算能负责?3 个指标:
1、快速定位问题,有短期和长期解决方案;
2、能够熟悉底层组件,推动运维和资源;
3、能够理解业务,在需求上与业务 PK,甚至引导业务发展。
怎样做到?还是 3 点:
1、多练:熟悉代码+运营;
2、多想:善于总结,不要等着被指点;
3、多学:类似的问题别人怎么做的。
3.2 有经验者-像海绵,快速吸收
新人们可能前一两年看不到太大的差距,但两年之后差距就会逐渐拉大,有的人一两年之后就能承担越来越重的角色,成长快速;有的人却在原地踏步。为什么?最大的区别就是个人的成长速度差异。刚毕业时都差不多,但在一两年工作后,会发现许多人在技术上面快速积累很多,比如已经可以研究整个系统架构方法,熟悉很多运营业务知识,在工作的成熟度上,能够主动去沟通分析,定时做汇报总结,同时个人的产出更加高效,心态也更加正能量,这样的同学 3~4 年就可能到达 9 级,甚至 4~5 年就可能到达 10 级。所以,在工作过程中要善于总结,积极吸收。
3.3 有经验者-对外沟通能力
有经验者都需要负责某些模块,所以沟通能力就非常重要。对外沟通最核心的是,在沟通中能否站在对方的立场思考,创造双赢。许多人总是站在自身立场去想问题,但其实更重要是应该站在对方立场思考,能帮对方解决什么问题,同时在沟通中需要注意语气和方式,可使用企业微信/邮件/电话/白板/会议等方式,尽量避免在企业微信中争吵,尽可能线下面对面对齐。
在腾讯 TEG 多年前就明确定义了“专业·服务·伙伴”价值观。如何理解“服务”?“服务”更多是用专业的能力,用乙方的心态服务伙伴,思考如何去配合支持甲方,然后和客户形成良好的伙伴关系,像我们做技术团队也是更多要服务业务部门或业务 BG 的,强大的专业加上良好的服务,才能够取得更大的成功。
3.4 有经验者的烦恼
没挑战,重复工作多
有经验者从事一块方向或模块,做久了都会遇到一些新问题,比如没挑战,重复工作多,没有成长。比如图片业务组做的用于用户上传图片时压缩保存的图片压缩模块,这项工作中常规需求是不同的业务配置不同参数和水印,使用的压缩库需要日常维护、扩缩容,维护这个模块 1 年或久了,就会感到没挑战,烦恼自然就来了,那么:
1)首先保证好心态,同时挖掘更简单的工作方法。比如做图像压缩模块,要追求更高的压缩率,原来使用 CPU 追求加速度,尝试用 GPU 或者 AI 去解决,去调研去推动,扩大自身的运作能力和视野;
2)思考在日常维护中精简人力,让自己有精力做其它事情。例如在需求配置中,页面、版本可以共同协作;在整个质量体系建设中,多跟团队沟通,分析成功率、失败率,建设计算资源池化、结合多个弹性资源做扩缩容,做到自动弹性扩缩容。
有经验者需要能够做更深入的思考。
工作太多,没时间学习
有经验者另一个烦恼是工作太多,没有时间学习想学的东西。但最好的学习方法是在工作和实践中学习,比如独自看书或小组结队学习;明确目标,有空就学,时间都是挤出来。
故障和出错
做互联网的后台开发团队或多或少都会遇到故障,大的项目都会出错,所以要学会在出错中成长,遇到故障,首先要有好的心态,不慌乱。在我负责在图片业务组时,也出现过一次蛮严重的故障,把整个传图系统搞挂了半个小时左右。出错似乎是必然的,但未来我们需要尽量减少出错,在出错中增长经验总结原因,把整个体系和能力建设好,得到成长。
如果所负责的业务遇到现网大故障怎么办?即时止损,判断等级,解决问题。第一件时间成立应急小组,纳入所有涉及的角色定位解决,缩短故障阶段和理清解决步骤时间,这就是处理故障的经验积累。
骨干的能力和烦恼
4.1 如何成为骨干?
主导中大型项目
从有经验者到 9 级后,这人就逐渐成长为骨干了。怎么判断骨干?就一句话:能够主导中大型项目。
什么叫主导?主导意味着技术方面你能够一切尽在掌握。其次,在自己的领域有一定程度上跨团队的影响力,比如做一个图片程序系统,该业务系统里出现各种问题故障我能去解决,知道该怎么做,包括未来如何发展都胸有成竹,同时对业务足够了解,能够影响到业务,或者是面对需求知道应该怎么做。
如何定义中大型项目?有两个维度,
1)项目的规模,
2)重要性。
一般来说做过 2-3 个中大的项目就已经不错了。所谓重要项目指该项目能不能在整个的中心或部门层面去总结提炼,对公司或业务都能产生重要影响意义的,这都是 9~11 级的同学应该做的事情。
业务思维、敢于创新
第一、必须要理解业务,
理解业务贴合业务就是深入地去做,比如为了做存储系统,我们甚至去了解微信客户端的后台传输过程到底做了哪些优化和措施,比如手机到基站的传输。比如如何建立站点,比如还做了很多并发传输和客户端通信的协议,思考如何在节假日期间降低视频的长度或者提高清晰度等等。只有真正深入业务,从用户体验出发,才能把系统做得更有竞争力,并且基于这个系统进一步成长。
第二、作为骨干要敢于舍弃包袱。比如之前做过因为解决痛点做了一些新技术,但是越做越发现这变成一个包袱,都在讲资源和内部的定义,后面大家快速转变最终做了其他。作为骨干,你要想有没有新的方向可以做?要不要更结合业务?方案上追求更加极致,我认为骨干必须要从这个层面去理解和思考。
第三,带领小团队的能力。作为 11 级,可能会去带一些毕业生或者级别低的同学,不管是 leader 或者 TechLead,一定是有这样的要求,你需要负责小团队,很多事不是一个人能够搞定的。怎么样把小团队带起来,也是这几点:你要有技术影响力,平时除了自己工作,还要多去想一想别人怎么一起做,要有工作规划能力,要写一些总结,要去了解别人的困难,要向你的 leader 或者总监甚至 GM 去寻求一些资源,这些都是你作为一个能够带团队的骨干要去面对和解决的问题。
4.2 骨干的烦恼
杂事多,如何保持激情
骨干可能面临一种问题,比如干扰太多,leader 老板总找你,或是常常被拉到很多跟你实际工作不太相关的群里等等;同时你还要考虑团队人员配合,工作进展,对外沟通,所以杂事变多,而写代码从事技术研究的时间会变少,那如何去保持激情?
我建议大家掌握这些小技巧,第一、合理安排时间;第二、抓住核心部分,不太核心的学会去放,哪些事情别人可以去做,那就把这个能做的人培养起来,作为骨干就是要让大家一起完成工作。
空间不大,心累
有些骨干觉得自己空间不大,向上晋升为专家好像也很难,遥遥无期……这可能是很多老鹅都遇到的问题。第一,是心态要放稳,你的工作不能因为这个想法出问题,只有工作做好的基础上才有发展,但如果因为心态影响工作和绩效,其实就更没有机会。第二,就是要等待机会,希望晋升为 leader 的需要时机。管理团队和技术骨干不太一样,管理需要机会,而且目前公司管理干部要求能上能下,只要你有才能就一定能够有机会晋升上去的。第三,公司职级也在逐步打开,所以公司在解决这个问题。最重要是心态要好,这是长跑的一个过程。
诱惑多
骨干会遇到很多诱惑。第一、要不要去创业?现在各种公司各种方向创业很多;第二、在要不要去业务 BG 试试?或者像外面有些大公司也挺好的……不可否认这个阶段大家都会或多或少面临这样的诱惑,怎么办?
我觉得这些事情没有好坏,只有是否适合自己,但我建议在做选择时,一定要非常谨慎的态度去问自己几个问题:你适不适合创业?你的能力是公司赋予的,还是你已经有足够能力带领团队?如果创业,你的家庭和个人能否应对创业风险?团队融合问题?你过去后能够给团队什么?....一定要想得非常清楚。我看到过往的创业公司,其实绝大部分人是过得很苦并且是失败的,其实成功的机会还是少的,所以要谨慎。
去业务 BG 怎么样?可能是一个选择,但我觉得也还是要谨慎。大家看到的都是很牛逼的业务。业务 BG 有好也有不好,但去到好的 BG 是否可以做的好,那真的因人而异,但很多时候大家都很难知道自己这个点能不能踩对。
还有业务 BG 多变化,其实压力是非常大的。因为毕竟业务要看收入,对技术的长期投入和太长远规划也会受限,如果想要去搏一把可以试试,但如果你是希望长期在技术上面有耕耘,一步一步精进,我觉得 TEG 还是非常合适的,无论从技术长期投入还是对个人成长的回报,我觉得是一个不错的地方。
也许这几年你加入了那些目前风头很劲的公司,但也可能入职即巅峰,进去之后能做的成、做的好么——不知道(当然某明星团队除外)。可能隔一段时间这个团队就解散了,要么就内部自己找,要么就离职,当然这里我并不是要求大家面对诱惑不为所动,而是在不同的选择下要好好考虑自己能力到底适合什么。
专家的影响力和烦恼
5.1 专家的领域影响力
成为骨干几年后可能有两条路:或者晋升为专家,或者晋升 Leader
晋升专家不是个人自己申请就可以,目前需要部门推荐,即部门评估出个人能力达到后,会提名申报专家。那如何获得部门提名呢?
1、有实际效果产出,即在部门有一定有影响力的项目或者主导或是重点参与部门长期的重要项目;
2、你的项目对公司产生了一定收益,增加收入、节省成本或提升效率,项目对内对外都有技术影响力,同时你的能力获得了团队的认可;
3、你影响到了公司或者行业,最重要一点是你的所在 BG 老板知不知道你,不知道你没关系,知不知道你所负责或者所做的这块工作内容,如果事情和人都不被人知道,那这里就有一些问题。
5.2 专家的烦恼
第一、如何开辟新战场,专家需要有新想法,新创意,还要告诉 leader 你的新想法,技术上应该怎么做等等;第二、新想法如何获得总监或者 Leader 的支持,新创意我想的很详细了,很想做也觉得必须要做,但好像总监并不支持或者当前并不在乎,苦恼中。
比如设备编译器要去寻求资源,怎么去沟通呢?大部分的技术专家会觉得编译器很牛,这个技术很难......但其实从一个商业计划书的角度去谈会更合适。首先不是说技术难就应该去做,而是它的背景是什么、解决什么问题;其次,解决这个问题能产生多大的收益?再次,实现路径是怎样的;为什么我能做而不是别人做或者别的条件下不能做;最后,如果有别的团队或公司已经做成,目前结果如何,是否可以能够印证我做的这些规划可行性,当然以上这些内容可能会受技术专家的视野限制,所以专家们这里除了技术需要好好切磋交流外,可能日常也要从更高、更直接地引入一些商业计划书内容作为补充和拓展视野,解决这样受限的问题。
还有一点,很多专家的问题就是他宁愿去写代码,也不愿意分享,不愿意出去讲,去建设自己的影响力。而我们要求专家是需要有自己的影响力,所以心态要到位,也需要走出去发挥专家的影响力,进而带动团队整体的影响力的进一步提升。现在部门 HR、PR 的团队也提供了很多渠道和方法帮助大家提升和拓展自己的影响力。
当你成为 Leader
6.1 Leader 能做什么
Leader 一是能搞定事情,二是能搞定人。
怎么搞定事?第一你必须有能力,能耕田,技术能力被认可的,组内的技术是精通的,有什么问题困难找你能解决;第二有前瞻性,能打猎;除了自己这摊事之外,还能看到周围的事,怎么样去打、获得更好的效果。
怎么搞定人?第一你对内团队管理能力要强,大家跟着你做事是服气的。第二对外你能搞定客户的。所以我觉得一个好的 leader 标准是说团队都是子弟兵,事情不要他操心。这里子弟兵的概念意思是说团队跟你是一条心的,你受到欺负,团队会一起帮你;不操心的理解是指你不在的情况下团队能不能帮你搞定,比如你休一周假团队工作是否照常,我觉得这也是一个行业的标准。
6.2 Leader 的烦恼
人不好搞,团队激情不够,能力不匹配。我觉得核心就是讲真话,敢担当,不折腾,打胜仗、建口径、强信心,要锻炼团队打胜仗,自然大家就好搞。
事情不好搞,老是有别的团队想做我们的事情怎么办,还有不知道团队朝哪个方向走会更好?我觉得这里要做减法,做深入,仅仅是招募更多的专家和 TechLead 还不够,还要经常开一些务虚会,把组内的群智释放,帮助团队整体成长。
最后总结一个技术人员的成长,其实就是能力和意愿:能力就是通过不断地学习沟通,加强执行力和提升影响力;意愿是我们要有平常心,要有创业者的激情,去投入去深入,一步一步打胜仗,从新手逐渐完成到专家的蜕变。
晋级难、35 岁退休、内卷?
7.1 晋级难,不知道怎么写 PPT。
在我们每年做晋级预评审时,发现一些共性的问题:1)晋级 PPT 不等于项目汇报。很多人都当作写项目汇报来准备,这是不对的。项目汇报是你向老板汇报,需要项目背景、收益,是一个大而全的概念,而且重点是成绩和收益。晋级 PPT 的核心是整个项目分析过程,有数据有分析,技术难度的量化体现,两者有差别。晋级 PPT 更多是我们怎么样去解决问题,难题是什么,解决问题中我有什么创新思路和高效方法,这才是最重要的。2)晋级更多是对前段工作的持续的沉淀和总结,功夫更多在平时,很多同学其实是晋级前专心致志写一个月的 PPT,但更多应该平时就要沉淀积累,靠后面一个月去集中或者突击,往往达不到很好的效果。
7.2 如何增加影响力?如何跨部门沟通?
首先,和其他团队的私交非常重要。记得之前一个团队的 leader 经常和外部团队开会,而他们的会议时间总定在上午 11 点或 11 点半,开完就会跟外团队一起吃饭再深度聊聊。这样挺好的,多和别的团队除了工作顺畅沟通外,一起吃饭这种实打实交流,也能起到非常好的效果。
其次,人脉很重要,在公司建立人脉越往后越重要。从骨干到专家到 leader,一个事情要去推动很需要寻求各种信息,这么大的公司是否能结识一些人非常重要。建立人脉第一点是争做子弟兵。比如你的 leader 现在面临的困难问题是什么?你怎么样能帮他们?我估计大部分人常常可能会忽略这个问题,都是有事情分配下来就把它完成做好,但你可以再多想一步,除此之外我还能做些什么?这点在对外合作,为合作伙伴着想也非常重要。还有积极创造沟通交流的机会,结识不同的人,比如和不同部门的同事约饭或喝咖啡聊聊新技术新点子,互通有无,也是建立人脉关系很好的方法。
7.3 怎么保持激情和冲劲?
所谓“剩”者为王,如果你一直抱有激情的坚持做一件事情,在你坚持的过程中可能浮躁的人熬不住就走了,而你不仅在坚持并且还不断有积累有沉淀有成长,那么坚持到最后你就是王者,剩下的才是真正厉害的。
7.4 内卷是一个最近非常流行的词
内卷怎么办?首先做减法。比如我们做新技术领域拓展,比如编码技术,在这一块我们是不是足够强,足够深入,业务了解的足够透,如果要做到这样就要做减法,该舍去的一定要舍。
其次是创新。举个计算加速的例子,彼时 AI 那么火,我们觉得是不是做点 AI 的事情,AI 这边的工程能力比较弱,能不能帮下忙,做了这件事让我们发现原来 AI 在工程方面是有很多优化并可以逐渐实现的。比如我们通过一些竞赛打榜、做训练加速提升技能。当然这里是基于你原有的一些积累,或者是一些机遇能够结合,逐渐成长。再比如 CDN 原来只做静态下载,然后视频发展起来了,也用了 CDN,再到逐步发展的编解码技术,你会发现它是一环一环去成长扩大的一个过程。现在公司在推开源协同也是一个很好的例子,参与主导一些事情,也能够防止内卷的情况。
最后谈下,共性或热点即大家都说的 35 岁退休。退休后是开滴滴还是干嘛?确实有很多人在担心这个问题,但大家不用太担心,因为从职业规划方向来看,有几个方向可以去做:
1、做专家。目前公司最牛的 15 级专家也是 40 多岁,如果你往专家方向发展,不用太担心你的年龄,只要提升技术能力,逐步往上做。之前团队招了一位专家快 60 岁了,应该快接近到中国退休的年龄了,但是人家还是扎根这个领域,对于美国来说 67 岁才算退休,我们 40 多岁就在担心这个问题,是不是有点早。
2、往行业专家团队的管理者方向发展,或者在内部升总监,或者去外部公司做 CTO。
3、深度去理解产品和用户的需求,一方面可以往产品业务方向发展,另一方面即使出去创业,也能做一番事情,所以出路还是蛮多的,其实互联网从业者也可以干到退休的。
可能十几年前互联网是一个新兴的行业,大家都是年轻人,现在这些人都年纪大了,怎样保持好的心态和健康的身体才是重要的。所以我每天早上都跑步锻炼身体,保持自己有好的精力,虽然也是工作 10 多年,但我觉得自己在技术能力上拼劲还是蛮强的。无论是谁自己不去提升能力深耕或拓展工作内容都可能会被淘汰。
最后,不管你是往专家还是去外部做 CTO 还是创业,都要把当下核心事情做好,先做短期计划,比如今年要达到什么目标,长期要相信整个大趋势,整个公司是在往前走的,互联网在往前走,再到未来面临各行各业的融合。你只要在这个行业里,把每一块事情做好,自然而然可以干下去。把每一块被安排的事情都做好,自然而然就成长起来,所以我觉得大家不用太担心职业生涯。