作者:农民工老王
来源:blog.csdn.net/monarch91/article/details/122709576
我是一个非科班出身的程序员,大学本科时的专业和编程无关,毕业后做了几年事业单位后,才中途转行做了软件开发。
我一入行就听说了35岁危机:程序员到了35岁后,如果没有进入管理层,大都会被公司辞退,再去找工作也异常困难。刚开始,我没有在意,毕竟35岁离我还有十来年。但时光飞逝,我今年也30岁了,感觉离这个35岁危机也不远了,就开始认真思考了这个问题。
最初,一想到程序员的35岁危机,我就特别焦躁和后悔。觉得当初被忽悠了,软件开发虽然工资水平高一点,但如此朝不保夕,当初真是入错行了。但后来还是想明白了。因为我发现只要不是在体制内,不止程序员,大部分打工人都会面临35岁危机,只是有的行业会晚几年,可能是40岁危机。
35岁是大部分行业的招聘年龄上限
不管哪一行,过了35岁都不太好找工作。参加公务员,事业单位的编制考试,35岁都是一个年龄门槛。在非公有制经济中,即使是入职门槛和工资水平较低的服务员,还是有很多招聘限制了35岁这个年龄。
大部分管理者更喜欢用年轻人
无论是公有制经济中的公务员系统、事业单位、国有企业,还是还是民营经济中的私企、外企,绝大多数管理者都喜欢用年轻人,特别是3到5年工作经验的年轻人。之前在事业单位工作的时候,我就发现,领导也想辞退或开除35岁以上的某些老员工,只是说那些领导没有这个权力。而在民营企业中,雇主辞退员工的难度较低,对比之下,我们才觉得体制内才是铁饭碗。
以软件公司为例,在实际工作中,需要较高技术水平的工作,相对较少。一家软件公司,大部分工作内容还是完成重复而技术水平不高的业务代码,技术专家在整个开发人员中的占比一般不会大于十分之一。普通规模的软件公司,通常是一两个技术专家做带领着项目组中的10多人一起做开发。无论从工作需求来看,还是工资成本来看,软件公司都只会提供少量的技术专家的岗位。所以说,在竞争中 九成以上的程序员,是做不到技术专家的职位的。
而在基层岗位挣扎的35岁老程序员,即使自己愿意坚守平凡,但从公司的角度触发,也还是倾向于辞退老员工,聘用年轻人。
其实我们换位思考一下,如果您是雇主,你喜欢雇佣哪种打工人?当然是性价比最高的员工。年轻人才毕业,精力旺盛,可塑性强,工作积极性高,且生活琐事很少,下班不需要带孩子,陪老婆。既可以让他加班,也可以鼓励他下班后提升技能,所以未婚单身的年轻打工人就是首选。
而反观35岁以上的人,身体开始走下坡路,加班久了可能猝死,上有老,下有小,生活琐事多,下班后要去陪老婆孩子,还要照顾年老的父母,没时间加班和提升技能,还可能不定时地请假。如果这个35岁以上的员工的所作的事情,年轻人也能做到,且要求的工资更低,那作为雇主的你,当然会想办法辞退这个老员工, 换点新鲜血液。
所以说,大部分行业都想辞退大龄员工,只是说具体年龄门槛有差异,程序员这一行工资水平比较高,也热衷在社交媒体上发声,所以才获得了媒体更多的关注。其他行业也是如此,比如,我舅舅,年轻的时候是建筑工人,到了40岁后,体力不行了,就自己转行了,都用不着雇主提醒。您还可以看看商场中品牌服饰的柜姐,有50岁的阿姨吗?难道那些大龄柜姐全都做了管理层?
在民营企业中,很难在某家公司从20多岁干到退休。现在还在策划延迟退休,说男性要到65才能领取退休工资。但如果您是老板,你敢雇佣一个63岁的老人吗?他即使朝九晚五,从不加班,也可能病倒在工位上。
通过观察身边的编程同行,总结后,我发现35岁后的普通程序员的出路无非下面五个方向(其他行业也应该比较类似):
成为管理者或技术专家
这是最根正苗红,最理想的状况。上文已经谈到管理和技术专家的岗位数量很少。更何况,这些职位上还有人在岗,即使你符合条件,足够优秀,但还是没有职位给你。这条路实际上最难,成功的概率应该不到10% 。
推荐一个开源免费的 Spring Boot 最全教程:
一直在基层做老员工
虽然大部分企业都是倾向于淘汰大龄员工,但是还是有一部企业,如国企、外企或者是实力较强 且 节奏不是很快的私企,愿意继续雇用大龄员工。但是由于我国软件行业也才兴起不到20年。目前我接触到的最大的基层程序员是一位45岁左右的大哥。
能不能走这条路,主要看企业文化,不过自己的心态也很重要,综合考虑 这条路成功的概率在30%左右 。
考编制进体制
程序员有35岁危机,恰好体制内的编制考试的最大报考年龄也是35,。那有人就想,可以在34岁前后,考上编制,转行拿到铁饭碗,自然就不用担心失业的问题了。理论上,这的确是可行的。但一个在职的社会考生,平时工作繁忙,备考时间少,哪有这么容易考上嘛。
下面两种情况,走这条路还是相对容易:
除此之外的朋友,要想考上,最好辞职脱产,破釜沉舟,全力备考方能获得一线生机。
综合考量,这条路的成功概率应该不到20% 。
创业做个小生意
这里的小生意虽然包括搞个小的软件外包公司,接点项目,但更多的是指开个餐饮门市,搞个美团外卖。到了35岁,从事编程工作10多年,也应该有些积蓄。拿出一部分,做个小生意是很多人的选择。但是创业风险也是非常大的,失败率是95%以上。但读到本文的朋友有福了,参考以下建议,可以将创业的失败率降低到70%以下(虽然还是很大的失败概率?)。
从小做起,最好先去做学徒,如果你想卖冒菜,可以先去冒菜餐厅里打工三个月左右,如果有亲戚朋友正好做相关生意的更好,就去他的店里打工(如果关系还可以的话)。
可以先做地摊生意,就是流动商贩,不需要门面的那种,也包括三轮车的那种。地摊生意做好了,有盈利了,再考虑租门面的事情。但请参照你所在城市的街道流动商贩的管理办法,如果您在北京,估计摆不成地摊了。
如果要开店,请优先考虑在大学附近。
上述建议来自于对周围亲戚朋友成功创业的观察,不是来自于亲身实践,请谨慎参考。
我的一个高中同班同学,男性,30岁之前在做汽车销售,30岁后开始买冰粉,并在电子科技大学旁开了一家门店,所在的街道叫建设路,也是成都有名的美食街。现在每月纯收入在8万以上。小生意做好了,还是收益可观。
选择这条路仍然有不小难度,在认真连续创业3次,最终成功的概率应该是40%左右。
转行
这条路不是指转到软件公司的其他岗位上,如 :运维、测试、产品经理,因为那些岗位也迟早会遇到年龄危机,那样的转行只是延迟35岁危机。这里的转行主要是指送外卖,跑网约车、当保安等体力工作,这些工作都基本上能干到65岁。
跑网约车的收益相对较高,但有一定的门槛,你要有辆车,还有一定的驾龄,勤快点的话,大概能月入8千以上,专车司机能月入1万以上。送外卖的门槛较低,有电瓶车就ok,如果跑得熟练,月入5千应该很稳当。当保安基本上没有额外的要求,身体基本健康就行,月收入在3千左右。
以上收入数据来自我在成都的调查访问,信息比较可靠。
选择这条路相对容易,毕竟收益相对较低。成功的概率在90%以上。
选择节奏稍慢、实力较强的公司
大部分软件公司之所以更愿意用年轻人,是因为他们能满足快节奏工作的要求。特别是需要快速完成项目的时候,很有可能需要加班完成。比如各种外包公司,互联网初创企业。客户或者老板频繁更改要求,还美其名曰敏捷开发,你功能刚做完,产品经理却告诉你需求变了,还要你迅速改好,不要影响发版,避免耽误客户或老板,他们要用这个功能实现他们宏伟的商业计划。
所以如果觉得自己想要在程序员这一岗位上多干几年,最好选择节奏稍慢的企业,比如业务模式已经比较成熟的软件产品公司,或者国企、外企。这样的公司对疯狂加班没有什么刚需,因而辞退老员工的动机不是特别强烈。
同时也要注意公司的实力,因为当代企业很容易倒闭,即使公司愿意雇用大龄程序员,你也愿意为公司奋斗终身,但要是公司在你40岁就倒闭了,你也就成了失业的大龄程序员。
要注意学习的方法和方向
大家都知道学习的重要性,但要想不被淘汰,还应注意学习的方向和方法:
即使有志于管理层,也应该以编程技能的学习为主,管理能力学习为辅。管理岗位可以尽力争取,但对不要对其有抱太大的希望,毕竟一个部门的管理岗位就一两个,职场不会因为你有了管理知识的准备,就能给你管理岗位。而且大部分管理能力是就任管理岗位实践出来的,而不是在书本上看出来的。所以你还是要把主要的时间用在沉淀专业能力上,这是职场生存的基础。
对程序员来说,管理能力的学习,认可度最高的就是考PMP。
最好的技术学习是工作中的代码实践。但要对工作内容要有所取舍,积极做对专业积累有用的事情,而不是仅仅做自己擅长的事情。很多35+被职场淘汰,是因为自己在专业领域虽然做了很多事,但所做的事不支持专业能力提升。比如做后端开发的,如果一直在写增删改查,那做再多也没有提升技术水平,就很容易被淘汰。
保持与直属上级的信任关系
对于上级来说在一个团队一定需要一个可以信赖的人,你的能力也许不是最好的,但你可以对上级安排的事非常用心去做,且严格按照上级的要求执行。这样的人,上级用得顺手,不会轻易更换。而且也可以随着上级的升迁,自己工作范畴,岗位也有提升。
如果对自己的职业发展,有什么规划或疑问,可以在适当的时候向上级汇报讨论。软件公司相对于其他企业,少了很多官僚主义,只要诚恳沟通,领导一般也会在其权限范围内给你提供一定的支持。
合理设计家庭财务计划,避免高额负债
人生最大的误会,就是你以为余生都是丰年。35岁以前,工作和收入都基本上是走上坡路,身体健康,医疗费用也比较少,家里的各项开支也还处于较低的水平。但35岁过后,工作和收入的不确定性因素太多,身体也是走下坡路的,自身医疗费用、子女教育支出、父母养老成本都在快速增加。所以临近35岁一定要把以上因素考虑进来。要有一定的储蓄以做应急资金,最好避免高额负债,总之就是不能陷入财务危机。如果35岁后失业了,又严重缺钱,或者有较重的债务缠身,那就会导致在做决策时更加短视。而一旦放弃了长远规划,凡事只看眼前,急功近利,那就更难有翻身之日了。
养成良好的生活习惯,积极维护身体健康
如果有良好的生活习惯,并注重体育锻炼,让35岁的你也有25岁的精神状态和身体素质,那么你的老板也就可能忽视你的年龄,而一直误认为你仍然很年轻,自然就不会解雇你。
同时有良好的身体素质,也是以后转行开滴滴,送外卖、当保安的基础和本钱。如果身体强壮,当保安也可以去条件更好,收入更高的小区。
在当前以效率为主导的就业环境来说,职场的35岁危机是大家将普遍面对的一个问题。要想让自己安稳地迈过这个槛,不能等到35岁才开始临时抱佛脚,而要提前谋划,最好在毕业后刚参加工作时,就将这个事情考虑在内。同时,我们也要有一个良好的心态,我们作为打工人,能做的就是不断提升综合实力,让自己不是特别容易被替代,其他的,只有顺其自然,尽人事,听天命罢了。
即使35岁时真的被公司淘汰了,也不要过于消沉。这一切都是人生的经历,用心感受其中的酸甜苦辣后,也要释然地放下过去,再去开启一段新的人生历程。做人嘛,最重要的是开心咯。
无论如何,祝您工作顺利,事业进步,35岁后过上自己想要的生活。
关于35岁危机,您有什么想法或亲身经历吗?
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2022最新版)
4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!
觉得不错,别忘了随手点赞+转发哦!
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
如何检查Ruby文件是否是通过“require”或“load”导入的,而不是简单地从命令行执行的?例如:foo.rb的内容:puts"Hello"bar.rb的内容require'foo'输出:$./foo.rbHello$./bar.rbHello基本上,我想调用bar.rb以不执行puts调用。 最佳答案 将foo.rb改为:if__FILE__==$0puts"Hello"end检查__FILE__-当前ruby文件的名称-与$0-正在运行的脚本的名称。 关于ruby-检查是否
是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在
我有一个应用程序可以读取文件的内容并为其编制索引。我将它们存储在磁盘本身中,但现在我使用的是AmazonS3,因此以下方法不再适用。事情是这样的:defperform(docId)@document=Document.find(docId)if@document.file?#Youshould'tcreateanewversion@document.versionlessdo|doc|@document.file_content=Cloudoc::Extractor.new.extract(@document.file.file)@document.saveendendend@docu