MoreRSS

site iconRamsay Leung修改

软件工程师,蚂蚁金服 - 微信 - AWS,使用Emacs 与Linux 
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Ramsay Leung的 RSS 预览

理想主义者眼里的光

2026-06-07 05:30:00

1 前言

刚刚一口气看完了 JetBrains 对 Zig 作者 Andrew Kelley 长达一个多小时的访谈 Zig 2026 1,最打动我的,是 Andrew 谈及自己项目时眼里的光和发自内心,从嘴角溢出的笑容。

做自己喜欢的东西,眼里真的会有光的

2 Zig

最近 Zig 和 JetBrains 都有点处于舆论风口浪尖的样子, 鉴于不是所有的读者都有技术背景,先来介绍一下 Zig 和 JetBrains。

JetBrains 是一家成立于捷克、举世闻名的软件开发公司,专注程序开发工具,主要是IDE的开发,他们家的 IntelliJ IDEA 可以是Java程序员不可或缺的开发工具,甚至 Google 的 Android IDE也是基于 IntelliJ IDEA 二次开发的。

但是近些年来说 JetBrains 有点式微,据说一来是因为俄乌战争的原因,他们被迫与大量优秀的俄罗斯工程师中断合作,导致无法保证人手进行功能迭代;二来是在 AI Agent 的冲击下, 很多开发者已经没有使用IDE的必要了,而他们因为人手短缺又无法跟上 AI Agent 的开发,导致进一步落后,已经不再像以前那样被开发者所追捧。

Zig 是一种底层的程序开发语言,可以理解成 C语言的现代版本,而 Zig 的目标就是要替代C,成为更好的C。有技术背景的读者应该知道 C 在软件领域的影响力,C可以说是一切的基石,所以 Zig 的目标不可谓不宏大。

而 Zig 刚因两件事又出圈了,一个他们在官方博客宣布,代码托管平台要从 GitHub 迁移到非营利组织的 Codeberg, 因为他们抱怨 GitHub 太多 bug了, GitHub 的工程师又一直专注搞AI,连平台的基础能力都搞不好,整天崩溃(现在GitHub的可用性着实不行,每个月都崩个几回)。

另外一个事是,前段时间,使用 Zig 编写的 Javascript 运行时项目 Bun 被当红 AI 炸子鸡,下一个万亿巨头 Anthropic 收购了,因为 Anthropic当前最赚钱的产品 Claude Code 就是基于 Bun 编写的。

有趣的是 Zig 有一条明确的 AI 准则,就是不接受 AI 写的代码或者问题,Andrew 的原话是,AI写的代码就是垃圾,浪费时间来 Review, 但用 Zig 写的最知名的应用 Bun 又被最火的AI公司 Anthropic 所收购。

可能正因为 Anthropic 无法对 Zig 这个语言施加影响力,所以他们在3周前, 在自家AI的帮助下,用 Rust 把 Bun 重写,以取代 Zig, 这个 Rewrite Bun in Rust 的 Pull Request 仅新增了1百万行代码而已:

3 理想主义者

为什么说 Andrew 是个理想主义者呢?

因为他的目标太宏大了,他觉得现在的编程语言C, C++, Rust, Go 都不能满足他的诉求,所以他想写一个能满足自己的要求的编程语言,并且可以取代掉 C。

这个事情实在是太难了,因为 C, C++ 都已经成为行业标准近40年了,而像这些10来年冒起的编程语言: Go, Swift, Rust, Go 背后的是巨头 Google, Swift 背后的是另外一个巨头 Apple, Rust 背后也有 Mozilla 这个爹.

Zig 真的是开局什么都没有,连个能讨饭的碗都没有.

目标非常宏大,吹牛,说大话谁不会呢,但是难的是像 Andrew 一样为了自己喜欢的东西持续做了超过十年。

Zig 目前是由 Zig Software Foundation 这个非营利组织所托管,而这个非营利组织给 Andrew 开的年薪是15.4 万美金,这个薪水看起来不低,但就 Andrew 在编程语言和编译器方面的造诣,如果他愿意去大厂的话, 可以轻松翻2到3倍,甚至更多。

或者如果他对 Anthropic 妥协,Zig 甚至会推广得更好。

但是 Andrew 对此的原话是:

I’m comfy, I don’t need more (我现在很舒服,不需要更多了)

对更好的物质条件说不,坚持做自己想做的事情,或者我不应该说「坚持」,因为知足常乐,做自己喜欢的事,并不需要「坚持」。

而 Andrew 这种理想主义气质也一以贯之地影响了他对软件工程和开发的看法,他想写「不妥协」的代码(The bar that I want to hold software to is uncompromising perfection),而工程师应该清晰地知道自己在想的是什么。

就在这种信念的驱使下,Andrew 拒绝了AI贡献的代码,因为他认为提交PR的人并不知道代码到底在做什么,而只是简单地把AI返回的结果粘贴上来而已。

4 眼里的光

对于Zig 我之前也有所了解,对于 Zig 和 Andrew 宏大的目标,也想泼盘冷水,但是对于理想主义者来说,最不缺的就是泼冷水的人了,也就多我一个不多。

在各种AI冲击,取代软件开发的氛围烘托的当下, 看完整个访谈,真的很难不被 Andrew 开心的笑容所打动,看他分享着自己喜欢做的事情,让我这种满身「班味」的人也忍不住由衷地为他开心。

当主持人问道,对工作感到倦怠的开发者,有什么建议时?

Andrew 笑着回答到要好好运动,好好睡觉, 如果你在一家没有生气的公司工作,那就不要再尝试努力,准点下班回家。

他还分享起工作之外的趣事,自己跑的唯一一次马拉松,当他跑了21英里时候,实在跑不动,就开始走了,然后被旁边一个大爷超过, 这大爷肯定超过70岁了,他就问自己:「你怎么这样啊?」

但是他就还装死,继续走。

他自己说完,笑得不行了,我看到这里,也笑出声来了。

