35 岁之后做什么?也许每个程序员都焦虑过这个问题。网上流传的程序员职业发展路线有几条。
第一条,考公考编考教师资格证,然后转入体制内。
第二条, 在技术道路上继续卷,坚持高强度学习,从初级程序员,到高级程序员,然后转型架构师或者项目管理,然后跳槽到更小的公司当 CTO,或者自己开公司创业。最后,转型成 IT 培训讲师,卖课作为职业生涯的归宿。
第三条,不想继续卷了,30 岁就躺平,35 岁就去开网约车或者送外卖。上面三条路,都不那么理想。第二条路好一点,但是以卖课退场,似乎也不完美。
我自己是土木工程专业毕业的,转行当程序员,现在 51 岁了,软件架构师,也算半个程序员。我女儿现在读大一,已经表现出对编程序有浓厚兴趣。我元旦去她学校看她,刚好遇到她为了交作业熬通宵写代码。我估计,她未来也会成为一名码农。我很清楚,这个工作相当辛苦,但是我并不反对她选择这个职业。下面就讲一讲我对这件事的看法。
职业既是收入的来源,也是成就感的来源。如何选择职业,也应该从这两方面看。
先说收入方面,既要考虑近期收入水平,也要考虑长期收入稳定性。程序员近期收入水平是不差的,在二线城市,土木机械行业的本科应届毕业生,大多数起薪不到 1 万,但是程序员的起薪普遍 1 万以上。如果能进入互联网大厂,月薪很可能超过 2 万。这也是为什么很多其他专业本科生读研的时候选择 “转码” 的原因。
其实,人生最需要钱的阶段,也就是年轻那几年。大学刚毕业,本来收入就低,又面临着买房、买车、结婚养小孩,每一样都需要钱。年轻选择当程序员,经济压力会稍稍小一点。大部分程序员,可以靠自己努力在二线城市买房成家,一线城市很困难。过了年轻这几年,小孩上了小学,生活都进入了平稳状态,只要收入能覆盖日常开销,量入为出,经济压力就没有那么大了。
程序员这个职业,稳定性确实不行。这也是程序员都很焦虑 “35 岁门槛” 的主要原因。码农劳动力市场,是一个充分竞争的市场。除了自身技术水平之外,几乎没有任何其他进入门槛了。没有行业准入限制,任何专业毕业,只要自己愿意,都可以当码农。无论是否能够胜任,只要年轻,都可以争取到试用的机会。不只中国这样,全世界都这样。
大部分其他职业都是有准入门槛的。例如,想要当医生,要求执业医师资格证,不是任何人都能给别人看病开药的。没有行医资格证给别人乱开药,出了事是要坐牢的。当律师也要有律师证书,没有律师证是不能帮人打官司的。新西兰搭建脚手架的工人,都要考资格证,要参加好几个月的培训,才能拿到这个证书,然后才能持证上岗。前段时间韩国医生罢工,是因为韩国打算增加医科生招生数量,这样韩国从医人数就会增加,解决了韩国百姓看病难、看病贵的问题,但是韩国医生的收入会下降。这个既得利益群体就激烈反对,就罢工。
为什么程序员没有资格证呢?其实是有一个的,叫做 “计算机技术与软件专业技术资格(水平)考试证书”,一般叫做 “软考证书”。这个证书在体制内可能有点用,但是,在真正的软件开发行业里用处很小,大多数企业招聘的时候,都不看这个证书。编程知识的迭代升级相当快,无论你是多么资深的程序员,2 年不学习就会感觉到落伍,5 年不学习就会被淘汰,这不是危言耸听。想靠一个资格证考试来评判程序员的专业技术能力,完全不现实。重视资格证书的企业,都被市场淘汰了。
既然程序员的职业稳定性很差,是不是应该尽早转行?这是一个见仁见智的问题,不同的人,看法完全不一样。有人觉得这个问题很严重,必须要解决,就趁着 35 岁之前,考公考编 “上岸” 了。
我的看法不同,我认为很难找到绝对稳定可靠的工作,所谓 “稳定” 的工作, 也只是相对稳定。我甚至觉得,这类 “稳定” 的工作蕴藏着更大的风险。一旦从稳定岗位上失业,会更难适应。
我 92 年来成都上大学,那时候成都东郊有很多国营工厂,里面的工人收入很好,他们是婚恋市场的抢手货,如果谁家姑娘嫁入成都东郊工人家庭,是被人羡慕的一件事。就在几年之后,我大学刚毕业,国有企业下岗潮就开始了,遭受冲击最大的一批人,就是成都国有企业的工人。很多人自以为可以在国有企业干一辈子,对下岗毫无准备,完全无法适应这种变化。
几年前,全国各地的高速公路系统都安装 ETC,一大批高速公路收费员下岗,有些人对着镜头哭诉:“我的青春都奉献给了高速公路收费站,现在让我下岗,我以后靠什么吃饭?” 最近两年房产市场低迷,对建筑设计行业产生了很大的冲击。据传西南建筑设计院可能会有 1000 人下岗,这个企业曾经是很多人梦寐以求的理想工作单位。现在是人口负增长的时代,可以预见,未来教师一定会缩编,甚至偏远地市公务员也可能缩编。
从长期来看,没有什么岗位是绝对稳定的。加强自己的学习能力,提升自己对变化的适应能力,才是可靠的方法。所谓 “笼鸡有米汤锅近,野鹤无粮天地宽”,就是这个道理。
软件开发行业是否会一夜变天?就像教培行业、房地产行业一样?我估计不会。
从宏观层面看,社会对于软件的需求,至少还能平稳持续几十年。跟房地产行业不同,软件已经渗透到了各行各业。我最近几天拉肚子,昨天晚上在微信公众号上挂了一个家附近医院的号,早晨步行到医院,打开手机二维码在诊室门口排队机上注册,然后看着电视大屏幕等着喊号。医生看完之后给开了两样检查,然后手机缴费,去化验室递交化验样品,然后手机扫码拿报告交给大夫复诊,然后支付宝缴费拿药。然后回家通过人脸识别进入小区大门和楼栋单元门。就在 10 年之前,这些还都没有。医院不能自助打印报告,也不能在支付宝上自行支付,必须要到收费窗口排队。小区大门也没有人脸识别。所有这些,都是程序员努力的结果。
现在看来,这种趋势还会继续延续下去。最近 AI 大模型发展,给整个行业带来了无尽的想象空间。前几天一个大学建筑系的教授问我,是否懂 AI 大模型技术?他希望把建筑专业知识跟 AI 大模型结合起来, 做一些创新工作。大部分人每 2-3 年就要换手机,汽车自动驾驶系统的竞争非常激烈,电动汽车出口大幅度增长,比亚迪大批量招收的应届毕业生,所有这些,都是软件行业 增长的动力。最近两年,无人机在战争中大显身手,实际上,无人机的核心部分也是软件。据说 F35 战斗机软件的代码量超过了 2400 万行,单独计算它的设计成本,软件占据了很大一部分。现在几乎所有家电、仪器设备里面都有软件。家用的煮蛋器、电子秤、体温计、指夹式血氧仪,医院的各种医疗设备,实验室的示波器……很难找到完全没有软件的设备。有这么多需求,就需要有人开发产品来满足这些需求,程序员也就有事做。
程序员找工作几乎不受地域限制,只要学好英语,就可以在世界各地找工作。甚至可以住在中国,远程为欧洲公司工作。其他职业就做不到这一点,谁听说过自己身边的朋友,在国内受教育,然后出国当律师,或者出国当医生的?
从国际竞争角度看,中国的软件产品竞争力会越来越强。2023 年中国开发的游戏在海外市场的收入是 300 亿美元,而中国的数据库市场也不过 60 亿美元。华为手机和无线基站一直是被某些国家禁止的,现在居然连 TikTok 这种短视频网站都要禁止了。这只能说明中国软件的竞争力越来越强。现在对方甚至已经开始禁止自己的某些产品在中国销售了,本来中国在基础软件领域几乎没有翻身机会,这样一来,对于数据库、存储产品等这些基础软件来说,简直是天赐发展良机。程序员最好不要个人去海外众包网站去接外包任务,这是赚外国人钱最笨的方法,中国程序员根本无法跟印度码农竞争。开发有竞争力的产品销往海外,才是效率比较高的方法。
尽管软件行业本身没有衰落的迹象,但是具体到某个程序员个人,却未必能够适应行业发展。一旦学习能力下降,跟不上行业发展,就可能失业,被迫转行送外卖,这也是事实。程序员怎么提高技术能力和学习能力?只能以战养战,在战争中学习战争。对于已经开始工作的程序员来说,多花时间把跟自己工作相关的技术学透,通过解决一个一个难题,来提升自己的技能水平,才是效率最高的方法,是捷径。
如果你是游戏程序员,但是花了很多时间去读 Linux 内核源码,你认为 Linux 内核才是 “高技术”,这其实是效率最低的方法。因为你的这些学习行为,没有一个稳定的、明确的目标,遇到困难问题就会绕开,这样只能学到皮毛。另外,你外围没有人跟你讨论,进步也不会很快。
对程序员来说,另外一个发展误区是,想要凭借加班来实现快速进步。你每天加班到很晚,也许在某些公司可以快速升级加薪,但这不是真正的职业能力进步。也就是说,不能通过被动加班来快速获得实际能力增长。实际能力的增长,还是要不停的主动思考、积极实践,靠解决实际问题来获得。
在很多大公司都有一大批想不通这个道理的程序员,他们实际能力不强,但是加班特别积极,职级低的时候上升很快,但是到了年薪 60-80 万左右的时候,就提升不上去了。再往上走,就很难靠超长加班来晋升了。我面试的时候就遇到过这一类人,虽然他们年收入 60-80 万,但是讲不清楚存储行业最常用知识点,例如:一致性 hash 的原理、bloom 过滤器的原理等等,只是知道名词,你让他讲工作原理,他讲不清楚。
这些人通过加班,奋斗到年薪 60-80 万,已经差不多 40 岁了,发现自己很难再靠加班朝上走了,身体和家庭两方面都不再允许超长加班了,在大厂随时可能被淘汰。于是就想找个小厂过上平衡一点的生活。但是,他们出来面试之后,就会发现很困难,小厂虽然加班少一点,但是对能力的要求一点不少,甚至比大厂更高。
年龄并不是程序员被淘汰的最主要因素,丧失学习能力,停步不前,才是主要因素。对程序员来说,真正的困难不是年龄增长本身,而是行业要求你的能力随着年龄不停增长。如果你在年轻的时候没有积累足够的知识和经验,随着年龄的增长,学习能力也会随之下降,这就处于被淘汰的边缘了。如果你在持续成长,那么很自然就会被任命为团队领导、架构师、项目经理等,无论你自己是否愿意。因为团队缺少骨干,一定会要求能力更强的人承担更多责任。要想不被淘汰,坚持卷下去是唯一途径。
从成就感方面来说,程序员是很少数能够获得简单快乐的职业了。每当完成了一个模块,或者解决了一个困难的 Bug,就能体验到发自内心的轻松和喜悦。另外,软件本身确实让这个世界更美好了,每个程序员都能切身感受到。如果你写代码这件事让你非常痛苦,并且你也感受不到丝毫价值,那最好尽快离开这个行业。这方面就不展开谈了。
关于 “码农 35” 的问题,想清楚之后,就没有那么焦虑了。如果年轻的时候想不清楚,到 50 岁的时候,大概率也就想清楚了,只要你能坚持卷到 50 岁。大和尚说,开悟前砍柴担水,开悟后也是砍柴担水,心境不同。对码农来说,开悟之前辛辛苦苦写 Bug,开悟之后也是辛辛苦苦写 Bug,只是焦虑感会少一点。
大龄程序员有时候会感觉焦虑,这很正常。但只要你能持续学习,不断地提升自己,随着年龄的增长,你的工作经验也会越来越丰富,那些好工作也会找上你。
不好意思,大龄程序员的最终归宿还真是网约车司机,你看,这BOSS直聘上现在也就只能收到这样的招呼了