其实我很早就对大龄程序员这个话题感到焦虑,担心自己35岁之后会面临失业,有时和亲戚朋友聊天时,也会经常拿这个出来调侃。现在身边已经有很多35岁左右的同事,自己过两年也会步入35岁的行列,反倒多了一份淡定和从容。 写这篇文章前,为了让文章的内容保持客观,我对“35岁大龄程序员”这个话题调研了2周,然后才开始落笔,文中很多观点都是摘录其它优秀的文章,然后再结合自己工作中的所感、所悟所得。 写这篇文章的目的,一方面是想给自己一个交代,另一方面主要还是想通过这篇文章引发你的思考,希望对还在迷茫中的你带来一丝亮光。 备注:这篇文章其实是提炼我之前的文章 谈谈程序员35岁职业危机,原文中包含很多自省的内容,这篇文章是通过一种客观的角度去评说这个话题,可读性更高。 如何看待35岁年龄危机35岁年龄特点
为什么会在这个阶段出现危机呢?我们先来分析35岁的年龄特点:
35岁危机来源如果你能按照现在的工资水平一直待下去,就不存在大家所说“35岁危机”,但如果公司裁员,你是不是被最先裁掉的那一批呢?如果被裁掉,35岁再出去求职,其它公司会不会要你呢?如果新公司给你Offer,能否能达到你之前的水平,至少能保证你正常的生活开支呢? 这些其实都是我们危机感的来源,怕被优化,怕年纪大了其它企业不要你,怕给你的薪资覆盖不了你的最低生活水平,比如你月供7K,你不能找个月薪1W的工作吧。 我们看看用人单位看大龄程序员的视角:
大龄程序员是否被排斥当服务突然宕机、大项目需要出方案设计、公司服务性能不能支持高并发场景,年轻程序员可能很难搞定,下面看看大龄程序员的优势:
年轻程序员在写日常的业务代码,可能和大龄程序员差不多,但是当需要解决公司的技术性难题、或对项目重构时,大龄程序员就会发挥自身的优势,所以我们和年轻程序员拼的不是代码能力,而是项目经验、设计能力和知识输出等。 不过,如果你已经步入大龄行列,比如有10年工作经验,但是对自己的技术积累和软实力培养都非常少,虽工作10年,但是其实只有4-5年工作经验,甚至更少,这些人被淘汰的概率会非常大。(当然网上也有个比喻,就是一直CURD,把1年的工作重复10年,这个比喻其实有点夸张,但是描述的很形象)
如何克服焦虑“35岁危机”一直存在,准确来说大龄危机一直存在,拿我个人来说,我认为能做到40岁,但很难做到45岁,做到50岁更遥不可及(大神除外),所以危机无法避免,只能尽量去延长我在这个行业的生命线,并在“退休”前完成一定的财富积累。 有了上面的思考,其实就没有那么焦虑,因为我最终都会离开这个行业,只是时间早晚的问题,所以我的目标就非常清晰:不是要守住程序员这个行业,而是尽量延长我在这个行业的生命线。 那如何才能延长职业生命线呢?答案是持续学习! IT行业的技术更新换代非常快,对个人综合能力要求非常高,如果你不持续学习,等到年龄危机到来时还想躺赢,下一批裁员的可能就是你了。 持续学习是一切的前提,但我们不能盲目去学习,需要提前做好职业规划。 如何提前做好职业规划我们看看程序员常规的晋升和转型路线:
也有大牛对职业规划讲述的比较详细,这样可以最大限度延长自己的生命线,甚至可以摆脱年龄的限制(摆脱年龄限制,感觉都是大神级别的人物):
需要具备的核心技能技术方面首先,技术实力始终是一个程序员在职业生涯中能保持竞争力最有力的武器。无论你是刚入行的新人,还是资深开发、架构大佬,甚至是技术团队负责人,都不要把技术完全落下,区别只是在各个阶段对技术的要求的有所侧重。 初中高级程序员,都是一个技术强化的过程。专家和架构大佬,前者是选择一个技术方向深耕,成为对应技术领域的专家。而架构师更偏向对项目整体架构的设计和把控能力。至于团队负责人到CTO,管理职能更大于技术职能,更多的是对技术的宏观方向把控。 技术方面主要有以下几点建议:
架构和设计架构师是很多开发者的终极技术梦想,然而不是每个人都能成为架构师,也许20个人只有一个可以成为架构师,也许比例更小。 但是,每个人都必须要架构和设计软件的能力!因为你没有架构的能力,没有设计的能力,就无法站在更高维度去理解软件开发,就必然被迫奋战在最简单也最容易被替代的体力化的编码工作岗位。而这样的岗位,必然是拒绝大龄程序员的。 所以,即便你还不是架构师,也不是技术经理,也不是管理人员,也不是需求分析师,你也需要在日常工作中拔高一点,经常性的、刻意地去想一想,系统的模块为什么这么划分,服务间的接口为什么这么设计,这个业务逻辑为什么要这样实现而不是那样实现,惟其如此,你才能慢慢理解别人的架构与设计,才能慢慢培养自己的架构与设计能力。 业务能力所有开发者都要记住一点,开发者具有双重的行业属性:软件行业属性和软件所要解决的问题所属行业的属性。 软件所要解决的问题,就是我们通常所说的业务。比如支付宝的业务是支付问题,京东商城的业务是电子商务问题,携程的业务是机票和酒店预订问题。精通业务,可以成为开发者的优势,这是开发者在问题域构建起来的优势,即所谓的懂行。如果业务积累方面的优势和开发技能方面的优势能叠加起来,那这位开发者,就具有秒杀 85% 以上开发者的能力。 再比如,目前国内技术人员太多,可替代性太强,做java搞业务开发的,无非就是spring boot + mybatis + mysql,需要上微服务就采用Spring Cloud全家桶,通用型太强。而如果你既懂技术又熟悉核心业务流程,比如熟悉电商平台,支付系统,风控系统等的核心业务流程,那么你在团队的地位一定稳如泰山。 软技能《软件架构师的12项修炼》这本书里给出了软件架构师的金字塔能力模型: 这个模型,适用于绝大多数软件开发工程师,在这本书里,作者说:
我们每位开发者都要牢记这句话,要清醒地意识到:
所以,在你掌握了一定的开发技术可以搞定一些任务后,就要并行地去培养自己的软技能,比如沟通、表达、协商、演讲、辅导、写作、组织、规划、管理、汇报、商务谈判、创新、设计等等。只有软技能匹配你的硬技能,你才能更好的发展。当你软硬结合,综合能力爆棚时,根本不用担心将来怎么找工作的问题,工作机会会跟着你跑,甚至有人会专门为你创造工作机会。 其它建议除了持续学习、往技术或者管理方向发展以外,我觉得有以下几点也需要重点关注。 注意健康,锻炼身体之所以写在最前面,因为身体是革命的本钱。程序员,天天长时间同一个坐姿,对身体健康影响很大。程序员需要抽空锻炼身体,只有好的身体,你才能挣更多的钱。魔都一位技术人员,总以为自己年轻,身体硬扛得住。结果,一次晕倒后,医院检查发现自己得了尿毒症,没有好的身体,你挣再多钱都没有意义,一旦你因为身体而离开人间,配偶、孩子、钱都是别人的了。 发展副业提前布局PlanB,做好副业。作为技术人员,你必须提前布局你的PlanB,为副业打好基础。做副业的目的,就是增加自己的收入,同时,也是倒逼你去学习更多的知识,让你的技术能力提升更快。也为你未来创业做准备,关键是增加你抗风险的能力。因为你做副业,增加了收入,也提升了你个人能力。 拓展圈子越是那些成功的人,他的圈子就越广,资源也越多,人生的路自然就越走越宽。最近几年关注的一些公众号的大佬们,就都在报团取暖,各种互推,实现资源共享。 所以多向上拓展你的圈子,多走近结交那些正能量,有想法,志同道合的人。兴许下次换工作,是圈子里的人脉直接内推让你找到一份满意的工作。更也可能,圈子里的几个朋友因为某一个好点子直接走向创业之路。 写在最后工作可以是事业、是热爱,也可以只是一份工作,给自己留出转身的空间也是很有必要的,如果把工作看作一份经历和沿路的风景,在乎过程中的经历和感受多过最后的结果,可能会让人生更加充满期待。 参考文章:
|
|