看完访谈,我回想起上周和朋友去科学馆的经历,把里面的各种科学设备都玩了个遍,还听了一堂科学课,周围的小朋友都非常踊跃地上台参与。

在课程结束后,课堂上左边的结束语是: THE WORLD NEEDS MORE NERDS(世界需要更多的‘书呆子’)

右边,刚好是一位希望成为计算机科学家的9岁小女孩

这个世界还是需要更多眼里有光的人的。

AI来了,人类更要多读书

2026-05-05 13:00:00

1 前言

距离我写的《杂谈AI取代程序员》已经过去一年半, 再分享一下我对AI的个人感悟。

先说下我自己AI的使用和熟悉程度,我司的风格是做淘金热里卖铲子的人, 而我自己从2024年就在 S3 参与AI相关功能的开发,主要是做面向AI的海量训练数据存储,现在 Anthropic 也在用我们组的产品。

工作中,我们可以使用的是 Anthropic 部署在 AWS 上的最新模型(当前是 Opus 4.7),量大且绝对管够; 而工作之外我也订阅了Google的 Gemini Pro 以及 ChatGPT 的 Business Plan, 可以说御三家的模型我都尝到饱。

2 思考快与慢

当我和朋友聊起AI的时候,他说他已经用了几个月的 Claude Code, 现在 Claude Code 写出来的代码他已经不想看了;不过好几次 Claude 搞不出来的功能,只能自己下手写 design 教它怎么搞;但是代码的确已经不想看了,更何况自己动手写代码。

其实这种现象在日常生活中也很常见,短视频看多了之后就无法看长视频;电影解说看多了之后也没法完整看完一部电影; 读书视频看多了之后,也不会真的去读一本书了,甚至一篇长文都看不下来。

有一本著名的心理学的书叫《思考,快与慢》,作者就把人类的思维归纳为两个思考模式:

系统一快速、直觉且情绪化,系统二较慢、较具计划性且更仰赖逻辑。

但系统一也很容易上当,它固守「眼见即为事实」的原则,任由损失厌恶和乐观偏见之类的错觉引导我们作出错误的选择。 有意识的系统二通过调动注意力来分析和解决问题,并作出决定,它比较慢,不容易出错,但它很懒惰,经常走捷径, 直接采纳系统一的直觉型判断结果。

用多了系统一,就很难激活系统二. 而这个是人类进化的结果,目的是为了节能,减少能量的摄入.

AI编程工具正是典型的系统一放大器——它快速给出答案,让人跳过思考过程。久而久之,我发现自己也变得越来越懒得激活系统二了。

这不禁又让我想起我用AI编程的心态转变。

3 心态几经反转

从网页版本的 ChatGPT 一路用过来,到现在的 Claude Code/Codex, 我对AI编程的心态可以说是几经反转。

Claude Code 这样的 coding agent 可以在输入 prompt 之后,独立生成代码,编译,测试,基本提供一个需求就能独立完成,开头可以说是惊艳。

但是后面我发现生成出来的代码会有过多的冗余,不必要的奇怪逻辑,此外它比较擅长从0生成代码,在已有代码上做修改就很麻烦。

要让减少它生成屎山代码,就需要我来介入 review 把控。

问题在于,让它来生成代码,我来review,我就需要理解它的思路,并且搞懂它的意图; 而当我自己写代码时,思考过程都是在我脑子里面的,就省去了理解意图的步骤,自己写反而会比 review 它的代码来得更快。

如果完全由它自己发挥,只要不到10个需求,我们的代码库就会面目全非,服务炸了还需要我来给它擦屁股, 我也能理解为什么有人说,有了AI反而更累了。

我不是说Agent不好用,有些地方用 Coding Agent 来完成非常顺手:

  1. Debug: 我提供日志,错误信息以及大概的思路,然后让AI顺着我的思路来搜索代码库。 AI在搜索关键代码方面非常有帮助,毕竟它就擅长搜索,尤其是搜索我不熟悉的第三方库或者是其他团队的内部代码,一般几分钟就能把 bug 找出来;而 bugfix 只需要几行的代码;此外,搜索是个只读操作,AI并不会产生屎山代码。
  2. review 代码:我来review AI 生成的代码很费劲,但是反过来,让AI来review我的代码,就非常简单和有效; 因为我对自己实现的代码心中有数,所以我一眼就能知道AI的评论是否有道理; 并且人写的代码,变更行数有限,上下文很小,便于发挥AI的特长.
  3. 生成验证功能的代码片段:比如要验证某些想法是否可行时,我就会直接让AI来生成代码,反正对质量没有要求。

3.1 矛盾:不懂代码,又如何"vibe coding"

这就有个矛盾的点,如果我不能比AI更懂编程,我又怎么能指导它,写出更贴切的提示词呢?说好的不懂编程也能 vibe coding呢?

我能控制 coding agent 构建出我想象中的应用,但是我不能用它构建出我无法想象的东西,我的想象力和经验其实就是我手中 agent 的上限。

那么,有了AI还要不要读书?

我总会想起《冰与火之歌》: 一同前往绝境长城的路上,雪诺问小恶魔为什么总是在看书,小恶魔答道:

“我的腿太短,头却太大,总算这脑袋对我还算合适,凭着它我很清楚自己能干什么、不能干什么,它就是我的武器。

老哥有他的宝剑,劳勃国王有他的战锤,我则有我的脑袋瓜……

不过人若要保持思路清晰锐利,就得多读书,就好像宝剑需要磨刀石一样。”

提利昂轻敲书皮,“琼恩·雪诺,这就是为什么我读个不停啰。”

多读书才让自己静下心来学习新的知识,而不是固守在过往的知识,反而对 coding agent 产生越来越强的依赖。

4 后话

书读得足够多,脑子里面有相当的知识量之后,又要怎么去尽量调到系统二来分析和解决问题的呢?

我的做法就是发现 coding agent 出错之后,就去骂它。

