| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 谈谈程序员35岁职业危机 -> 正文阅读 |
|
[开发测试]谈谈程序员35岁职业危机 |
通过这篇文章,你可以知道:
PS:我写这篇文章的目的,主要通过这篇文章引发你自己的思考,希望对还在迷茫中的你带来一丝亮光。 写在前面先介绍我自己,我15年毕业于中国地质大学(武汉),在百度做了3年多百度钱包,18年去滴滴做了1年搜索,19年去武汉小米做了2年海外电商,因为部门调整,今年转到人事线,整体工作经验6年半。 “程序员35岁危机”一直是我容易产生焦虑的话题,再过2个月我就33周岁,离大家眼里的“程序员35岁大限”也不远。其实这个危机感在我读研究生期间就存在,初工作的前几年可能还好点,当工作3-4年的时候,这种焦虑感就尤为明显,为了考虑后续好提前转型,工作的第4年就回到老家武汉。 回老家武汉前,因为对后续的职业规划比较迷茫,当时想法也比较简单,就是想去小公司混几年,说不定能混上去,就可以延长自己的职业生命线。后来还是有点不甘心,想去大公司再去试试,如果在大公司站不住脚,我再去小公司发展,就这样我最终选择武汉小米。 在来小米的第一年,因为团队刚成立不久,机会很多,加上自己能力也不错,很快得到领导赏识,3个月带虚拟团队,一年做到一线主管,按道理说我回武汉也得到我想要的,不应该再焦虑,但是这种焦虑却一直存在。现在回过头来想一下,其实还是当时对自己的定位不够清晰,虽然知道自己想要什么,也知道自己缺哪些技能,但是缺少清晰的职业规划,也找不到补齐短板的发力点。 在写这篇文章前,我对自己已经有了大致定位,补齐短板的发力点也基本找到,但是当我问自己目标是否足够清晰,定位是否足够准确时,我还不能完全说服自己,所以就给自己定了一个课题“程序员35岁职业危机”,希望能从大佬那里借鉴一些好的思想,同时也看看自己和大佬们的想法有没有偏离。 目前来看,我应该已经找到想要的答案,希望通过下面的内容,即将或者已经步入35岁的你也能找到自己的方向。 和同事聊天有时吃饭的时候,会经常和同事聊天,就会谈到这个“35岁危机”的话题,我经常会问他们“以后到35岁,或者写码写不动,你打算去干啥呢?”,有同学调侃道:“你没看到前段时间有报道程序员去送外卖、开滴滴,我如果不搞这一行,就去送外卖吧”,也有同事说“以后打算自己做一些生意,我媳妇开了个服装店,以后如果真干不动,就和媳妇一起去打理服装店吧”,还有同事说“程序员目前工资还可以,也攒了些积蓄,目前也有这方面的人脉,以后可能就自己去做生意”,甚至有一位技术能力非常强,30岁出头的同事说道“我说不定过几年就不想搞这一行,打算出去做些自己的事情,至于做什么还没有想好”,当时听到这还很惊讶,因为我觉得他可以往架构师方向发展,不知道他说的是他内心的真实想法,还是一句玩笑。 如何看待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,为副业打好基础。做副业的目的,就是增加自己的收入,同时,也是倒逼你去学习更多的知识,让你的技术能力提升更快。也为你未来创业做准备,关键是增加你抗风险的能力。因为你做副业,增加了收入,也提升了你个人能力。 拓展圈子越是那些成功的人,他的圈子就越广,资源也越多,人生的路自然就越走越宽。最近几年关注的一些公众号的大佬们,就都在报团取暖,各种互推,实现资源共享。 所以多向上拓展你的圈子,多走近结交那些正能量,有想法,志同道合的人。兴许下次换工作,是圈子里的人脉直接内推让你找到一份满意的工作。更也可能,圈子里的几个朋友因为某一个好点子直接走向创业之路。 写给自己职业规划方向不对,努力白费,之前对自己的定位其实不太清晰,只知道去学习一些技术,然后跟着公司项目一起成长,如果后面混得好,可以再去当个一、二线主管,等到写码写不动了,就转到其它的行业,运气好的话,还可以找个事业单位躺着,我想这也是是大多数程序员的想法。 现在我的职业定位很清晰:技术管理者 为什么不往架构师或者技术专家发展,因为我对技术没有那么热爱,更多是觉得这块知识很重要,反向逼迫自己去学习,所以很难达到这个高度,再结合我现在的年龄,在35岁我最多也就到资深技术工程师,如果真要到技术专家的级别,至少也需要到38岁+的年龄。 对于管理,包括团队管理、项目管理、上下级关系处理等,感觉我在这块的优势要明显一些,然后自我感觉情商还可以,也喜欢和人打交道,同时之前也有团队管理的经验,所以可以往管理方向走。可能有同学会问,那你为什么不往纯管理方面去发展呢?其实很简单,纯管理对软技能要求太高,脱离技术的管理,基本都到部门总监级别,这个也不实际。 既然纯技术和纯管理都不太适合我,然后刚好这两块我又都不差,所以就打算走“技术管理”路线。 如果要走好“技术管理”路线,我觉得过硬的技术、软技能、业务领域,这三者缺一不可,然后三者的基础就是持续学习。
关于学习这个是一切的基础和前提,如果不能保存一种持续学习的心态,就谈不上职业规划,也注定会被淘汰的命运。 对于学习这一点,感觉我职业生涯的前5年并没有做好,特别是在滴滴这一年,没有任何技术方面的积累,平时上班,周末打王者。然后来小米后的第一年,也主要是提升自己的软技能,技术方面的提高并不多,唯一感觉能有所积累的应该是在百度那三年。 如果真要说每天有计划去学习,应该是从去年8月份开始,到目前也持续了一年多,基本上把需要补齐的必备知识点都涉猎了。有一点觉得自己做的还不错,就是持续输入的过程中,也在持续输出,主要是将学习的知识通过文章的形式发布到微信公众号和掘金等平台。这种方式既然能坚持一年多,那应该可以继续坚持下去,所以持续学习这个问题,我应该算是比较稳定能落实了。 然后关于学习时间的问题,特别是大龄程序员,很难抽出时间,不过我基本还是能保证每天1.5小时的学习时间,学习时间也基本集中在早上上班前和晚上下班后,如果需要加班的话,学习时间就会减少。如果周末不加班,基本一天学习,一天休息,毕竟我们也要生活,要不然这人生就过的没啥意思了。 不过对于学习的内容,这段时间也引发我的思考,这一年基本是补齐短板,但是不够聚焦,比如最近在学习Dokcer,后续还打算学习k8s,后来我问自己,我学习这两块内容的目的是什么呢,仅仅是因为他们比较火?如果要学习,我又需要学到怎样的深度呢?然后我学了这2块知识,对我现在的工作又会有哪些帮忙呢?经过一番思考,我才发现我对这两块知识的学习程度,只需要停留在会使用即可,对于里面的原理可以不必深究,毕竟在我现有工作中不太会用到的。 想到这里,关于学习这块,目标就比较清晰了。因为目前我已经具备一定知识的广度,后面需要去探索相关知识的深度,也就是更聚焦,并能形式自己的知识网络,最好能运用到实际工作中,这个才是我后续需要学习的重点。 关于管理在小米这几年,有过一年半团队管理经验,因为部门变动,目前又回到一线,我简单说一下我团队管理期间的得与失。 在做团队管理这段时间,确实对我的软技能提升非常大,包括项目管理、上下级沟通、团队管理&规划、汇报、演讲等,也让我知道我的软技能短板的地方。然后有一点对我帮助最大的,就是宏观视角和思维高度,这个主要是跟着我的二级主管学的,对我的影响不仅仅在工作上,也包括我的学习和生活。 但是做团队管理,也会遇到非常多问题。有了团队就不能单干,所有的事情需要围绕团队展开,然后每周一堆会,平均每天2-3个会非常正常,这个还不算每日站会的情况,就光周会,每周都要开3个,一个大组周会、一个产品周会、一个核心主管周会,如果算上小组周会,可能每周就有4个,然后每天早上还有主管早会,小组早会,其它的项目相关的会,更多如牛毛雨。 所以每周开会和团队管理这一块,就要花掉我30%-40%的时间,剩下的时间可能就在各种项目中周转,留给自己Coding和学习的时间就非常少,所以去年担任小主管后,特别是下半年,基本就很少写代码,这个对于程序员来说是致命的。 总的来说,团队管理这段时间,对我软技能的提升非常大,但是对于技术提升非常小,Coding能力甚至退化,因为这个问题我还焦虑过一段时间。后来去年下半年,我开始注重技术能力的提升,今年回到一线后,我有更多时间去提升技术这块。 在我呆小米期间,我看到很多同学都想去当一线主管,我的看法是不要去强求,如果你能力和水平起来了,当机会出现时,你就自然而然到那个位置,如果没有这个机会(准确来说连这个坑都没有),你就静下心来慢慢打磨。不过如果需要再往上爬,除了看实力和领导对你赏识的程度,真的就要看机会了。 对于是否要做回一线主管,我目前的态度其实非常坦然,所以我现在的重心就很明确:如果想成为一名优秀的“技术管理”人才,技术可能会成为我的瓶颈,所以我需要趁这段稍微空闲的时间,抓紧时间补齐技术短板。(Ps:一线主管不是“技术主管”,我理解“技术主管”需要再往上再拔1-2级) 最后一点,也是我想强调的一点,对于一线和二线主管,一定不能放松对技术的追求,要去持续Coding,技术才是我们的安身立命之本,哪天因为外部原因导致你从管理岗下来,无论是你转岗还是跳槽,新老板是否雇佣你的第一衡量标准还是技术。 关于业务我工作的几个公司,其实主要围绕金融领域,比如在百度做了3年百度钱包,小米做了2年海外商城,但是对于我个人的业务积累,我感觉完全不够,比如之前做的百度钱包,主要围绕APP后端,基本没有涉及到订单、支付等核心领域;在小米商城,主要做的基础服务,虽然对核心领域有所涉及,但是不是我这边负责的范畴,所以准确来说,我对电商和金融,只能说有5年工作经验,而且还主要是停留在前台,中台和后台就更是搭不上边,完全谈不上对业务精通,这个也是我做的很不好的地方。 既然意识到这个问题,那肯定需要有所行动的,目前在人事这边主要做招聘业务,那么我就需要对招聘的整体流程非常熟悉,除掌握公司内部的整体框架、人事业务逻辑和数据流以外,还需要对行业内的标杆有所涉猎,只有这样,我才能真正掌握这块业务。 后面如果有机会再进入电商领域,我希望我能弥补之前的遗憾。 关于健身为什么要把健身单独拎出来,是因为我看到公司很多程序员除了吃饭和上厕所,其它时间就很少动,30多岁的年龄,40多岁的身体,所以对于大龄程序员,就更需要靠运动去保持我们身体的活力,比如36对的C罗,身体年龄只有26岁,我们不能成为C罗,但是至少可以通过运动让我们的身体年龄更年轻。 目前健身也有3年多了,其实最开始健身的目的不是强身健体,主要是为了减肥,后来练着练着,就喜欢上这项运动了。目前去健身房,都会先跑步30分钟,然后再重器械运动20分钟,有氧和无氧结合,每周会去健身房2-3次。不过最近发现自己又胖了一点,体重超出130斤(这个是给我体重设置的阈值,超过这个值,我就必须要给减下去),现在每天中午去健身房呆50分钟,希望这次能减到125斤以下。 我看朋友圈很多同学坚持跑步,然后用keep记录轨迹并发到朋友圈,我觉得是一种很好的锻炼和互动方式,不喜欢呆健身房的同学,户外跑也非常好。 关于副业我目前没有副业,本来想把理财和炒股当做自己的副业,还买了很多理财相关的书籍,结果买的小米股票亏了3W,感觉已经被套进去了,我就装死吧。买的基金也亏了1千多,后来全部卖了,钱都被股票套住了,也没钱玩了,除了买的定期理财能有稳健收益,但是也微乎其微。 理财不行,那就投资吧,今年7月刚投资了一套房,这个月听说隔壁的楼盘降价了,还搞了维权,然后武汉楼市降价的新闻也是铺天盖地,心又凉了一截,如果这套房4年后不好卖出去,或者需要我低于市场价卖的话,那就留着吧,反正离老家近,以后出租和自住都可以。 其实我想做副业,主要是能给生活多一层保障,拓展自己的人脉和圈子,如果后面写码写不动了,我也好转行。要知道,当你听到XX程序员出去开店,或者自己做生意做的很好,他肯定不是突然就去做这一行,应该是他在做程序员期间,已经有相关的人脉和圈子。 至于我副业的方向,我暂时还没有想好,不过后面我可能会有相关尝试。 写在最后工作可以是事业、是热爱,也可以只是一份工作,给自己留出转身的空间也是很有必要的,如果把工作看作一份经历和沿路的风景,在乎过程中的经历和感受多过最后的结果,可能会让人生更加充满期待。 参考文章:
欢迎大家多多点赞,更多文章,请关注微信公众号“楼仔进阶之路”,点关注,不迷路~~ |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 2:32:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |