这次去深圳的时候,抽空参加了一个深圳本地的线下沙龙,去的时候这个活动已经进行开始,刚坐下来不久,就听一个新程序员问一个老程序员的一个问题,引起了大家的热议。
年轻的程序员的问题是这样子的,他说现在新技术更新太频繁了,过个两三年就会出现一个新的框架,比如早些年非常流行的 Struts 说淘汰就淘汰了,好不容易掌握了 Spring ,现在又出现了 Spring Boot、Spring Cloud 框架,根本就学不过来。
那么作为一名老程序员和一名新程序员在面对新技术的时候是站在一个水平线上的,但明显刚入行的程序员精力更旺盛一些,学习热情又强,那么老程序员的优势体现在哪里呢?
感受了一下,这不就是新程序员要把老程序员拍到沙滩上吗?
估计前端开发人员看到这个问题硬是要吐出一口老血了,前端框架的更替那叫一个火箭速度呀。今天还在 AngularJS ,明天突然就出现个 React,当 React 快要掌握的时候,市场上 Vue 大火,并且经常出现最新版本不能往后兼容,坑X呀。要想精通所有框架,对每个程序员来讲,那真的是臣妾做不到呀。
那如果真按照新程序员说的那样,那老程序员不是早被淘汰了,为什么市面上老程序员的工资比新程序员高好几倍呢?难道 Hr 都是脑瘫。
其实呢不是这样子的。
就拿招聘来讲吧,我们经常看到的面试条件会写到2/3年以上开发经验,某某行业背景的优先。就说这面试总要求多年以上的开发经验,这到底是要求什么样的能力?可以很负责任的讲,这种能力就是解决问题的能力。
老程序解决问题的能力比新程序员要强 N 倍。新程序员开发过程中,突然遇到一个问题卡住了,有可能就这个问题就卡一两天,当他拿着这个问题去问老程序员的时候,可能老程序员就抽了一眼,说怎样怎样试一把,问题就解决了。
老程序员的学习能力其实是更强的,因为前面有了积累很容易掌握类似的技术,比如当你精通了 Java ,我相信经过很少时间的刻意学习,你就会学会 Python 开发。语言和技术只是一种工具,它的本质是为了解决问题,当你脑中有了解决方案后,其实仅仅剩下语法实现了而已。
至于具体怎么实现用什么语言,那只是一种技巧而已。
特别是生产出现问题的时候,一个牛逼的程序员要顶 N 个程序员,解决生产问题的程序员要面对,超强压力,超复杂情况,快速定位问题的能力,这些能力都不是一朝一夕能够积累出来的,都是从一个坑一个坑里面爬出来后所积累的。
程序员毕竟还是一个比较烧脑的行业,没有几年的积累,很难成为一个老练成熟的开发工程师。
这里说的是普遍努力的老程序员,不排除有些老程序员,工作了一天,重复了三年的这种情况,也不包括很多刚毕业就很凶猛的年轻程序员们,这里讲的都是广大的普通程序员的对比。
我对程序员们的一些建议:
在刚毕业三年内的时候,优先全面提高自己的技术,快速响应完成工作的能力。积极主动的工作,每次工作完成后主动汇报,向领导要求更具有挑战一些的工作,工作担子越重,成长越快。
毕业三年后的程序员最好确定一个行业方向沉淀下来,一个优秀的架构师,必须同时精通业务和技术,所有行业内才经常会有业务架构和系统架构两个说法,只有同时精通通业务和技术,才能贴合公司业务设计出高效、可扩展、稳定的、适合公司发展的技术架构。
毕业三年左右的程序员重点是,找一个自己喜欢的行业沉淀下来,找一块自己喜欢的技术,挖精挖透。
毕业六年后,如果你毕业六年中到处换行业,并且技术上没有太多的沉淀,那六年后你的竞争力会越来越小。刚毕业的六年内,也就是大多数人的30岁以内,你的职场生涯是急剧上升的,前几年每年工资翻一倍都是很正常的现象。
但是到了6年后,也就是30岁以后,由于各种原因你的精力肯定被有所分散,同时熬夜需要恢复的时间也越来越长,如果没有建立起自己的竞争力,那么未来职场生涯并不好走。
所以不论是老程序员还是新程序员都有自己的优势,年轻程序员有时间有精力,老程序员有行业和技术积累。有了老程序的指引,新程序的成长会更快速;没有新成员的加入,哪有中国 IT人的明天。
最后,欢迎新程序员们把我们拍在沙滩上,这样中国 IT 才更有希望。
微信扫描二维码,关注一个有故事的程序员
(点击了解: 关于程序员的专属导航!)