因为我发现,在骂它的时候,我脑子就会自动搜索读过的书,寻找相应的论据,让我骂得有理有据, 既趁机触发了系统二,也运用到我读来的知识,还在内心里强化了不能尽信AI的观点, “trust but verify”, 可谓是一箭三雕。

当然,这纯属一种自我训练的小伎俩,和老板骂员工的管理逻辑不可同日而语(难怪老板喜欢骂员工), 不过,倒让我理解了为什么批评有时也能激发思考。

《切尔诺贝利的午夜》

2026-05-04 04:27:00

1 前言

提起切尔诺贝利,首先映入脑海的是我在2019年看完、后来反复观看过很多次的HBO高分剧集《切尔诺贝利》。

只是这部豆瓣9.6分的剧集已经在豆瓣消失。

我一直有听播客的习惯,可以利用做饭或跑步时耳朵空闲的时间。我这段时间听的播客是《蜜獾吃书》, 第4期介绍的是亚当·希金博特姆的《切尔诺贝利的午夜》。

作者花了十余年,采访数百人,翻解密档案,试图剥开几十年的阴谋论,还原事故的真相。

这两个月,我趁着空闲时间把这本书读完,将内容与HBO剧集相互对照,心中萦绕着一股奇异的熟悉之感。

2 史上最严重的核事故

切尔诺贝利事故发生在1986年4月26日,是历史上最严重的核灾难。它释放的辐射剂量是广岛原子弹的400倍以上,数十万人撤离。

工业上有个海因里希法则:每一起严重事故背后,必有29次轻微事故和300起隐患。切尔诺贝利正是如此。

它的根源,早在反应堆还在图纸上时就已经埋下。

2.1 设计缺陷

制造原子弹比建造核电站容易得多:炸弹是一次性用品,而电站需要稳定、持续的能源输出,控制机制复杂得多。

切尔诺贝利使用的RBMK反应堆存在三个致命设计缺陷:

  1. 为追求功率牺牲安全:为了与化石燃料电站竞争,反应堆被设计成最大化电力输出,但在运行周期末期会变得极不可控。
  2. 体型过大难以监测:反应堆分成1600个压力管,各区域反应性关联松散,工程师只能凭“经验和直觉”估测堆芯状态。
  3. 紧急停堆按钮形同虚设:控制棒完全插入需要18-21秒(刹车延迟)。更危险的是,控制棒尖端由石墨(促进反应的材料)制成,导致按下紧急按钮的瞬间反而会加剧反应——相当于踩刹车后先加速。

这些缺陷叠加在一起,为后来的灾难埋下了伏笔。

2.2 体制缺陷

维克托·布留哈诺夫被任命为此全球之最的巨型核电站的厂长,并需要在一片沼泽地上将其从无到有建立起来,同时还要建造一座附属的城市。

在一与世隔绝的沼泽地中建造4座核反应堆和一整座城市的16年里,维克托·布留哈诺夫慢慢学会了面对官僚系统里的现实。

遭到反复敲打,不断屈从于上级意志,昔日博学强记、直率坦诚的年轻专家已经变成了党政大员们听话的工具。布留哈诺夫学会了如何敷衍塞责、应付了事,从而以有限资源满足那些根本不切实际的目标。

莫斯科的能源部得知核电厂涡轮机大厅的屋顶居然是用极其易燃的沥青铺成的时候,他们命令他立刻返工。 然而,为这座50米宽、近1000米长的建筑物重铺屋顶所需的特殊防火材料,在苏联境内根本造不出来, 于是能源部只好特许他不按规章办事,沥青便留在了那里。

当该地区的党委书记指示他在普里皮亚季建造一个符合奥运会比赛规格的游泳池时,布留哈诺夫曾试着拒绝:这类设施通常只会建造在人口超过100万的苏联城市中。但当书记坚持说“要你建就建”时,布留哈诺夫只好服从。他虚报城市预算,骗过了国家银行,挤出了这笔建造费用。

此外,眼看着切尔诺贝利电厂的第四座、也是功率最高的一座反应堆即将完工,相当耗时的对机组涡轮发电机的安全测试工作却还未完成。 布留哈诺夫静悄悄地推迟了这项工作,从而可以在莫斯科下达的最后期限前正式竣工。

而正是这项被推迟的安全测试工作,叠加反应堆本身的设计缺陷,直接导致了4号反应堆发生爆炸。

2.3 事故处理

爆炸发生后,布留哈诺夫拒绝相信下属提供的数据,试图拖延。克格勃切断了城市的所有电话线,封锁了普里皮亚季,却未向市民发出任何警告。

应急委员会甚至起草了修复反应堆并重新发电的方案,尽管这显然不可能。当瑞典检测到辐射尘并询问苏联时,苏联当局矢口否认。

直到4月28日,事故发生后近三天,莫斯科广播电台才播出简短声明,称「一座原子反应堆遭到破坏」,但未提及事故发生时间。克格勃同时采取措施限制外国记者收集信息。

后续行动(时间线简列):

  • 4月28日:疏散半径10公里居民,首次电视公布事故。
  • 4月29日:撤离30公里内全部居民,共13.5万人。
  • 5月2日:三名志愿者冒死打开排水闸门,排出2万吨高放废水,避免了二次爆炸。
  • 5月4日:向地下注入液氮,防止熔融物污染地下水。
  • 至12月:建成「石棺」封闭四号反应堆。总计60万苏联人参与抢险。

3 有感

读完全书,可以清晰地感受到苏联人在切尔诺贝利事前、事中、事后的表现,清楚地展示出这个庞然大物是如何系统性失灵的。

而事后动员近六十万人,集中力量办大事地处理核事故,又清晰地展示了其为何有能力与美国同为世界唯二的两个超级大国,尤其是在短短5个月的时间内完成「石棺」这一堪称世界上最有难度的工程建设。

读完之后,我无意去评判苏联失能的系统,只是书中苏联官方的各种处理方案,都会给我一种难以名状的熟悉之感,毕竟「以俄为师」。

