0%

2025 年终总结

本文没有使用生成式 AI 技术。

去年,每星期一节的私教课,让我学会了许多健身的技巧。今年,为了学会自由泳,我报名了成人游泳课。

我并非没有接触过游泳。二十年前的暑假,我学习过蛙泳。那时候学得不好,二十五米的池子,游一圈回来必须要在泳池边歇一会儿。由于一些奇怪的原因,后来再也没有尝试过游泳,这么多年过去了,想必已忘得一干二净。

美国的成人游泳课程与国内不同。零基础的学员从自由泳起手,不像中国从蛙泳开始教。另外,这里没有新手保护,身体不会绑浮块,开局就是真实难度。

自由泳的动作不难,双腿打水,然后两只手臂交替前行。第一节课掌握了基本动作之后,能做到不换气前进几米。

呼吸是自由泳的难点。手臂划水的同时,轻微转动身体和头部,让嘴可以露出水面吸气。蛙泳需要把大半个头伸出水面,而自由泳的呼吸动作幅度很小。正因为这个原因,自由泳吸气的窗口变得岌岌可危。我和隔壁泳道的印度大哥始终把握不到要领,隔三差五就会呛水。

转折点发生在第五节课。我们没有从浅水区下去,而是直接去了深水区。老师告知大家,我们在浅水区会合。之后,神奇的事情发生了:所有人无一例外成功穿过了整个泳池抵达对岸。我记得自己游到后半段的时候,动作已经变形,喘不过气,但还是拼劲全力游到了另一侧。

这让我想起刚出生不久的雏鸟被父母丢下悬崖,学会飞翔的故事【注释1】。没想到老师用这种方式,教会了我们自由泳。


吗?


第六节课,一切又回到了最开始的模样。依然很难找到呼吸的时点。

这门课程没有期末考试。最后一节课,老师允许大家自由活动。一些学生游得像模像样,但我却属于另一些学生。正当我怀疑这门课程毫无价值的时候,二十年前关于蛙泳的肌肉记忆从虚空涌入了神经。尽管老师没有讲解任何关于蛙泳的内容,但我确信自己比二十年前游得更好。这是因为,与自由泳相比,蛙泳实在是太简单了!

注释1:在现实世界中,藤壶鹅的父母并不会主动把雏鸟扔下山崖,但是不跳下来的雏鸟会饿死。


同样与肌肉记忆相关的事情,还有驾驶汽车。2025 年,我在法国和新西兰尝试了自驾游,它们各自有着独特的体验。

七月,我们追随普罗旺斯的薰衣草,在法国南部探访了诸多秘境。

岩石城 - Gordes

跳水者 - Antibes

南法对自驾游非常友好。高速公路限速 130(约 80 英里每小时)。因为道路太平整,路面上连小石子都没有,所以实际平均车速可达 150。从马赛出发到尼斯,只需要两小时,非常方便。

大家不怕超速,是因为在摄像头的一公里外,会设置『前方测速』的指示牌。高速路上没有警车执勤,如果没看到指示牌,那么想开多快都可以。即便不小心在摄像头下超速了,也只需要缴纳 40 欧元的罚款,差不多等于一顿饭钱。

法国完善的基建,对超速的宽容,配合动力十足的 BMW,让南法之行充满了驾驶乐趣。我个人创下了接近 190 的最高极速。不过我知道自己从未受过专业训练,车技不过是凡骨水平,所以不敢一直赖在最左侧的超车道,有机会就挪到右侧。

开始新西兰的自驾之旅前,我的内心充满了忐忑。在道路左侧开车,真的能适应么?要知道,左行有许多反直觉的东西:左转变成了小弯,右转反而要穿过对面的车道。

不过,等我的车上路之后,紧张的神经逐渐放松下来。除了容易压线让左侧的乘客不安です之外,左行没有根本性的困难。每次转弯的时候记得用一秒钟思考一下,就不会和无辜的陌生人撞个满怀。

雪山 - Lake Hawea

在新西兰,判断左行新人司机的方法,除了看压线行驶外,还有一招,就是观察无意义的雨刷运动。谁曾料到,在方向盘从汽车左侧挪到右侧的同时,方向盘上的拨杆也调换了位置。由于肌肉记忆太过强烈,我每当在路口使用转向灯的时候,雨刷就不由自主地动了起来。还好汽车设计师们没有把刹车和油门也换个位置,否则从右行改成左行,会比从蛙泳切换成自由泳还难。

直到 2025 年的最后一天,Waymo 和特斯拉并未在左行国家(如英国、日本等)开展无人驾驶出租车业务。我很期待它们的表现。


2025 年无疑是 AI 全方位爆发的一年。这一年我编写的程序代码,有超过一半使用了生成式 AI 技术。在受到 AI 影响的各个领域中,编程是发展速度最快,渗透率最高的。有行业大佬发出了『编程已死』的感慨,认为程序员很快会成为自己的掘墓人。

我对这件事的看法没有那么悲观。有以下几个依据。

首先,大语言模型在训练结束后,不再具备学习的能力。你指出 AI 的错误,它会回复 "You are absolutely right!" 但在新对话中,它依旧会犯同样的错误。这意味着,它依赖于人类的监督与反馈。人类没有简单的办法避免模型重复犯错。

其次,大语言模型不擅长某些类型的编程任务。依我的观察,它擅长的任务有两类。

  • 具体明确的任务,几乎没有自由创作的空间。例如,按照要求重构一段代码,或者为某段已有的代码编写单元测试。
  • 宏观的任务,几乎没有自由创作的限制。例如,按照要求生成一个网页或者手机 APP。这时候 AI 大概率会依照前人的模版生成一个差不多能用的原型。

但是,现实生活中有很多编程任务,是介于这两者之间的。我们经常要实现一些模糊的功能,并且与这些功能有关的上下文十分复杂:有上游和下游的依赖,有历史遗留问题和技术债,有私人邮件和聊天记录中的讨论,还有只存在于员工脑海中,并随时可能失传的记忆。任何一套现有的信息系统,都无法全量记录关于一个项目的所有细节。让 AI 在缺少上下文的情况下做决定,不容易使人满意。

第三点,对于较为资深的程序员来说,编写具体的代码只是工作的一小部分。他们要花更多的精力在编程之外的事情,比如

  1. 搞清楚老板的意图,哪个项目最重要,哪个项目没那么重要,项目什么时候需要交付。
  2. 把宏观的意图拆分成具体的任务,把控总体技术方向,估算每一项具体任务需要的时间。
  3. 与上下游的其他团队对齐。
  4. 代码评审:监督同事以及 AI 的施工质量。
  5. 用户手册、监控报警、运维培训、故障处理。

这个列表中,有些事情虽然可以引入 AI 辅助,但最终还是需要人来执行。这是因为,如果出现问题,AI 无法成为那个背锅侠。

在我看来,AI 对初创公司的冲击,远大于对成熟公司的冲击。随着效率的提升,初创公司的同质化会更加严重,技术会越来越不重要。为了活下来,它们要用最快的速度卷死其他竞争者。成熟公司没有必要一味求快。构筑好自己的护城河,即便发展慢一点、效率低一点,也有生存和发展的空间。

从更大的视角来看,AI 辅助编程、文字生成图片,这些工具在大幅提高效率的同时,也催生了一种平庸的恶。如果我们可以很快得到一个可用的结果,为什么还要花额外的时间去打磨它?正像托尔金的《魔戒》一样,我们在享受 AI 力量的同时,AI 也在腐蚀我们的内心。