程序员是吃青春饭的吗?Java程序员如何让能力匹配上自己的年龄?
程序员是吃青春饭的吗?还是自身的能力达不到年龄的要求?
近期,我与团队同学探讨了职业发展规划的问题。有些同学表示希望后续能进一步在技术领域(或管理方向)有进一步的积累;有的同学表示希望在新的一年能具有更好的技术影响力,自己能做一些技术决定,去影响其他人,这样自己会很有成就感。
因此,我也问了一些问题:
l 你希望技术能进一步积累,那你积累的方向和期望达到的结果分别是啥?
l 你希望能有技术决策,希望有影响力,你觉得应该如何做到?
l 是希望通过岗位任命的方式吗?
l 你觉得是否成功的标志,就是今年或明年得到晋升吗?
l 等等
大部分同学在面对这些问题时,其实是比较迷茫的,也缺少真正可度量的衡量标准。是否能在短期内获得晋升成了大部分人作为“组织是否认可、自己是否认可”的衡量标准了。 当然,这个话题仁者见仁、智者见智,这里我简单地谈谈我的看法。我以相对比较口水化的方式,将职业发展分两个阶段来进行阐述:
1)第一阶段:大学毕业3到5年
2)第二阶段:大学毕业5到10年
第一阶段:大学毕业3到5年
对于从事Java软件开发的技术同学,在毕业后的3到5年内主要都是以学习、积累为主。这个阶段的工作几乎每天都有惊喜,都有收获。从一开始啥都不懂的校园“新鲜人”向“职业人”转变。在这个阶段,你会学习:
首先,你需要有深度的Java基础知识:你会开始看《Java编程思想》、《Effective Java》。这两本书绝非普通的基础,而是至少拥有1~2年卓越的java开发者才有可能学完,而且这两本书一般要读完需要1年左右的时间。
其次,你需要看一些开源框架的源码,如果单单使用框架是实现业务而不去深入框架核心,架构思想,过几年有可能会发现你脱离了框架什么活也干不成。
作为三到五年的Java程序员:那么我们应该学习哪些源码呢?那就要看哪些框架最常用了,希望下面的图比较全。
有其他建议的请加Q群:416843702提您的宝贵建议,群内会提供免费的Java架构视频资料,面试资料!
再者,你在这这个阶段已经不能局限于满足于讲代码写出来,此时此刻的你需要追求高质量高性能的代码了,你此时需要研究的知识就会如下图所示:
是不是学习了上面做这些技术就够了呢?相信看到这里的码友已经知道答案了,没错,你还需要知道分布式架构的知识
另外,目前企业有大小,平台有限制,甚至对开放的方式方案都出现了独立的方式,Facebook每个模块的功能从设计到开发再到维护,由后端到前端再到客户端都是通过一程序员来进行的,这些就是所谓的全栈工程师,那么java开发中,我们服务器也有其自身的独到性;那么如何将庞大的后台系统分部成为多个功能独立,部署独立,维护独立,松耦合的独立服务呢?从而减少企业的沟通成本和维护成本呢?毫无疑问,这就是微服务。
最后,如果说开发是一个战场,那么程序猿们就是勇猛的战士,我们的战斗需要协调合作,统一调度,统一部署。那么完美的配合自然需要优秀的开发工具,那就就是我们的团队协作工具的学习。
第二阶段:大学毕业5到10年 很多本科同学,特别是研究生同学。
10年后,就已经到了34、35岁左右了。也是前段时间网上广泛讨论的所谓34+岁现象。其实,年龄并不是问题的真正原因。真正的原因还是在于自身“竞争力”是否符合这个年龄所应该具备的。
到了这个年龄的人,往往已经不是“个人贡献者”了,而是“团队贡献者”。团队贡献者可能是带团队的TL,也可能是个架构师,在技术决策上具有团队影响力和话语权。
为什么这些人能管理团队或者有影响力呢?
从公司的经营视角看,一个管理团队的人,他必须为业务的成功负责。说个大白话,一个TL管了N个人,他至少要能保证大家输出所产生的价值,至少要高于这个团队的工资、奖金、五险一金、OPEX、CAPEX等等吧。
负责领域的业务特点、发展趋势、友商竞争分析有很好的洞察?能知道这个业务领域的客户是谁?他们的需求是什么?他们的痛点是什么?
具备这种能力的人他必须要对技术有敏锐的洞悉力,知道何种需求需要使用哪种技术来解决,知道技术方向是否恰到好处。那么这一切都建立在他顺利的度过了完整的前五年。
获取学习资料,技术交流加Q群:416843702,群内有很多技术大牛交流,目前有1800多个工程师在里面一起学习交流!