另外一个对我感触很深的人是厂长布留哈诺夫。他用了16年时间从零建起了这座城市和当时世界上最大的核电站,可谓是居功至伟;

而在审判中,他也没有为自己做任何辩护。在质证过程中,同为被告的另一个人问他,有没有文件证据表明这座核电厂曾被划为「易爆炸」设施。

布留哈诺夫小心翼翼地表示了异议:「这个问题的答案在调查材料中提供了。」

布留哈诺夫依然是塑造了他的那个体制的产物。他很明白,自己被期待在被告席上扮演怎样的角色,他选择了「为国背锅」。

不知为何,我总觉得我能共情布留哈诺夫。

当上级给你定下了不可能完成的任务目标时,作为下属,你能怎么办?

显而易见地有两种选择:

选择一:直接告知上级任务是不可能完成的,然后等待上级的批评处分。上级不关注实现难度,你做不到,上级就换人,总有人愿意接的。

选择二:既然任务是不可能按质按量完成的,换谁来都一样。那些能承诺完成的人,只不过是选择减质减量完成而已,我也可以如此做。 完成之后我得到的是嘉奖而不是处分,存在问题的成果总比没有成果来得好;后面出了问题再修吧。

看着年轻的布留哈诺夫,

我想说的是,没有哪个直率坦诚的年轻人,是一下子变成老油条的。

迄今所见最扎实的AI落地实践: Reddit的AI翻译

2026-01-06 14:18:00

1 全民AI热潮

自OpenAI 发布 ChatGPT 以来,国内外都掀起了大干快上AI的各种项目,这两年真的是各种网站/应用都追求落地AI.

音乐软件有AI, 比如QQ音乐 搞AI编曲 1, Spotify 搞AI歌单 2; 编程问答网站 Stackoverflow搞 AI 问答 3, 浏览器搞AI(Firefox, Chrome 4), 笔记软件如 Notion 搞 AI workflow 5; 代码托管网站 GitHub 搞AI 编程和代码Review, 甚至最离谱的是连电子书管理软件(Calibre)也搞AI, 增加了一个 “Asking AI6的功能,真的是全民「炼」AI.


原来还有更离谱的,雷蛇发布了桌面全息AI助手 7,承诺只帮助,不BB。

你做得好用就还好,但是一堆的网站或者应用就硬堆AI,所谓的AI功能无非是加个AI 对话框,让你可以打开聊天框和AI 对话,但是连当前网页的内容都没有当作上下文喂给AI, 体验非常差。

2 Reddit 的AI翻译

今天看到一篇文章 8, 说 Reddit 在英国超过 TikTok 成为访问量第四大的社媒平台,过去两年英国用户人数增长了 88%,三分之二的英国网民会访问 Reddit,而 2023 年仅是三分之一。而18-24 岁英国用户中 Reddit 是访问量第六大的网站,而一年前这一数字是第十。

不熟悉 Reddit 的朋友可以把 Reddit 理解成海外版本的「贴吧」.

Reddit 的崛起背后的因素包括了 Google 调整了算法增加了论坛类内容的权重,而 Reddit 就是论坛形式的社媒。在 AI 时代,用户也越来越多的转向人工撰写的内容,Reddit 也受益于这一趋势。

这篇文章让我想起最近Reddit 做的新功能,Reddit 利用大语言模型,为其海量帖子生成了多种语言的翻译版本,比如把英文帖子翻译成了中文, 韩文,日文等等。

然后我用中文在Google 搜索的时候,Google 搜索结果中就会展示原帖子的翻译版本,当我点击搜索结果时,就会跳转到Reddit 翻译后的中文版本:

我可以直接阅读翻译后的版本:

又或者点击「Show Original」阅读原版。

3 天才产品设计

初看之下似乎平平无奇,细品之下真的是拍案叫绝,我愿称之为「迄今所见最扎实的AI落地实践」

3.1 Reddit 角度

首先这个功能让更多用户阅读不同语言的帖子,比如中文,日文用户可以阅读原文是英语,法语,西班牙语的帖子,大大增加了Reddit 帖子的普适性,语言不再是个障碍,可以为Reddit 在AI时代增加用户流量,为新用户引流。

更多的用户就意味着更多的内容,更丰富的内容就能吸引来更多的用户,在AI时代, 内容就是「炼」AI大模型的原材料,光有英伟达的显卡,没有原材料,肯定没法炼出AI。

对比谷歌翻译这样的外置的翻译软件,这个是实时、无缝的页面级翻译,翻译质量相当高,其翻译质量之高、 与页面整合之自然,初用时甚至令人难以察觉这是机器翻译的产物。

用户体验非常好,其自然和实用的特点,完美解决了非母语用户访问高质量 UGC 的核心痛点。

更关键的是,作为用户,我完全没有意识到「AI」的存在。

我是在切换到工程师的视角之后,我才意识到 Reddit 使用大模型把帖子给翻译了,然后让谷歌的搜索引擎把不同语言的版本都索引, 直接把翻译结果在谷歌的搜索结果中展示了

最好的AI特性就是让你根本意识不到AI的存在。

3.2 Google 角度

对Google 来说,因为Reddit 绝大部分的帖子都是人发的(Reddit版主大多都非常讨厌机器人或者AI 发帖,有相当多的版规说明不能使用AI生成内容,否则非常容易被禁言或者在某个子版封号), 提高论坛类内容的权重, 即可以保证搜索质量.

而索引不同语言版本的帖子又给谷歌提供了更多的高质量的搜索数据。

所以谷歌既索引了大量新鲜、高质量、多语言的人类内容,又提升了搜索结果质量,正好契合其算法调整方向

3.3 数据、模型与生态的飞轮

正是通过为用户打破语言壁垒,为谷歌丰富搜索结果,Reddit得以启动一个更宏大的正向循环

