程序员的归宿


转载自:https://mp.weixin.qq.com/s/4YJx95Fq__4CSj1GUO4Nvw

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,只是焦虑感会少一点。


相關推薦

2024-07-18

部分。 鉴于此,科技媒体 VentureBeat 归纳介绍了他们认为程序员需要重点掌握的三种语言。 Swift 苹果公司语言和运行时总监 Ted Kremenek 曾表示,程序员应该把目光投向 Swift,而不是传统的中坚力量 C++。“Swift 的安全性、速度

2023-11-02

2023年10月24日,被众多科技公司和业内人士称为“程序员节”。当天,深圳一公司奖励员工“黄金键帽”。 据称这款空格键键帽是 40g 黄金,价值近 2 万元。 △“黄金C键”是该公司去年的奖励 获得奖励程序员根据代码

2023-04-03

行自动挂载之前明确地将根路径设置为 /。 bectl(8) 实用程序现在会抛出错误,以防止创建带空格的引导环境。 bhyve(8) 实用程序支持在 nvme(4) 仿真中修复的大型 IO。 cmp(1) 实用程序收到 -b, --print-bytes 标志,以与 GNU cmp(1) 兼容

2022-11-04

Java通用代码生成器光2.3.0文明Beta6最新稳定版,程序员的曲速引擎 光的最新稳定版修复了一系列问题,是最近一段时间以来最稳定的动词算子式代码生成器版本。后期会以此为基础发布候选版与正式版。敬请期待。现在,您可

2022-07-13

以下内容来自微信开放社区:《关于禁止小程序 JavaScript 解释器使用规范要求》 为进一步提升小程序的安全性和用户体验,目前平台对提审的小程序均需进行安全检测,在检测过程中,发现有小程序采用内置 JavaScript 解释器(

2023-11-25

上海网警公众号今日报道了一起程序员的违法犯罪案件。 据介绍,2023年9月上海警方接到某科技公司员工张女士报案称,其公司发现计算机系统被他人篡改数据,导致公司账户钱款损失。 民警对公司后台电子数据出现的异常账

2022-11-17

Java通用代码生成器光2.3.0文明Beta8稳定版,程序员的曲速引擎 你听说过“按下葫芦漂起瓢”吗?前几个版本一直在修复登录和权限系统。这已经完善了。但是,一测试,简单的没有登录模块的系统反而出错了。所以,Beta8版不得

2023-08-21

置。 本案46岁的受害人房立敬(Fang Lijing)是一名程序员,由于在中国做生意遇到困难,于2020年1月14日来到越南寻找合作伙伴。2020年年中,房立敬与黄某相识。经过协商,黄某聘请房立敬为他制作在线网络游戏,作为回报

2022-11-09

了一套自动生成小学生口算题的小应用。 为了让辛苦的程序员老爹解放抄题的双手,本程序让你拥有更多的时间去写代码而不用去手写几道口算题而劳神伤脑。所以有或没有娃子的程序员老爹们一起来继续优化个开源小程序的

2024-07-11

有太多复杂的功能或特异之处。 喜欢的点在于:对于新程序员和团队成员来说,更简单的语言更容易学习和掌握。由于老程序员可以很快学会 Go 的新技巧,因此项目人员配备也更容易。不仅如此,相关代码通常也更容易阅读。

2023-01-04

Levels.fyi 网站于日前发布了一份 2022 年度程序员收入报告,基于收集的超过 150,000 份薪资申请。报告中的薪酬数据反映的是在过去一年中收集的年度薪酬总额中位数,包括工资、股票和奖金。 “就像今年年初市场迅速升温一

2023-10-25

I 时代 10月24日,由开放原子开源基金会等单位主办的1024程序员节暨“源聚一堂”开源技术沙龙(北京站)大会成功举办。 本次大会以“协同发展,生态聚合”为主题,通过建立健全协同配合长效机制,推动各方形成生态合

2023-04-02

不同之处正是在于其深度整合了 GPT-4 人工智能技术,为程序员提供了一种全新的智能化编程体验。以下是关于 NGPTLT++ 整合 GPT-4 特点的部分: 自动代码生成:借助 GPT-4 的强大生成能力,NGPTL++ 可以根据程序员的需求和描述自

2023-01-04

计团队和 Ubuntu 桌面团队正在为 Ubuntu 开发一套新的安装程序。该安装程序将会充分利用 Flutter、Curtin(旨在快速安装 Ubuntu) 和 Subiquity(Ubuntu Server 安装程序和设置工具) 等技术的优势。 之所以要开发一套全新的安装程序,这