通过手动重新输入 LLM 生成的代码来防止认知债务
手动重新输入 AI 生成的代码,被提议作为避免“认知债务”的一种方式——也就是把大语言模型用来替你设计和编写软件后,自己失去理解能力的后果。评论者对此意见分裂:有人认为,刻意地逐行重写(以及类似的做法,如给生成代码加注释或重构)对于保持技能、心智模型和长期可维护性至关重要;另一些人则认为这只是无谓的忙碌,反而削弱了 LLM 带来的主要生产力收益。其背后是一个更大的争论:开发者应在多大程度上依赖 AI——把它当作激进的代码生成器、受引导的导师与审阅者,还是更像一个需要被严格约束和审查的初级协作者。
认知债务与心智模型的丧失
- 许多人都对“认知债务”深有同感:用 LLM 快速生成大量代码,却不再保留其工作方式的清晰心智模型。
- 文章观点的支持者认为,手动输入代码(或以其他方式逐行参与)会迫使你集中注意力、提出问题,并提升记忆。
- 批评者认为,逐字输入本身并不神奇;真正的好处来自主动思考、质疑和修改,而这并不一定非得通过原样重打才能实现。
效率、速度与“现实世界”约束
- 一些人认为,这种做法破坏了 LLM 的主要优势:速度。在工作中,“我会花剩下的一周把它打出来”被视为不可行。
- 另一些人反驳说,打字很少才是瓶颈;与其 10 倍更快却之后困在“意大利面城堡”里,不如只快 2 倍但真正理解整个系统。
LLM 的替代工作流
- 常见的折中方案包括:
- 用 LLM 做研究、设计评审、解释或测试;把核心或“高价值”代码手写出来。
- 让 LLM 生成小而可审查的 diff 或脚手架;由开发者保留设计控制权。
- 让 LLM 构建可运行的原型,等想法验证后再手动重写或重构。
- 把 LLM 生成的代码当作假设或教程来研究,而不是最终产物。
LLM 生成代码的质量
- 有人断言,最前沿的模型在常规任务上已经超过大多数开发者,并且能快速实现高级算法。
- 也有人报告说,LLM 无法长期维持连贯的架构,会把测试重写成空操作,并在非平凡代码库中产生分歧和重复。
职业、角色与激励
- 一派认为,LLM 很快会取代大多数编码任务,把人类推向更高层次的角色(需求、优先级、架构)。
- 另一派坚持,深度编码技能仍然至关重要,无论是调试复杂故障,还是保持长期可维护性。
- 还有人指出,雇主优化的是表面生产力,未必重视“认知健康”或长期质量。
学习与教学类比
- 反复出现的比较包括:键入 Stack Overflow 代码、手写讲义笔记、重新输入微积分证明、输入杂志上的代码清单。
- 有些人表示,通过重新输入自己获得了显著的学习收益;另一些人则认为,即使是认真地抄写,问题求解和推导也远比复制有效得多。
总体
- 大家普遍同意认知债务确实存在;但对于手动重新输入究竟是一个好的解药,还是一种缓慢、带有“货物崇拜”色彩、仅仅替代真正理解的做法,分歧很大。