在 2024年2月, Reddit 和 谷歌 达成深化合作的协议,Reddit 允许谷歌使用它的数据训练 AI 模型, 据报道,初始合同是每年六千万美元。

在 2025年9月,传出了 Reddit 和谷歌以及 OpenAI 谈新的合同,因为他们相信他们的用户数据对于 AI 训练非常重要,所以他们想谈更好的合同。

所以这个AI翻译的设计,就是一个强强联合, 打出 1+1>3 的效果, 甚至能以此为助力和其他的大模型厂商聊合作,无论是OpenAI, 还是 Anthropic, 没有数据也练不出 AI来。

形成了一个正向循环:更多用户 -> 更多内容 -> 更好AI数据 -> 更好翻译/搜索/AI模型 -> 更多用户

这是一个对用户,对 Reddit, 对谷歌,甚至对整个AI领域都有益处的设计,甚至可以说是「四赢」

4 结语

成功的AI落地,是让技术隐形,让用户价值凸显.

比对其他「强加AI」的产品,Reddit 的翻译功能是真正将AI融入产品,而非牵强附会,它甚至都没有告诉用户,这是用AI来实现的, 不强求AI叙事。

写到这里,不禁让我想起国内最早 all in AI, 还手握搜索引擎和中国最大论坛贴吧的某公司,真的是一手王炸的牌打得稀烂。

推荐阅读

qrcode_gh_e06d750e626f_1.jpg 公号同步更新,欢迎关注👻

历史的迷雾

2026-01-05 03:57:00

1 缘起

2026 伊始,在遥远的南美洲,发生了一件事:

1月3日,美国总统特朗普称,美方已成功对委内瑞拉实施打击,抓获马杜罗及其夫人,并带离委内瑞拉。 当天稍早时,委内瑞拉首都加拉加斯传出爆炸声,随后响起防空警报。

我平时甚少在公众场合议论时政,在观点日益极化的当下,易惹纷争。既然无意探讨政治,便来聊聊历史吧。

这种「大事发生时,日子却平淡如水」的感觉,让我想起了季羡林先生在二战期间的一段经历。

历史的吊诡之处,往往就藏在这些日记的字里行间。

2 季羡林日记

2.1 留德日记

《留德日记》是国学大师季羡林先生在德国哥廷根大学苦读十余年,写下了洋洋六卷, 煌煌一百五十余万字的日记,记录了从1934—1946年在德的求学生涯。

这是1941年6月22日的日记:

⼆⼗⼆⽇

早晨⼀起来,⼥房东就说,俄德已经开⽕,这⼀着早就料到,却没想到这样快。

吃过早点,到⻋站去,会到Frau Pinks(苹可斯夫⼈)同另外⼀位德国⼈Gross(格罗斯)。

坐⽕⻋到Dransfeld(德兰斯费尔德),从那⾥步⾏到Bursfelde(布尔斯费尔德),计⼗⼆Kl.(公⾥)。

沿途景致⾮常好, 茂林流⽔ 。 Gross (格洛斯) 拉⼿⻛琴,沿路⼤唱 。

在 Bursfelde(布尔斯费尔德)休息了会,吃了午饭,原来预备坐船到 Hann Münden(明登)。但今天没有轮船,只好临时改变计划,渡过 Weser (威悉河)。

在渡船上看到年⻘的⼥孩⼦在河⾥游泳,更显出⾝躯的窈窕,令⼈消(销)魂。

过河步⾏经过Gottstreu,在Gieselwerder(吉瑟尔⻙德)⼜过河来。

⼀直经过Lippolsberg ⾛到Bodenfelde,⾛了约⼗五Kl.(公⾥)。天⽓极热,⼜在⼤毒⽇头下⾯⾛,真有点够受。

七点坐⽕⻋回G.ttingen(哥廷根)。脚上起了泡,好容易⾛到家。吃过晚饭,洗澡就睡。

「茂林流水」,「拉手风琴,沿路大唱」,「年轻的女孩子在河里游泳……令人销魂」。

这一天季先生是快乐的,甚至因为看美女游泳而「销魂」,完全没有把「俄德开火」当成一件天塌下来的事。

2.2 留德十年

数十年后,季先生已近耄耋之年,忆及往昔,遂写下一部《留德十年》,其中也有关于二战的回忆:

1941年6月22日,我早晨一起来,女房东就告诉我,德国同苏联已经开了火。 我的日记上写道:“这一着早就料到,却没想到这样快。” 这本来应该说是一件天大的事,但是德国人谁也不紧张。

原因大概是,最近几年来,几乎每年两次出现这样的事,“司空见惯浑无事"了。

我当然更不会紧张。前两天约好同德国朋友苹可斯(Pinks)和格洛斯(Gross)去郊游,照行不误。

整整一天,我们乘车坐船,几次渡过小河,在旷野绿林中,步行了几十公里,唱歌,拉手风琴,野餐,玩了个不亦乐乎, 尽欢而归,在灯火管制、街灯尽熄的情况下,在黑暗中摸索着走回了家。

无论是对我,还是对德国朋友来说,今天早晨德苏宣战的消息,给我们没有留下任何印象。

第一次世界大战爆发时,我刚三岁,什么事情都不知道。

后来读了一些关于这方面的书,看到战火蔓延之广,双方搏斗之激烈,伤亡人数之多,财产损失之重,我总想像, 这样大的大事开始时一定是惊天地,泣鬼神,上至三十三天,下达十八层地狱,无不震动,无不惊恐,才合乎情理。

现在,我竟有幸亲身经历了规模比第一次世界大战要大得多、时间要长得多、伤亡要重得多的第二次世界大战的开端。

可是万万没有想到,这一出人类历史上罕见的大戏,开端竟是这样平淡无奇。

事后追思,真颇有点失望不过瘾的感觉了。

3 身处历史中的人

所谓历史的迷雾,即使身在其中者,往往在开端时难以觉察时代的巨变.

历史是后设的,我们在教科书上看历史,看到的是明确的「节点」:1941年6月22日是苏德大战爆发日。

