html5微信网站模板,查看网站开通时间,适合用dedecms做的网站,网站建设功能覆盖范围转载自 阿里P9谈程序员程序员的青春饭
导读#xff1a;你是否曾经认真思考过——毕业3-5年、10年#xff0c;乃至更久后#xff0c;我们希望成为什么样的人#xff1f;作为一名技术人#xff0c;我们要如何规划自己的职业发展生涯#xff1f;网上热议的“…转载自 阿里P9谈程序员程序员的青春饭
导读你是否曾经认真思考过——毕业3-5年、10年乃至更久后我们希望成为什么样的人作为一名技术人我们要如何规划自己的职业发展生涯网上热议的“35岁中年危机”本质上又因什么而焦虑今天阿里资深技术专家毗卢将带来自己的思考与理解希望对大家有所启发。
作者毗卢近期我与团队同学探讨了职业发展规划的问题。有些同学表示希望后续能进一步在技术领域或管理方向有进一步的积累有的同学表示希望在新的一年能具有更好的技术影响力自己能做一些技术决定去影响其他人这样自己会很有成就感。
因此我也问了一些问题 你希望技术能进一步积累那你积累的方向和期望达到的结果分别是啥 你希望能有技术决策希望有影响力你觉得应该如何做到是希望通过岗位任命的方式吗 你觉得是否成功的标志就是今年或明年得到晋升吗 等等
大部分同学在面对这些问题时其实是比较迷茫的也缺少真正可度量的衡量标准。是否能在短期内获得晋升成了大部分人作为“组织是否认可、自己是否认可”的衡量标准了。
当然这个话题仁者见仁、智者见智这里我简单地谈谈我的看法。我以相对比较口水化的方式将职业发展分两个阶段来进行阐述
1第一阶段大学毕业3到5年
2第二阶段大学毕业5到10年 第一阶段大学毕业3到5年
对于从事Java软件开发的技术同学在毕业后的3到5年内主要都是以学习、积累为主。这个阶段的工作几乎每天都有惊喜都有收获。从一开始啥都不懂的校园“新鲜人”向“职业人”转变。在这个阶段你会学习 基础Java知识你会开始看《Java编程思想》、《Effective Java》。 高质量代码进阶知识你会开始看《重构改善既有代码的设计》、《代码大全》、《编程珠玑》。 常用的主流框架比如SSH相关的《Spring实战》、《Spring Boot实战》、《Hibernate实战(第2版)》。当然这些书已经不够了你会通过Google、Baidu大量地浏览在线的资源Apache官网、Spring官网、Hibernate官网。你会去StackOverflow问问题或找答案。 系统设计与算法知识《系统分析与设计方法》、《设计模式》、《需求分析与系统设计》、《面向对象分析与设计》、《UML用户指南》、《算法导论》 其他知识比如数据库调优、缓存框架、NoSQL数据库、日志框架等等
在这5年间快速地完成这些基础知识的学习并能在项目中快速地学以致用。不仅自身能获得比较高的成就感而且实际的用人的单位、猎头也会非常喜欢这类熟练工。
从大部分人的实际发展轨迹看这个阶段发展快的人和正常发展速度的人差别还不是很大。比如发展非常快的人从毕业就入职阿里的P5到P7注阿里内部职称评级可能三年就可以做到。发展速度正常的人可能需要5-6年也可以到P7。也就是说这个阶段正常发展速度的同学也仅仅比发展速度快的人慢2-3年而已。
这2到3年的差距是可以通过有针对性的学习、重大项目的历练等完成这些知识的学习。无非是有的同学会严格要求自己有严格的学习计划有的同学赶早参加了一些重点的、痛苦的项目得到了锻炼。只要是做技术的其实迟早都会经历过都会成长起来。
发现没有这个阶段我们能协调好的资源其实就是自己更多的是一个“个人贡献者”。只要把自己管好了学习计划执行好了工作高质量做好了就能得到认可。 第二阶段大学毕业5到10年
很多本科同学特别是研究生同学。在毕业10年后就已经到了34、35岁左右了。也是前段时间网上广泛讨论的所谓34岁现象。其实年龄并不是问题的真正原因。真正的原因还是在于自身“竞争力”是否符合这个年龄所应该具备的。
到了这个年龄的人往往已经不是“个人贡献者”了而是“团队贡献者”。团队贡献者可能是带团队的TL也可能是个架构师在技术决策上具有团队影响力和话语权。
那么为什么这些人能管理团队或者有影响力呢
从公司的经营视角看一个管理团队的人他必须为业务的成功负责。说个大白话一个TL管了N个人他至少要能保证大家输出所产生的价值至少要高于这个团队的工资、奖金、五险一金、OPEX、CAPEX等等吧。这个TL为了大家输出得有价值他是不是需要能 能对所负责领域的业务特点、发展趋势、友商竞争分析有很好的洞察能知道这个业务领域的客户是谁他们的需求是什么他们的痛点是什么所以这个TL应该需要学习《咨询的奥秘》、《探索需求》、《系统化思维导论》。对于技术型的TL还应该了解《成为技术领导者掌握全面解决问题的方法》。 服务于特定领域的客户我们需要能了解我们的客户企业架构、业务知识。要了解清楚规划的产品、服务什么才是客户所需要的。那么从理论上我们是否应该学习一些TOGAF、NGOSS、ITIL等业务理论以及业务知识 作为TL是否有必要能将自己对于市场的洞察转换成业务规划并能向自己的老板或者投资人说清楚、讲明白并争取到老板的同意包括资金、人力资源等。对于能否把事情讲明白我们可能需要学习《金字塔原理》并能非常清晰、有逻辑性地进行表达与沟通。当然有些业务发展的事不一定特别有逻辑是需要摸索、尝试那么你是否能将一个不确定的领域说服老板并获得支持我们又需要什么《博弈论》、《影响力》等。 获得老板支持后就需要开始带着兄弟们干活了。作为带头人你看我们是否需要能将业务趋势、客户痛点进行业务建模好让团队的PD、技术都能理解在做业务进一步深入分析可能就需要学习《领域驱动设计:软件核心复杂性应对之道》、《实现领域驱动设计》、《企业应用架构模式》、《恰如其分的软件架构》等等。 做完业务设计后开始要带着团队做技术方案设计、接口设计以及编码实现等。这个过程TL又需要具备软件项目管理的能力。无论是《PMBOK指南》还是《敏捷软件开发》、《人月神话》、《程序开发心理学》相信总归还是会有点帮助的。 对于一些有国际化要求的公司还需要再学习英语吧 嗯还需要有个好的身体还需要经常锻炼学习科学的健身吧说起来自己脸红。至少我明白了一个道理以前我都是跟自己说等这段时间过了闲下来去锻炼一下。其实我发现越是忙的时候越需要锻炼身体 另外在这10年内比较关键的是——你还经历过什么有挑战的业务、技术、产品、平台等方面的成功与失败经验在这些经历里你可能会遇到这些困难与挑战团队磨合的挑战、技术方案上的争执、平台优先 or 业务优先的博弈、低落的团队氛围、个人的低谷等等。这些困难与挑战你是退缩了还是有成长在带团队时再次面临这些挑战时这时你是否有解或者有勇气了
发现没有毕业10年后作为一个团队贡献者你可能需要具备这些能力并且还远远不止。而且更可悲的时当毕业10年后突然发现自己不具备这个能力时比如晋升失败时发现了这些能力GAP就不再是2到3年就能追得上的了。我见过一些有准备的同学他们给自己的目标是在毕业第7年就要具备这些能力他有严格的学习计划、实践计划、甚至是冒险的创业经历。当他到第10年这个点时这些高阶技能很可能已经有3年的实践经验了。
如果我们没有做好准备10年后如何和这批人竞争这些软、硬知识从十年这个时间刻度倒排学习计划、实践计划的执行还是很紧张的。所以从现在开始给自己制定一个严格的学习计划、严格执行多实践吧