“程序员是青春饭”。当好多人听说你的职业后,一般会跟上这样一句话。听着让你感觉很无奈又无力反驳,因为程序员的确有“青春期”。中年危机,这个字眼我们已经被听到过无数次了,大多是泛指当人的年龄达到一定岁数后,遇到了来自各方的压力,产生的各种各样的问题,使得人们压力很大。但是,在我看来,中年危机不只是年龄到多少才会遇到,在程序员几年的职业生涯中,当你遇到技术瓶颈或者职业发展问题时,就是遇到了“中年危机”。
先说说我的情况,毕业已6年,人至中年,毕业时进入了本地的一家知名国企,在这家国企待了3年后,从国企离职到了一线城市,并进入了互联网金融行业,目前互联网行业已混迹3年。程序员的职业生涯中,前面二到三年,属于一个技术的积累过程,不管是从技术框架还是项目经验方面,前面的几年是你技术成长最快的是时期。毕业的第一份工作能够决定你的基础是否牢固,我在第一家公司时,由于公司属于传统行业软件公司,所以技术方面都是比较基础的一些内容,工作环境原因,这样会导致个人积累有所不足。所以这个时候我果断选择离开那个舒适区,虽然在那边我通过自己的努力,已经拥有了一些小成就,但是为了个人发展,我还是选择进入了技术前沿的互联网公司,来提升自己。从业三年会是一个坎,从业五六年也会是一个坎。从上家公司到现在的互联网公司后,从技术栈方面基本是一个开源和前沿的氛围,所以在这里让我从技术积累方便有所提升,这时可能你以为就已经能让程序员满意了。错,这只是一个开始。当你接触到了这些新鲜的技术栈时,你可能只是停留在一个应用层面,还没有完全熟练的去驾驭这些技术内容。当你遇到kafka时,你可能只会发送和接收;当你遇到redis时,你可能只会set和get;当你遇到dubbo时,你可能只会写一个服务和调用一个服务。这个时候你已经使用和接触过了大部分典型公司的技术栈,然而你却还是不能完全让自己透彻的理解到里面的原理里面去。有两方面原因:一是当前自己日常工作和生活琐事较多让你无暇顾及技术积累;二是当你钻研技术的时候没有一个合适或者正确的方法来让你学习。
话说回来,当你在现有的工作环境中,不能满足你的职业发展需求的时候,你就遇到了“中年危机”。因为此时的你,已经有了一些基础的技术积累和项目经验,但是你缺乏的是一个质变的提升。你可能想通过一个跳槽来解决这个问题,但是在你去求职的过程中会发现,技术积累不只是简单的应用层面。面试官会对技术的原理进行考究和发问,有时可能会让你措手不及。所以,言而总之,你的发展遇到了瓶颈,就是遇到了中年危机。
那如果解决“中年危机”?这可能是大多数中高级程序员面临的问题。在我看来,解决中年危机,就意味着个人积累的提升。这个回答可能感觉比较宽泛,因为不知道个人积累是指什么。个人积累无怪乎两个层面:一是技术经验;二是业务需求能力。在技术经验方便,个人感觉你要想有所突破,首先就要形成一套技术体系,从技术的实现原理到技术应用,再到不同技术的优劣比较。因为当前各大公司使用的如火如荼的技术栈,无怪乎那些你已经曾经使用过的东西,只是你需要在这个基础上,让自己更有深度和见解。在业务需求能力方面,一个公司除了看重技术积累方面,另外还比较注重个人的业务理解和分析能力,如果你在某个领域的业务能力比较强,能够hold住当前的一个业务架构,这样说明你对业务的理解能力是非常到位的。所以在业务方便,首先需要的是结合场景的个人理解,其次是延伸扩展。
中年危机不可怕,但是你要有足够的准备去解决这个危机。当你解决了它时,你会发现,这种提升是指数级别的。
程序员毕竟是从事技术行业,所以技术积累是首要关键。我从个人角度出发,先分析自己的不足,再对症下药。平时的技术积累不够,只能从网上的资料寻求出路。