当技术和工作为程序员遇到瓶颈,如何应对
程序员在职场中时常会遇到瓶颈,作为过来人,谈谈我的看法。
头两年注重学习,不要太忙
刚开始工作的一两年确实热情很高,主动加班、主动看书,买了一大堆技术书籍、技术视频。不管是Delphi、Java、js、jQuery、python、Scala,一股脑的学。这段期间是兴趣萌发期,可塑性很强,当时写代码速度也很快,全栈式开发。解决问题的能力有限,基本稍难的问题就要请教技术经理、领导。其实这也很正常,大学的时候我还是有点基础,大学就参加过全国软件竞赛拿了奖。可毕竟学校和工作差别还是挺大的,学校里的那点东西根本不值一提。我觉得在这个阶段,最好不要太忙,不要忙到没时间提升自己。其实事情是很多的,烦琐,年轻时更重要的是学习技术,多学一些东西,这个时候是有时间的。
第四年开始精进技术
当工作到第4年的时候,会出现一个瓶颈。基础工作都能应付了,技术的使用已经很得心应手了。看着技术视频也沉不下心来看,谈了女朋友了,精力不再完全工作提升了。这时薪资也会达到第一个小高潮,很多人于是开始自满,不在学习。我曾经也是这样,将近一年的时间没有学习任何新技术。毕竟工作用不到,而且工作技能已经很成熟了。反过头来总结一下,这段时间恰好是拉开差距的时机。
工作三四年,基本的框架用法都会用。此时应该注意学习一些高阶的东西:Redis、MongoDB、分布式以及MQ消息队列。虽然工作中未必能立即用到,但是这其中包含了技术的精华,也是拉开与初级程序员的分水岭。有些人工作9年,技术栈却还停留在两三年的水平,对一个人往更高层次发展是非常不利的,很可能公司倒闭后就会失业。
升华与自我实现提高
工作到五六年的时候,就要培养带团队的能力,分析需求的水平以及组织沟通能力。其实我也做的不是很好,我以前跳槽也比较多,很少积累分析业务需求的经验、也没得到多少带人的机会。现在也在补强短板,学习管理与领导力、以及需求分析的能力。
每个人的成长轨迹与经历不同,所擅长的也不同。在我们公司,我更多承担的是核心技术攻坚的职责,附带带一些项目。也深感自己能力不足,到现在每天都在坚持学习,不仅研究技术的底层源码实现,还要积累管理能力,学习产品需求。
几年前考过了高级《系统架构设计师》职称,还是有点用的,培养了学习能力。单位招投标需要证书,有补贴。目前计划再考一个高级项目管理师,边学习边实践,在摸索中和大家一起突破瓶颈。