跳到正文
Hacker News· evakhoury·· 9 天前AI 评分22

当“作弊码”就在手边:LLM 辅助编程与技能学习的取舍

Once the Cheat Code Is There

AI 导读

一位开发者反思:LLM 智能体就像游戏作弊码和 Stockfish 引擎,一旦触手可及,就很难拒绝直接要答案。在编程 katas 练习中,让 agent 直接生成代码并表面理解,与亲手找到解法是两种不同技能,前者只是“跟着看”。作者认为工作中用 agent 提效合理,但学习时须保持自律,因为过程本身才是目标。

正文 · AI 翻译

一旦开始,我就很难不作弊。我在几个不同的地方都注意到了自己的这一点,而且我早就知道了。我觉得我并不孤单,但我认为值得谈谈我所看到的、我为什么觉得自己是这样的人,以及这对我的工作意味着什么。

作弊码

小时候,我玩过不少电子游戏,而一旦我能上网,我就一次又一次掉进同一个陷阱:卡关时,我会去查作弊码,结果毁了自己的游戏体验1。

作弊让游戏失去了乐趣。我在使用它们时就知道这一点,在查它们之前也知道。但一旦作弊码在手,不使用它们就变得在心理上很难。游戏不再提供挑战。相反,每次我卡关时,它都给我一个选择:挣扎,还是用作弊码。

有些游戏完全变了样。我记得我会在 PlayStation 上的 GTA San Andreas 里花上好几个小时,只是给自己搞些奇怪的挑战,而不是去完成剧情。事后回想,我也不知道自己当时到底有多少真正的乐趣。

我不认为问题出在作弊本身,而在于知道答案总是触手可及,而我必须主动决定不使用自己的超能力。

学习

几年前,我作为成年学习者在在线环境中下国际象棋时,又注意到了同样的事情。事后用 Stockfish(或者任何引擎,真的)复盘我的对局时,我很难保持投入。这项练习的目的是找出自己的错误并理解它们为什么是错误。而我实际做的,是让引擎揭示最佳走法,然后有点跟着走,有时忽略我不理解的走法(那些大概不是那种微妙、关键、能让你成为更好棋手的走法,对吧?!)。

跟着走感觉像是在工作。你看着那些走法,你使劲思考,当每个走法展示给你时你都能理解。但当一个走法被递到你面前时理解它,和靠自己找到它,是两种非常不同的技能。只有其中一种对我的对局真正有用。

再说一次,引擎不是问题。它是个绝妙的工具。问题在于,一旦它开在棋盘旁边,每个困难的局面都变成了在思考和询问之间的选择,而询问总是更容易,你还可以骗自己说那是一种等价的学习成果。

型

而且我认为用 LLM 编程也类似,尤其是在为了自己学习而做型练习时。读这个博客的人都知道,我热爱磨练自己的手艺,也热爱把我那些奇怪的小心得传递下去。

型练习的全部意义就在于做。没人需要又一个 数独 的解法,或者一个 糟糕的 Brainfuck 编译器 的实现。你做它是为了训练自己身上的某种东西,结果主要是副产品(偶尔也是个非常有趣的演示)。

机器里有个智能体时,很容易就让它吐出一个解法,肤浅地检查一下,然后,又一次,假装那就是学习。而且它看起来确实很像学习。我读了代码,我理解了代码,它通过了测试。但这和我用国际象棋引擎时那种跟着走是一样的。我认出了解法,但不是我找到的2。

我认为,比引擎更糟糕的是,智能体始终存在,而且它是我正常工作流程的一部分。工作时,我大量使用智能体。它们帮我减少在枯燥和仪式性事务上花费的时间。有时它们帮我处理工作栈中那些我不想去了解的晦涩部分,比如构建工具、CI YAML,甚至是一些对我程序员技能毫无帮助的框架怪癖。

但这种工作流程对学习并不适用。学习是以目标为导向的,但过程更重要。在工作中,我不在乎工单是如何关闭的、bug 是如何修复的,我在乎的是产品变得更好。而在做 kata 时,我必然在乎“如何做”,因为这是实现最终目标的唯一关键。

但让模型直接产出一些工作成果,而不是自己动手,这实在太诱人了。

完

对此我没有好的答案。我不会停止使用 LLM,我认为我也不应该停止。正如我所说,在我的很多工作中,它们确实有用,是一种通往某种生产力的作弊码,尤其是在维护大多数产品所需的那些枯燥事务上3。

但我认为对自己保持诚实很重要。如果我想要结果,我可以使用工具。如果我想要技能,我可能就需要确保自己保持自律,因为如果我的过往记录能说明什么的话,我是抵抗不住它的。

脚注

1. 我年纪够大,还记得在互联网出现之前,你必须拨打一个昂贵的电话号码才能获得作弊码。我为 Game Boy Color 上的《蝙蝠侠》这么做过,电话那头的人居然真的有一本书,他照着书查代码。这听起来像是我来自上古时代,但这事发生在 90 年代末/2000 年代初。

2. 而且说实话:有时我甚至不完全理解那个解决方案。有些微妙之处我会一带而过,有些复杂之处我只是接受,代码里有些小角落经不起推敲。关键在于,当我亲手做的时候,这些都不存在。

3. 这不是在贬低产品工作。它只是从根本上不同,而技术上的兴奋感有时才会与一个真正出色的产品所需的东西相交。这没关系,有时工作中的兴奋感来自于以一种不令人兴奋的方式构建出很酷的东西,而有时它就只是工作。

来源:Hacker News · blog.veitheller.de