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,只是焦虑感会少一点。
楼主最近还看过