享受编程,依然没什么不对

Chris Kiehl 谈编程的乐趣:享受探索、理解和解决问题,不需要拿经济收益来为这种快乐辩护。

以下为中文译文,原文版权归原作者所有。


看了 Hacker News 上的讨论,我觉得有必要写下这句话:享受编程,依然没什么不对。

没错,在工作中,你拿报酬是为了给企业创造价值;从成本和收益的角度看,完全靠自己手写代码这件事,经济账确实已经和过去不同了。但那是工作。工作不等于生活。 互联网上声音最大的那群人,往往也最悲观,而这种悲观还格外容易传染。

为了给这一片绝望之海提供一个小小的反例:我周末依然会写程序,因为这很好玩。我最近正在学游戏编程!以我目前的水平,也就只能做出一个 Bug 一堆、碰撞检测烂得一塌糊涂的《打砖块》(Breakout)仿制版。我亲手写它,因为我乐在其中。我愿意花时间跟难题较劲,因为解决问题会让我开心。Claude 能一次就把它生成出来,我也不在乎——因为我做这件事,图的根本不是这个。

而且,我还常常写着这个所谓的“游戏”,就跑去研究一些不相干的编程话题。比如上周末,我借鉴了 Agda 这类依赖类型语言(dependently typed languages)的思路,想试试看能把 Java 的类型安全性推到什么程度。这事没什么实际目的。最终,它大概只会被我归进“思考某类问题的有趣方式”这个抽屉里。也许以后工作时能派上用场,也许永远用不上。我研究它,只是因为探索本身很好玩1。

再往前几个周末,我研究的是递归模式(recursion schemes)。严格来说,那次并不好玩。我花了好几个小时跟这些概念死磕,简直像在拿脑袋撞墙。结果到最后,我甚至还没弄明白这些思想到底有什么价值2。但我知道,编程中许多最美妙的思想,都要在我脑海里酝酿好几年,我才能真正领会。这也正是为什么有人能专门写一整篇论文讨论幺半群(Monoid)。也许总有一天,我会遇到一个正好能用上这些思想的问题;也许不会。我之所以研究它,是因为理解艰深的事物,本身就会带来满足感。

我写下这些,是因为我越来越感受到一种奇怪的社会压力。仿佛我已经“不应该”再享受编程了。仿佛作为一个人继续学习、成长,已经既无意义,也无乐趣。你刷到的这种末日论调越多,就越容易被它感染。到后来,你甚至会不由自主地想:“也许真的没什么意义了。”可只要从网络上断开,这种念头就消失了。

享受自己喜欢的事,没什么不对3。你不需要拿经济收益来为这种快乐辩护。

原文与翻译说明

原文:It’s still OK to enjoy programming · Chris Kiehl。

AI 辅助翻译,Evan Wong 校对。译文保留作者的技术术语、引用链接和三条脚注;部分句式按中文阅读习惯调整。原文配图请前往原站查看。

延伸阅读:《智能体编程是一个陷阱》。


  1. 找一天花点时间理解一下 Fin 吧。它真的很美妙。 ↩︎

  2. 我还没领会到那一步,但研究它的目标,是为自己多添一种工具,以便从代数的角度推理程序的正确性(这个话题我也在我的书里讲过!)。 ↩︎

  3. 我玩 vibe coding(氛围编程) 也玩得非常开心。我已经做出了一套应用,却从没看过其中任何一行代码。我怀疑真要去看,恐怕会把自己吓坏。用这种方式“编程”同样很好玩,很多时候甚至好玩得不得了——只不过,它有自己独特的乐趣。 ↩︎

使用 Hugo 构建
主题 Stack 由 Jimmy 设计