但在季羡林先生的笔下,那日是「茂林流水」,是手风琴与歌声,是因见少女游泳而「销魂」的漫长徒步。

女房东告知开战的消息,语气平淡;日记里的记载,也仅是一笔带过。

茨威格在《昨日的世界》中回忆一战爆发时,描绘了相似的图景:

1914年夏日,维也纳阳光明媚,咖啡馆里依旧谈笑风生,人们以为那不过是一场很快会结束的边境冲突。

从20世纪萨拉热窝的一声枪响,到21世纪某个海鲜市场出现的不明肺炎,那些日后掀起滔天巨浪的黑天鹅, 在起初的迷雾中,常常只被视为一块不起眼的小石子。

我们或许也正身处这样的雾中 : 今天的头条新闻,未来教科书上可能是一个时代的注脚,但对当下的我们而言,它可能只是短视频中的一条推送,或是茶余饭后的一声感叹。

我们如1941年哥廷根森林里的散步者,感受着「天气极热」,却听不见历史齿轮那沉重而确凿的转动声。

4 冰川的消融

一战的壕沟与二战的废墟,让战后世界艰难地学会了「制定规则」的游戏。

目的很直接:避免弱肉强食的全面冲突再次将文明拖入深渊,不要再掀牌桌,不然互扔原子弹,人类可能都要玩完。

当然,我不是暗示某大国对某南美国家的行动会引起第三次世界大战。

我想说的是,此类行动在国际法理与地缘政治上,或许已经悄然推倒了一块多米诺骨牌。

但这种崩塌并非大厦倾覆的轰然巨响,而更像是冰川的消融:每一天听起来都只有轻微的咔嚓声,直到巨大的冰架最终断裂入海。

5 结语

最后,想起某位已经被封杀歌手的歌,以此荒诞感作结:

推荐阅读

qrcode_gh_e06d750e626f_1.jpg 公号同步更新,欢迎关注👻

加国旅居纪–英语篇

2025-12-08 01:11:00

1 缘起

移居他国,语言始终是一道无法绕过的坎。

在《这些年走过的路:从广州到温哥华》一文中我曾提到,我是直接在国内通过英语面试拿到了Offer。

在此之前,我既无留学或海外工作经历,也未考过雅思、托福。

拿到Offer前,满脑子想的只是全力准备面试,「尽人事,听天命」。 真等到Offer到手,心里那根紧绷的弦松下来,对英语的不自信、对陌生环境的忐忑才后知后觉地浮现。

与未来室友聊天时,我就流露过这样的担忧:怕连雅思四个6都考不到。毕竟英语一直是自学,心里实在没底:

但转念一想,最大的难关(拿到Offer)都已跨过,车到山前必有路。一切,等落地再说。

2 应试雅思

落地加拿大后,申请身份需要,兼之公司报销考试费用,我决定报考雅思。

当时的想法是先摸底,熟悉流程,便直接预约了最近的一场考试–大约是两周之后。

心想即便考不过,反正公司也报销,正好以 deadline 作为学习动力。

白天上班,晚上回家刷雅思真题,配合着 Youtube 的备考视频,重点攻克作文和口语。

阅读和听力没什么套路,会就会,不会就不会。

一晚复习作文,一晚复习口语,交替进行。

口语练习尤为痛苦–常常觉得无话可说,难以持续讲1-2分钟。

好在 ChatGPT 已经发布了,我便让它生成口语答案,自己背诵,「熟读唐诗三百首,不会作诗也会吟」,这是小镇做题家最笨拙又最踏实的办法。

如此匆忙「准备」两周之后,直接上考场了。

听,读,写都是机试,就和国内学习熟悉的考试形式无异,而「说」才是我的重点戏,也是真正的难关。

雅思口语考试是与考官一对一面试,全程录音,时长约11-14分钟,分三部分,由浅入深:

  1. 简介与日常对话(4-5分钟):热身与自我介绍,话题轻松,只需清晰、直接作答。
  2. 个人陈述(3-4分钟):就特定话题进行1-2分钟独白。有1分钟准备时间。
  3. 双向讨论(4-5分钟):第二部分的延伸,深入讨论社会性议题,更具思辨性。

我记得第二部分话题是旅游,要求讲述一次印象深刻的旅行经历。这么大的人了,总去过一些地方,便开始结结巴巴地讲述。

第三部分,考官问我对gap year(高中毕业后休假一年再上大学)的看法。

这是我完全未曾思考过的话题,只好写议论文般列举优点:体验风土人情、增长见识、打工培养独立意识等等

我竭力想让表达条理清晰,但仍能察觉考官礼貌微笑背后略带疑惑的眼神。心里不禁一叹:看来是凉了。

成绩通常在两三周后公布,但我已不抱希望。

大约三周后的早晨,我如常在地铁上刷雅思官网,突然看到成绩更新通知。颤抖着点开,竟发现总分7分,小分分别为听7、读7、说6.5、写6.5:

近乎「裸考」竟能拿到7分,实在出乎意料。看来,我的英语并没有想象中那么差。

3 现实落差

然而,那短暂的自信很快被现实击碎——原来我的英语真的不够用。

当时入职的团队颇为「奇妙」:经理是加拿大白人,其余六名工程师全是华人。这意味着大部分时间可用普通话沟通。

一方面,这确是好事,减少了沟通障碍;另一方面,却也意味着我缺乏提升英语的迫切环境。

真正意识到自己口语听力不足,是在与美国产品经理和总监开会时。 他们常在会议前后寒暄、开玩笑,我不仅插不上话,有时连笑点都跟不上——他们用的表达和梗,与书本上的完全不同。

时隔三年,有一幕仍记忆犹新:

总监和产品经理从美国来加开会,午餐时我们在会议室吃三明治,聊起公司从允许居家办公改为强制每周至少回办公室三天的政策。

