![]()
两周前,我谈到了软件工程的历史是如何苦苦寻求让编程变得更简单的,并最终催生了这个领域最新、最伟大的发明:AI 编程工具。不幸的是,正如上周所讨论的,用 AI 工具编程依然很难。那么,这一切对于作为一门职业的软件工程而言,究竟意味着什么?未来还会有软件工程师吗,还是说人们都能用五个简单步骤、在不懂代码的情况下造出自己的 10 万美元 SaaS?
软件工程是一个紧凑的闭环,涵盖了思考、调研、写文档、评审文档、开会、编码、评审代码、测试、调试,以及手工运维。作为一名软件工程师,我所做的 99% 的事情,都落在这几类之中。AI 工具在这些活动中的绝大部分都非常有帮助,显著缩短了所需的时间。说真的,它唯一帮不上大忙的,就是思考,以及写出优质、原创的文档(当然,指的是我自己写的那些)。换句话说,AI 工具通过压缩我工作中大多数环节所需的时间,让我更高效、更有成效。现在的问题是:我们要拿省下来的时间做什么?
一个可能的答案是:“什么都不做”;如果现在三个人就能干完我们不久前还需要五个人才干完的活,那我们就干脆裁掉两个人,保持产出不变。这毫无疑问是很多人所认为将会发生的事,而一些CEO也推波助澜,把近期的裁员归因为 AI 是主要驱动力。
另一个可能的答案是:“我们干脆多写点软件!”
我所认识的每一个组织,都有一份他们想做之事的优先级清单,以及一条“红线”,标出了他们最想做、却没能去做的那件最重要的事。如果 AI 工具让现有的软件工程师更具生产力,那条红线就可能前移,那些我们此前因为没有人力而搁置的事情,现在或许突然变得可行了。比如,我很确定地知道,政府手里压着一堆遗留软件,他们一直想用 Java 重写——也许现在他们能做到了……
那么,究竟是哪一种?是用更少的人做同样多的软件,还是用同样多的人做更多的软件?
答案当然是:但不会同时、也不会在同一地点发生。
“等等,你说什么?”,我都能听到你在想,“这怎么可能?”。而这又会对软件工程的价格(换句话说:对软件工程师的薪水)产生什么影响?要回答这个问题,我们得先看看市场上的其他一些趋势,因为——除了当前的美国政府之外——没有什么是活在真空里的。
经常让我感到惊讶的一件事是:如今优秀的软件工程师竟有这么多。我经常会读到文笔极佳的文章,或看到绝佳的软件作品,作者竟是我此前闻所未闻的人。当我在 1984 年开始学习计算机科学时,我们这一行的人还不多;当我加入荷兰 Unix 用户组(NLUUG)时,我几乎可以自信地说,全国跑 Unix 计算机的人,我差不多都认识。从那以后,数以百万计的人投身计算机科学;而既然智力是呈分布的,他们当中有相当多的人要么才华横溢,要么至少非常、非常聪明。显然,现在全球大约有 4700 万软件工程师,这差不多是 2018 年以来的翻倍。请稍作思考:在过去的八年里,软件工程师的数量翻了一番。这些人都去干了些什么?
在软件工程的历史上,我们一直都面临软件工程师的短缺,而短缺通常意味着价格上涨(你好,对伊朗的战争)。令这个领域所有人欣喜的是,软件工程(直到最近)提供了最高的整体收入潜力和职业天花板,收入超过了像土木或机械工程这样的传统工程领域。事实上,纵观整个就业市场,只有顶尖医学专家、金融高管,以及顶级法律和商业专业人士,才比收入最高的软件工程师赚得更多。
一种商品或服务的价格高,通常意味着你会消费得更少,而究竟少多少,则受一个叫“价格弹性”的概念影响。如今所有重大的商业活动都需要软件支撑,所以每一家试图开拓独特市场的公司和初创企业,都不得不雇佣软件工程师。鉴于合格软件工程师的短缺,价格一路上涨,各公司不得不相互竞价来争夺人才。
一段简短的历史课:在荷兰,经济的很多行业都受集体劳动协议的约束,这些协议由雇主工会与雇员工会谈判达成。如果政府认为一份近期谈成的协议不错(通常确实如此),劳工部长就会宣布这些协议对整个行业具有约束力;即便对于那些并非谈判方工会成员的雇主和雇员也不例外。大多数协议里都包含工资等级表,其制定方式通常是:教育和经验大致相同的人,拿大致相同的薪水。
我的第一份工作是在一家银行,我的劳动合同就受这样一份集体劳动协议管辖。银行当时很难招到 IT 人才,因为他们付给软件工程师的薪水,不能超过拥有类似学位和经验的会计师。为了解决这个问题,银行雇主在协议里谈判加入了一项条款:对于某些紧缺专业,他们可以支付一笔“劳动力市场附加费”,否则他们将永远再也招不到软件工程师。
对于软件和互联网公司而言,软件工程师及相关 IT 人才的可得性至关重要,以至于一场真正的“人才争夺战”就此打响。2006 年我入职 Google 时,公司让我明白:我对公司最关键的价值,在于雇佣其他人。于是,我们雇了能找到的每一个人(只要他们越过了招聘门槛),在任何能找到他们的地方。我当时在苏黎世的 Google 工作,那里确实可爱又精彩,但我也清楚地知道,那个办公室存在的唯一理由,是充当在欧洲的人才招聘桥头堡——去雇佣那些无法或不愿搬到美国的人才。
作为经理,我经常会收到一份“H-1b 失意者”的电子表格,上面是那些我们已录用、想搬到美国、却没能拿到 H-1b 签证的人(因为名额有限,还要抽签)。我们会转而给他们苏黎世的职位,并告诉他们,满一年、符合 L-1 签证(公司内部调动)资格后,就可以搬去美国。
其中有些人后来确实去了,但也有些人回过神来,留在了苏黎世。
我们会雇那些没有编制计划、也不清楚他们将具体做什么的人。他们一旦接受 offer,简历和面试材料就会进入分配会议,经理们在会上竞相为自己的团队挑选人才。在 Facebook,新人会先进入一个“训练营”,学习 Facebook 的内部技术与开发环境。那个训练营的一部分是“团队选择”,经理们会介绍自己的团队,试图把稀缺的人才吸引到自己的团队。关于大厂高薪的新闻比比皆是,难怪许多年轻人决定去读计算机科学,从而导致了前面所说的 2018 到 2026 年软件工程师数量的翻倍。
显然,这样的好日子总归要在某个节点戛然而止。很多科技公司过度招聘,并把业务拓展到了许多商业上并不怎么说得通的领域。非大厂的科技公司则不得不支付虚高的薪水,去雇佣“剩下的人里最优秀的”。很多公司根本招不到人,只能将就。一场清算迟早要来——猜怎么着,它来了!从 2022 年开始、并在 2023 年加速,科技公司开始以千为单位裁员,把大量能干、却大多已习惯于优厚待遇的软件工程师,洪流般涌入就业市场。在我“主场”苏黎世,裁员冲击尤为剧烈,因为——尽管瑞士本身很美好——在优质科技就业方面,Google 几乎就是当地唯一的选择;而苏黎世 Google 的任职体验之所以一直极佳,原因很简单:根本没有别处可去。
话虽如此,我很高兴地报告:自那以后,大概也受惠于科技人才的充裕,苏黎世如今已经有了一个虽小、却蓬勃发展(就我所见质量也很高)的初创生态。
经济学告诉我们:当供给相对需求增长时,价格就会下跌——而这正是正在发生的事。其中一些是公开的(直接开出更低的薪水),另一些则是隐蔽的(以录用时降级(downleveling)的形式出现)。这种价格效应还没剧烈到让体面社会分崩离析,但下行趋势一目了然。有人挪了窝,有人另谋高就,有人提前退休,也有人接受了薪水更低的职位。
AI 工具,正是在这样的市场中登场的……
突然之间,我们有了一项能让软件工程师更高效的技术,而此时市场上看似已经有足够多的软件工程师了。这让许多人理所当然地感到非常不安,因为相当多从 2018 年前后入行的人,积累了大量尚未还清的助学贷款——因为他们搭乘这趟顺风车的时间还不够长。对现在正攻读计算机科学的年轻人而言,境况更糟,因为他们毕业时,正赶上市场经历一场巨大的重塑:既有大量竞争,又多了一套影响尚未可知的全新工具链(尽管我们可以颇有把握地说:它对所需软件工程师的数量,不会是正面影响)。
那么,综观这一切,软件工程的未来是什么?
首先,AI 编程工具不会让软件工程师变得多余。正如我上周所论,用 AI 工具编程依然很难,所以我们仍会继续需要那些擅长用计算机解决问题的人。但是——关键就在这里——这些人中的大多数,大概会是更“资深”的那一类,他们深谙如何借助 AI 编程工具,构建复杂且能跑起来的软件。对更初级人才的需求可能会下降,因为他们过去常做的许多事,如今资深工程师在 AI 编程工具的帮助下就能高效地完成。事实上,我那些做招聘的朋友告诉我,这已经在发生了;拥有 AI 专长的资深人才(就目前这点存量而言)的就业市场,相当健康。连 AI 前沿实验室都不相信 AI 编程工具会彻底取代软件工程师——证据就是,Anthropic 和 OpenAI(我自己的雇主)都还在招聘软件工程师。不过,我们并不招应届生或行业经验有限的人,这或许能让你窥见我们认为行业将走向何方。
这当然引出一个问题:如果更少的公司在招初级工程师,新的资深工程师从哪里成长起来?好问题,而我暂时还没有答案。眼下我假设,所有人都认为那是“别人的问题”
顺便说一句,倒也不是说这些初级工程师会无所事事。他们中的许多人已经有了工作,会在其中积累经验,并最终变得更资深。AI 编程工具热潮或许能修正的一件事,是职级通胀——即应届生一入职就被冠以“资深工程师”之名,而拥有五年经验的人则“要求”晋升到 Staff 级别。对比一下建筑行业:你通常需要 10 到 15 年经验,才能成为“资深”。
对软件工程师有利的一点是,AI 本身代表着“盘子的扩张”(关于这个概念的解释,见上周的文章),意思是 AI 本身会导致更多软件被写出来——因为说真的,那些人工智能客服代表可不会自己把自己写出来!
所有这些事情都在同时发生:一些公司仍在裁员,一些公司仍在招人(但招的可能更少、也不同),一些公司因为供给充裕而突然雇得起人了,一些人会离开这个行业,而最底层——那些仅仅因为此前“只要有口气的人都能被雇”才拥有工作的人——会掉出去,他们得去找别的事做。
我知道这听起来很糟糕、很残酷,但不幸的是,这就是现实。
我们能从华尔街学到的一点是:无论市场涨跌,永远都有钱可赚。这是一个剧烈变革的时代,局势很可能要再过好几年才能重新稳定下来。对于忧心忡忡的人,我想说:这是我亲身经历的第四次某种意义上的危机了,而每一次,都有人告诉我这回情况要不一样了。他们是对的,情况确实总会变得不一样(提示:向来如此),但随着时间的推移,我总能骑上任何一朵该骑的浪。不是因为我聪明,而非常简单,是因为我持续地投资自己的知识和技能。如果你今天是名软件工程师,却还没在摆弄运行自己的模型、写自己的智能体,那你就是在极大地亏待自己。
我认为真正不同的是:曾经严重短缺软件工程师的时代,或许已经离我们而去。软件工程很难,所以我认为体面的钱永远有得赚,但一个应届生就能拿到每年 20 万美元外加优厚股权包的时代,或许已经过去了。顶尖的工科学生大概率依然会过得很好,就像顶尖法学院、顶尖医学院的学生(住院医之后)一样;但一张来自<在此插入你最爱的派对学校>的计算机科学学位,恐怕不再够用了。
这本身我并不觉得有问题。2010 到 2020 年软件工程师的严重短缺,以及随之而来的价格上涨,在历史上是反常的。2006 年我在苏黎世入职 Google 时,已经拥有 18 年经验,公司给我开出的薪水是 17.5 万美元(折算成 2026 年的币值,考虑到通胀和美元/瑞郎汇率,大致如此),外加一份 modest 的股权包。Levels.fyi告诉我,如今苏黎世一个应届 SWE 拿的就是这个数。这没什么不好,但它确实显示了一轮显著的价格上涨;而我认为,我们将看到这些价格(最好不过是)趋于稳定,甚至或许还会小幅回落。
最后,我不得不说点什么,关于那些过度亢奋的报道:非程序员现在要用 AI 编程工具来开发自己的应用了?那不会侵蚀对软件工程师的需求吗?经验丰富的软件工程师,难道不会被拿着 Codex 的商科生直接取代?
答案:不会。
诚然,借助今天的工具,你可以在不太懂编程的情况下,做出相当像样的小型应用。举个例子,我“编码”出了“Chordcraft”(一个展示如何在钢琴上弹出某些和弦的应用),用的是 Codex,没有任何技术介入。但我确实认为,这就差不多到头了,因为任何更复杂的东西,都需要理解计算机是如何运作的。这有点像在说:“乐高机械组(Technic Lego)”的普及,会降低对制造卡车和飞机的机械工程师的需求。我认为,非工程师(将)创造出的大多数应用,都是那些如果没有 AI 编程工具、人们本来也就干脆不做的东西。即便它真有可衡量的影响,那影响也很小,而且发生在就业金字塔的最底层(一个我认为没几位 Wednesday Wisdom 读者把职业安身之处放在那里的位置)。
原文链接:软件工程的一个可能未来 - 汇智网
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.