转载

技术变化的这么快,程序员如何做到不被淘汰?

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

原文  https://studygolang.com/articles/17557
正文到此结束
Loading...