我很想参与讨论,听听本地美国人对这政策的看法:是否有人不满?会不会有人因此离职?长期影响如何?

但开口却只有一句生硬的「Will it work?」(这能行得通吗?)

没有铺垫,缺乏上下文,突兀至极。身旁的总监略显诧异地看了我一眼,随即岔开了话题。

老板当然不会直接说「行不通」,但若说「行得通」,他自己恐怕也不尽信。那一刻,尴尬得我只想离开。

不过,总算敢开口扯闲篇了。关关难过关关过。口语与听力相辅相成:听不懂就说不出,词汇不够就听不懂。

菜就多练。下班后,我又开始了英语学习。

为应对可能出现的语言困境,我从国内带了几本书,除雅思真题外,还有一本《Word Power Made Easy》:

这是我所读过最好的单词书。它不简单罗列单词,而是从词根历史出发,介绍拉丁或古希腊语源,以点带面,每节讲解若干近义词。

每天通勤途中,我听英文技术播客,既学习技术词汇表达,也锻炼听力。

阅读则多啃同事的设计文档、公司内网资料,既提升词汇量,又加深对内部系统的了解。

至于改进口语,我的方法是模仿再应用:观察经理、产品经理、总监这些母语者如何表达,然后照葫芦画瓢。

为强迫自己多开口,我给自己定了一条规矩: 不用「Yes」和「No」直接回答问题

起初因不敢多言,对于上级的询问,常脱口而出「Yes」,结果过度承诺,反坑了自己。

比如老板问:

Are you feeling confident that you could get this task done by the end of today? (你有信心今天把这活干完吗?)

若直接答「Yes」,相当于承诺今日完成。若完不成,要么默默加班,要么给老板留下言而无信的印象——无论哪种,都是坑自己。

不用「Yes/No」回答,迫使自己既表达想法,又不轻易许诺。

就这样,虽然磕绊,总算能说出口,也渐渐能听懂他们的闲聊了。

4 全英淬炼

因种种原因,我在第一个团队待了不到一年便换了组。新团队再无华人同事,彻底失去了普通话交流的「安全区」。

更「要命」的是,团队中多数同事的母语并非英语:有来自俄罗斯、巴西、土耳其、法国、希腊的成员。 各种口音混杂,英语听力难度陡增。

学习语言本无捷径,唯有多听多说。

环境虽变,方法依旧:模仿、练习。

尽管未必每句话都听懂,但同事间的交流总有上下文支撑,加之面对面可观察肢体语言和表情,连蒙带猜,也能明白八九成。

就这样,在难度加倍的副本中,慢慢摸到了门道。

以英语为母语的国家(如南非、英国、美国、加拿大)的口音,其实是最易理解的。即便常被吐槽的印度口音,熟悉后也相对好懂。

真正棘手的是部分欧洲同事的英语:发音平淡,缺乏重读,听起来格外费力。

后来因组织架构调整,我又到了新团队,接触到韩国、尼泊尔、马来西亚、埃及、越南、印尼、西班牙等地口音——欧亚非口音,几乎集齐了。

与不同母语背景的同事打交道后,自信也慢慢累积起来。

提升口语只有一条「捷径」:多练多说。不做就不会错,不错就不丢人——但也不会进步。想进步,就别怕丢脸。我母语不是英语,说错很正常,没什么大不了。

我就是抱着这样的心态与人交流的。

5 地道进阶

当我能听懂同事交谈、较流利表达想法后,便开始追求更地道的表达。

其中对我帮助最大的是两位加拿大同事:J和R。

J风趣幽默、博学多才,通晓五门语言,博士毕业,还是UBC大学的客座教授。

他对语言要求相当高,review 我的代码或文档时,常纠正语法或表达错误。

比如 schema 的复数,我写了 schemas , 他说似乎不对,应是 schemata 。后来一查,两者皆可。

另一次晨会,遇到棘手问题,经理问谁可接手。

J比经理高一级,与总监同级,开口便说:「我觉得ZhenRui能做好。」

我就很懵:怎么还点名了?

事后J私下解释:

I don’t mean to throw you under the bus, I just trust you definitely have the ability to get this task done. (我不是想让你背锅,只是相信你肯定能搞定。)

“throw you under the bus"直译是「丢到车底」,意译即「让你背锅」。

从他身上,我学到了许多地道而「奇妙」的表达。

软件开发中的「金丝雀发布」(Canary Release)策略,指将更新逐步部署给小部分用户测试,以发现问题、降低风险,就像矿工用金丝雀检测毒气。

J 将包含一堆金丝雀(canary)测试用例的目录命名为「歌剧」(opera),我 review 时不理解,他便趁机科普了一番。

英语中许多动物群体有特定且诗意的名称:

  • 一群金丝雀(canary)叫「歌剧」(opera),
  • 一群乌鸦(crow)叫「谋杀」(murder),
  • 一群鸭子(duck)可称「一阵哨声」(whistling)

中文没有完全对应的集合名词文化。

R 是在加拿大出生的华裔,身上有种我缺乏的松弛感和嬉皮士气质。

他常教我俚语,比如 fumble the bag (类似「煮熟的鸭子飞了」,特指金钱方面的损失),或 drop the ball (源自美式足球的失球,引申为「搞砸了」「掉链子」)。

用对词,才能准确传达情绪和意图。比如:

  • 微妙细致的差别:用 nuance 而非 subtle difference
  • 趣事轶闻:用 anecdote 而非 funny story
  • 非常滑稽:用 hilarious 而非 so funny
  • 反讽/阴阳怪气:用 sarcasm
  • 自欺欺人的妄想叫 delusion, 视觉的幻象叫 hallucination

R 还会帮我辨析词语的感情色彩。

一次我提起与摩门教传教士的偶遇,他就问我怎么会和他们搭上话的,我说听到外国人讲中文很新奇,就和他们聊了起来.

R问我他们是 xx 么?我没听懂这个词,然后他就换了一个词问:「他们是白人(White Man)吗?」我说是。

