为兴趣写代码,这件事现在依然成立

Chris Kiehl 写了那种“再为代码较真就没意义了”的社会压力,以及他为什么还在周末手写一个碰撞检测一团糟的打砖块游戏。上班时手写代码的经济账确实变了,但工作不是生活。

中文
复制
森林峡谷里一道从岩壁倾泻而下的瀑布,两侧长满常绿的冷杉,左边有一株叶子开始变色的枫树

读 Hacker News 让我觉得有必要写下这些。享受编程,这依然没问题。

没错,在工作中,你拿钱为企业创造价值,纯手写代码的经济账已经变了。但那是工作。工作不是生活。互联网上嗓门最大的那些人,恰恰是最丧、也最容易传染的。

在这片绝望的汪洋里扔一个小小的反例。我周末仍然写代码,因为好玩。我最近在学游戏编程!我目前的水平是一个碰撞检测烂得离谱、满是 bug 的 Breakout 克隆。我手写它,因为我享受这个过程。我为问题苦恼,因为解决它们让我开心。Claude 能一次搞定,这并不困扰我,因为重点不在这里。

我还会在做这个“游戏”时跑偏,跑去研究各种乱七八糟的编程话题。上个周末是在琢磨,借 Agda 这类依赖类型语言的思路,我能把 Java 的类型安全推到多远。这没有任何用处。它会被归到“思考某个特定问题的有趣方式”那一类里。也许哪天工作中会用到。也许不会。我做它,是因为探索很好玩。1

再往前几个周末,我研究的是递归方案。严格来说,这个并不好玩。我花了好几个小时撞墙。到最后,我甚至都不知道这些想法到底有什么价值。2 但我知道,编程中许多最美的想法,都要在脑子里酝酿好几年才会变得清晰。这就是为什么有人能就 Monoid 写出整篇论文。也许有一天我会遇到一个能用上它的问题。也许不会。我做它,是因为理解困难的东西让人有成就感。

我写这些,是因为我越来越感到一种奇怪的社交压力。就好像我不该再享受这些了。好像继续作为一个人去成长,既没有意义,也没有乐趣。你消费的这类末日信息流越多,它就越开始感染你。也许你会发现自己想着“这没有意义”。但只要你断开连接,这种感觉立刻消失。

享受事情本身是没问题的。3 这样做不需要任何经济上的正当性。

Footnotes

  1. 找个时间花点功夫弄懂 Fin。它很美。 ↩

  2. 我还没到那一步,但学这个的目的,是给自己再添一件工具,好用代数的方式推理程序的正确性(这个话题我在我的书里讲过!)。 ↩

  3. 我也很享受 vibe-coding。我有一整套 app,代码我一行都没看过。我猜真去看了会把我吓坏。用这种方式“编程”同样好玩,而且常常是极其好玩。只不过是好玩得别具一格。 ↩

来源: chriskiehl.com← 返回首页