你好,我是雪梅。
我们在第一个章节纵向探讨了技术人职业发展的几个切面:35+ 技术人的去向,不同技术岗位的常见发展路线,国企、大厂、外企的选择,要不要做管理的思考。
这一节,我们就从时间横轴梳理一下技术人的几个职业发展阶段。
想一想,在日常的工作中你是不是遇到过这样的困惑?
我刚毕业没多久,现在的职场竞争这么激烈,我该怎么规划好自己的发展路径?
我的工作经历比较坎坷,做的几个业务最后都没成,感觉有点荒废了,怎么办?
30 岁了,项目都会做了,反而越来越迷茫了,不知道未来该何去何从?
要想回答这些问题,我们就必须了解技术人的职业发展路线图,定位出自己的职业发展阶段。
没错,职业发展是分阶段的,就像游戏中的打怪升级,每个阶段都需要打不同的怪,才能更顺利地通关到下个阶段。而我说的这份职业发展路线图,就能让你了解全局路线,从而更聚焦到当下该做什么、不该做什么,而不是瞎忙活,对未来可能的挑战未雨绸缪,减少职场焦虑。
不同职业发展阶段的策略
我们都知道一个产品、企业有自己的生命周期,包括孵化期、发展期、成熟期、衰退期。其实,我们技术人的职场生涯也有生命周期。
吴亮老师的新书《视己为人——在不确定的时代活出有掌控力的人生》中,把职场人的职业生涯也划分为相似的 4 个阶段。
按照目前国内就业现状,一般为本科 22 岁,硕士 25 岁毕业,大部分公司招聘的一线员工大多会限制在 35 岁(当然管理岗或者稀缺人才年龄可能会放宽到 45 岁)。参考这个年龄区间以及吴亮老师 4 个阶段的划分,我绘制了一张技术人职业发展图,4 个阶段都有自己的“危”与“机”。
参考吴亮《视己为人》
当然,图中标注的具体时间不一定适合每个人,只是用来参考。接下来,我们就聊聊技术人职业发展不同阶段的策略。
新人期
新人期一般指刚毕业 0-2 年的阶段。这个阶段的我们就是小白,大多数工作都需要去咨询别人,或者需要别人帮助才能完成。
我访谈过很多人,这个阶段的“危”可以总结为“我在哪里”的迷茫。具体来说表现在三个方面。
其一,对职场规则的迷茫。从校园到职场,大多数人都会面临较长的适应期。曾经有一位前端小伙伴说,自己刚毕业时特别想知道职场如何考核。在学校有分数考核,保研也有明确的计分规则,比如学习成绩排名计分多少,社会实践加分多少等等。而在职场中,每个人都在干活,到底如何评价这个人做得好,那个人干得不好呢?她说,“我特别想知道清晰的规则是什么,这样才能找到我发力的方向。”
其二,技能上的迷茫。我们可能发现自己有好多东西不会,什么都要学,却不知道自己该如何入手。周围人看起来都是大牛,聊起问题侃侃而谈,而自己只能茫然四顾。
其三,工作内容的迷茫。发现自己每天的工作就是打杂,跟毕业时的雄心壮志差别很大。
我 2008 年校招毕业进入百度做后端开发,当时部门就我一个女生。我们做的是一个类似 QQ 的 IM 系统,我绝对是“杂活收割机”。从后台的管理系统到各种运营小工具,到产品的统计,都是我一个人干。我记忆最深的就是自己最多同时写过 4 门语言,PHP、JS、Perl、C++,以至于不知道自己今后该如何发展。
新人期主要的“危”是关于“我在哪里”的迷茫,那“机”就是找到自己的定位。如何找到自己的定位,我的经验可以分为两部分。
第一,技能上具备独立干活的能力。什么叫独立干活的能力?从四个角度去想:能独立承接不太复杂的需求,能独立定位和分析大部分线上的 Bug,对于团队做的产品有相对清晰的轮廓,对你自己开发的模块非常清楚。做到这四点,是我们技能上最重要的第一步。
第二,关系上融入团队。绝大多数新人最开始都是从杂活开始,很多人对此有非常多的抱怨。其实从团队角度来说,一个团队总有很多杂活。从组织效益最大化的角度看,不是新人干,谁来干?
从我们个人角度出发,在自己还是一张白纸时,就更需要历练能力的机会,而能力都是干出来的,新人期的我们就是在用时间交换社会资源。打杂不是为了一直打杂,而是为了更好地融入团队,找到自己在团队中的位置。
举个例子,前面说过刚毕业的我就是个“杂活收割机”,很多团队大型的项目都没有机会参加。意识到这个问题之后,我就开始想办法融入团队。当时发现大家定位线上问题的时候经常会需要一些小工具。这些工具散落在各地,我就主动请缨把它们都继承到后台系统中来。同时,我会经常观察大家的需要,随时调整和增加工具。
很多人反馈这些工具极大地提高了他们的效率,我也渐渐与大家有了更多的交流,加上跟经理的沟通,慢慢也开始承担一些较大的项目,后来这个产品所有跟 Web 开发相关的工作都是我来负责的。
总结一下,新人最大的挑战就是迷茫不适,而突破口就是技能上历练独立干活的能力,关系上融入团队,慢慢找到自己在团队中的定位。两个方式相辅相成,一定能够带你顺利度过新人期。
发展期
发展期是指工作 2-7 年的阶段。大部分小伙伴对当前的工作已经轻车熟路了,摆脱了对导师的依赖,雏鸟心态也在消除。
这个阶段的“危”在于一直打杂,没有积累。一方面,我们的工作内容可能在频繁变动。比如完成新人期还没找到自己在团队中的定位,经常被借调支持不同的项目。又或者部门经常调整,自己跳槽频繁等,造成自己没有在一个领域持续深耕,也没有尝试去解决更大的问题。
另一方面,我们也可能会满足于当下,停止学习。新人期大部分基础的项目可能挑战不大,如果没有更大的学习欲望,停留在满足开发需求的阶段,就很容易让自己的发展停滞。毕竟技术更新迭代很快,如果停止学习,就很容易被社会淘汰。
比如 2008 年我毕业那时候,运维岗的招聘要求没那么高,不少人的代码能力比较弱,擅长做很多手动线上操作。但系统慢慢上云之后,运维工程师对于代码能力的要求越来越高,曾经那些代码能力弱的运维工程师都被慢慢汰换了。在这个技术快速变化、日新月异的时代,一旦我们选择了技术岗,就意味着必须选择做一个终身学习者。
这个阶段的“机”,最重要的就是历练自己的一技之长。这件事说起来人人都知道,可是有什么好的方法吗?我总结了两个方面。
首先,保持技术能力的提升。技术能力的提升一方面来自日常工作的历练,升级打怪解决问题,比如各种诡异的 Bug、线上服务性能优化、稳定性建设等。另一方面来自自己的学习。不论是工作还是学习,我都建议你构建自己的“技能树”。以我当年作为 PHP 开发工程师,当年团队技术大牛就总结过一张 PHP 工程技能树(时间久远,不一定适应当下,仅供参考)。
你手里那张技能树的图一定要好好用起来。如果你处在发展期,可以找公司内比自己职级至少高两级的同事去请教这个岗位哪些技能是必备的,哪些对于未来的发展是很有必要的,慢慢去构建自己的技能树。如果你在大厂,也可以试试去公司内的 Wiki 上去找类似大牛的经验积累。
你肯定会问,干嘛要构建这么复杂的技能树啊?我是 Java 工程师,我能用 Java 编程不就行了吗?当然不行,按照需求写代码是技术人最最基础的工作,也就及格的水准。除了语言层面,技术的挑战还来自很多方面。
比如一个 Java 工程师,日常大概率会用到很多中间件,比如 Redis、MQ 等。如果你只知道怎么写代码和这些中间件通讯,那你一定会在它们出问题的时候满头包,在新项目做技术选型时也会一头雾水。更别提你还要让自己的服务更稳健地运行,那就必须得了解稳定性如何建设,不但知道 How,还得知道 Why,你才能举一反三。
这些东西哪一个不是跟技能树强相关呢?工作中可能没有那么多时间去学,我们一定得边干边学,一边向别人请教、查资料,一边动手实践验证。这些基本功掌握之后,才会让你的技术能力达到一个新的阶段。
关于历练自己一技之长这件事,还有一个重要的部分,就是独立负责项目。我问过很多技术小伙伴,你在发展期成长最快的是什么时候?大家都异口同声地告诉我,是第一次独立负责一个项目的时候。
在排期压力、人员分工、项目风险管控等重重压力之下,站在更高的视角,看到了更大的世界,才更容易发现自己的能力短板,尤其是非技术上的短板。
十几年前,我独立负责从 0 到 1 做一个广告系统 1.0 版本。那时候我完全没有广告系统经验,第一反应就是赶紧快速学习,但时间真的不允许。后来我发现团队内有个小伙伴有些经验,别的部门有很多需要的现成服务,虽然脸皮薄、很内向,但项目的时间压力逼迫我去跟小伙伴请教,去通过各种关系找到别的部门可以帮助我们的人。
半年的时间,这个“麻雀虽小五脏俱全”的系统上线了。我发现自己与别人协同、整合资源的能力得到了飞速提升,我还更加清晰地知道倒排期的项目如何控制项目风险,如何去搞定不配合的人……这些能力都在我以后的职场中发挥了重要作用,我也因为这次项目完成了一次重要晋升,也奠定了走上技术管理的基础。
说得容易,但你可能就会问了:那这个阶段怎么获得独立负责项目的机会呢?
我的经验是,一方面你工作上的靠谱会给你赢得一些机会,每个交给你的项目你都能很好地交付完成,还能思考迭代优化方案,慢慢地,在老板和周围人眼里你就是一个靠谱的人。
另一方面,你也需要主动争取一些机会。比如《远见》一书中说,“在老板面前表达你的野心是一件健康而有益的事”。你需要主动跟老板去争取机会,能够承担更大的挑战,大多数人的成长都是在事上练出来的。如果你所在的团队业务停滞,一直没有机会,你也可以通过转岗或者跳槽,从长远角度找到更适合自己当下发展的团队。
如果在发展期,你的技术专业能力得到很大提升,又有丰富的项目经历,那会为接下来的成熟期打下坚实的基础。
成熟期
成熟期指工作 7-10 年的阶段,大概是 32 岁到 35 岁。
经过七八年的摸爬滚打,很多人在职业发展上会有“七年之痒”。一边是工作已经非常熟悉了,技术上、项目上可能都很难带来大的挑战和兴奋感,一边是即将进入传说中的 35 岁危机,对于职业发展有非常多的担忧,不知道未来该何去何从。
这个阶段的“危”就是找不到新鲜感,每天感觉重复劳动。那“机”就是一定要做能力的拓展。这个阶段,大部分同学的能力突破分为三种。
第一种突破,转管理。虽然转管理不一定可以逃离 35 岁危机,但会非常锻炼人,尤其是整合资源,培养团队以及站在更高节点去看待人和事这几个方面,能帮助我们能更好地跳出技术人爱钻细节的习惯,具备更多系统视角。
对于个人来说,要不要转管理,或者想转管理不知道从哪里开始,都可以参考我们第 3 节的内容。 第二种突破,综合角色的发展。比如我的一个朋友在某大厂负责内部采购、ERP 等等系统。如果是你,会不会觉得没有技术挑战?但 30+ 的他不再局限于代码或技术架构,他说,“我开始多维度地整盘思考,跳出研发层面,去看看商务、研发成本,去看长远模式,看看行业内怎么做的,未来应该做成什么样子,对于供应商的标准是什么,如何去保证公司的利益等等”。
他更加理解研发只是一个环节,“研发完之后,如何投入生产,如何整盘去提升价值,如何获取反馈,如何挑战再推进……”这些在别人看来是“垃圾系统”的工作内容硬是在他手里开了花,这也让他获得了公司高层的高度评价。
绝大多数技术人发展的瓶颈在于只看到了自己手中的代码,只关注正确的实现和高效的交付。但写完代码,这一切才刚刚开始。综合能力的发展会让我们拥有宏观视角,更理解企业的价值传导链路,自己在这个链路上可以贡献的价值是什么,突破这一层,未来的职业发展才会有更多可能。
就像我们在第 1 节课中提到的技术人 B,从原来的互联网大厂技术管理到创业公司业务 + 产研综合岗的 VP 一样,即使当下市场环境很不好,35+ 危机对他也毫无影响。 说得远一些,除了更多机会,我看到那些综合角色发展的伙伴,视野都会更开阔,待人接物也会更舒服。因为整个人的认知达到一个新的高度,这对于我们的人生也十分重要。
好,再说第三种,在一个方向持续积累,做到行内专家。这部分的小伙伴就是借助着自己的优势,在一个领域持续深耕,比如风控领域的专家、搜索推荐领域的专家等。
什么是专家呢?你可以理解为,在公司内,别人一说起这个方向,就能自动联想到你,或者一见到你,就知道你是某个方向的大咖,别人在遇到这类问题的时候会想到跟你来交流。
要达到这种状态,一方面需要我们了解自己适不适合做技术专家,有没有持续钻研的兴趣。分享一个自测小方法,思考两个问题就好。
没有项目的要求,没有老板的压力,你会不会持续在某个方向精进学习?
如果答案都是“会”,那可以继续行动,在选定方向之后,让自己沉下来,持续深耕,成为领域专家。
我有一个小时候想当刑警,现在做技术的朋友。工作几年后,他做的是风控方向,他发现风控跟做刑警很像,都是从蛛丝马迹中抽丝剥茧,找到罪犯。所以他干得很带劲,每当一个风控策略生效,堵住一个系统漏洞,就感觉亲手抓住了一批罪犯。
很快他就成为了公司内的风控专家,会去参加一些相关的技术大会,后来被一个出版社主编发现,联系他出书。他前前后后花了 3 年的时间,写出人生的第一本书。后来他所在的公司出现了很多变化,但因为在风控圈的影响,他被邀约到另一个大厂继续做风控。在他看来,人要发挥优势,就需要在一个领域持续深耕。
衰退期
衰退期可以理解为 35 岁以后的阶段。这时候最大的“危”是企业可能不再需要你,这是这两年很多中年人被裁员的根本原因,不是你能力不行,而是企业觉得你太贵,或者不划算,从而不再需要你。
那“机”是什么呢?如果继续留在企业打工,你需要突破打工人的天花板,领军创造价值,进入公司的核心管理层,比如做技术 VP,C 某 O 等。
当然这样的打工人非常少,那对于普通人来说,在当下职场可能更现实的方法是在打工的同时慢慢探索出自己的第二曲线,提前种好自己的“苹果树”。副业的方式很多,比如通过技术手艺变现,知识付费。参考 01 节中提到技术人 C 和 D,这些方向相关需要的能力,我都在第一节中有详细说明过,这里不再赘述。 小结
OK,这节课我们从时间横轴分享了目前职场技术人职业发展的常见 4 个阶段,我给你整理了一个表格,帮助你更好地理解技术人职业发展的 4 个阶段。
放眼 4 个阶段,每个阶段都不是互相独立的。在前一个阶段丰富技能库、积累资源,可以更好地为下个阶段争取腾挪空间。
比如一个校招小伙伴在毕业前两年工作态度积极,做事情靠谱,那往往更容易脱颖而出,有更多的项目历练机会。如果还有贵人相助,专业能力有更好的提升,他会很顺利地度过发展期,成为一个口碑不错的技术骨干。有前期的积累,成熟期可能也会有更多的机会选择。
而从成熟期到衰退期,尤其考验前面 3 个阶段的积累,如果你想探索第二曲线,比如像我自己做自由职业者,其实非常依赖在职场中积累的技术管理能力以及人脉。如果你想突破打工人的天花板,那更是考验你整合资源的能力,决断力以及横向的影响力。
对于个人来说,一个人的成长不能简单地用升职加薪来衡量,我总结的技术人的成长包括三个维度。
升:岗位升迁,负责的 Scope 更大,解决更大的挑战。
深:在一个领域内持续深耕,成为某个方向的专家。比如前面提到的搜索推荐专家、风控专家等。
宽:即综合能力的历练,比如横向带项目,跨出技术角色,了解产品、业务等。
如果当下的你企业晋升机会有限,无法“升”,你可以看看自己有没有机会“深”耕某个方向,或者尝试“宽”,跨出技术角色的限制,培养业务全局视角,去带一些有挑战的项目。在某种程度,我们需要利用好职场“练兵场”,让自己组合式成长,更好地积累资源,丰富技能,为未来的发展积蓄能量。
聊聊发展
你当下处于职业发展的什么阶段?遇到哪些挑战?有哪些突破计划吗?欢迎留言分享你的思考。
如果觉得有所收获,也可以把课程分享给更多的朋友,一起学习程序员职业规划手册,心里不慌,脚下不乱,做好每一天的成长。