他随即解释: Caucasian 是中性的「白人/欧洲裔」表述,而 White Man 带贬义。同理,中性表述黑人是 African , 而非 Black Man

与他们的交流让我逐渐理解所谓的「英语思维」:不是将中文直译成英文,而是使用英语母语者的地道表达。

6 自如交流

当表达足够流利后,我已能自如应对同事的玩笑了,甚至能「阴阳怪气」起来。

前段时间,我回了一次国,回来之后,午餐吃饭的时候,在餐厅 J 就和我开起了玩笑:

  • J: ZhenRui, You know, you miss a big news when you were in China(ZhenRui, 你知道嘛,你回国的时候错过了一个大新闻)
  • Z: What’s the big news?(什么大新闻)
  • J: Justin Trudeau has a new girlfriend.(小土豆找了个新女友了)
  • Z: Justin Trudeau? The former Prime Minister? Is it the big news?(小土豆,前首相?这就是大新闻阿?)
  • J: Yes(是阿。我和他都笑起来了,我知道他又在开小土豆的玩笑)
  • Z: How old is Justin Trudeau(小土豆多大年纪了?)
  • J: At least 50, why does he look so young(至少50多了吧,怎么他看起来这么年轻)
  • Z: Because he has nothing to worry about(因为他没有啥事要操心的)
  • J: Why, What do you mean?(什么意思?)
  • Z: As a disqualified Prime Minister, what else do you need to worry about(作为个不称职的首相,你还有啥要操心的)
  • J: hahahaha
  • J: ZhenRui you should be the Prime Minister(ZhenRui, 你应该去当首相的)
  • Z: I’m not eligible to be the Prime Minster in Canada, and my father also isn’t a former Prime Minister(在加拿大,我没有资格当首相呢,另外,我爹也不是前首相(小土豆父亲皮埃尔·特鲁多是加拿大的15任首相))
  • J: hahahaha
  • Z: J, You can be the Prime Minister, you still have chance, I can’t wait to see you debate with Trump(J, 你可以当首相的,你还有机会, 我迫不及待地想看你和川普 battle 了)
  • J: me, nope, I am not corrupted(我嘛?不行的,我不够腐败)
  • Z: Don’t worry, J, as long as you become the Officer, people will help you, if you are going to do it on your own, it’s not corruption, it’s stealing.(不用担心啦,只要你变成官员, 人们都会来帮助你的, 如果你打算自己单干,那就叫偷窃,就不是腐败了)
  • J: hahahaha
  • Z: Sorry, J, I think I need to correct myself, I just realize, as a Prime Minister, you do have something to worry about(抱歉 J,我觉得我应该纠正一下的,我才意识到,作为首相,你还是要有事情要操心的)
  • J: What?(什么?)
  • Z: How to find a new girlfriend(怎么去找个新的女朋友)

餐厅充满了快活的气氛

在十多年前,《疯狂英语》还非常火的时候,李阳团队曾两次来到我的学校。

第一次是初中的时候,李阳亲临我们的学校,介绍自己的疯狂英语学习方法, 当时一场演讲听下来,真的是热血沸腾,怀揣「用语言改变世界」的雄心,我掏了200多块的巨款买了一系列的学习教材,只是不久之后就束之高阁了。

几年后升入高中,李阳团队再次到来,只是主讲人换成了他的学生。年岁渐长,加之已被「坑」过一次,这次我便以看热闹的心态听完。

故事大纲是自己英语原来多么差,一直想要学好英语不得其法,尝试了许多方法之后仍没有改善, 在偶然的机会下接触到「疯狂英语」,抱着试一试的心态,没想到一番练习之下真的有用,最后功夫不负有心人,最终口语得以大成。

他验证自己的口语的方式是,假冒美国人,给美国领事馆打电话,谎称在中国丢了护照,向领事馆求助,求助半小时,对方毫无怀疑,放下电话那刻,他泪流满面。

为何想起这个故事?

我现在已经可以给各种银行,运营商,航空公司打电话用英文沟通自己的各种诉求,维权。 在经理不在的时候,帮忙主持会议,与不同国家的同事电话沟通,排查问题。

甚至我在今年8月,因租房纠纷,在电话会议中与房东的代理律师用英文辩护一个小时。

虽然口语远未「大成」,但是至少,不会再成为沟通障碍。

7 回望来路

前段时间回国的时候,家里网络出了问题,又不想一直看手机, 就翻起了墙角边的书箱 —— 那里存放着家人帮我从大学运回的书。

打开其中的一个箱之后,才意识到那一箱都是英文书,这是其中的一部分:

还有那本已经被翻烂了的《新概念英语3》:

我真正想要学好英语,是在高考之后。

但苦于不得其法,只好用最笨的办法:把这本书的课文背下来。都说「书读百遍,其义自见」,背下来,总会有收获。

十年过去,绝大多数课文内容已遗忘,只记得第一篇是《Puma at large》,第一句是:

Pumas are large, cat-like animals which are found in America.

重新翻开《新概念三》,曾经晦涩难懂的文章,现在读来已无太多障碍。

在一堆书下,还压着我2014年底写的日记:

后来,当生词本变成电脑上的一个文件,我给自己加了这样一句话:

1
2
3
4
5
git blame ~/org/english/vocabulary.org

f4270c4a (Ramsay 2021-05-16 09:54:57 +0800 3) :Comment:
f4270c4a (Ramsay 2021-05-16 09:54:57 +0800 4) 你每多背一个单词,就离想去的地方更近了一步
f4270c4a (Ramsay 2021-05-16 09:54:57 +0800 5) :END:

时间过去太久,我已记不清当初「要拿回来的东西」是什么,「想去的地方」又是哪里。

只是蓦然回首, 那个曾经遥不可及的「英语流利的自己」,已在灯火阑珊处。

回到系列目录

qrcode_gh_e06d750e626f_1.jpg 公号同步更新,欢迎关注👻

8 延伸阅读