我父亲在90年代教我的AI编程心得
摘要
本文将盲棋技能与高效的AI辅助编程进行比较,认为模式识别和注意力控制是两者的关键。
暂无内容
查看缓存全文
缓存时间: 2026/08/30 15:45
# 我父亲在90年代教会我的AI编程课
来源:https://askmike.org/articles/ai-coding-lessons-in-the-90s-from-my-dad/
*发布于 2026年8月23日*
那是1990年代末的一个暑假,当时我还是个八九岁的小孩子。父亲曾教过我国际象棋规则,我们偶尔会对弈几局。但这次不同:开局前他突然起身离开棋盘,走到房间另一头的椅子坐下,背对着棋盘。
每当我移动棋子时,只需大声报出棋步——"兵从E2走到E4"。父亲会口头回应他的走法,我再按照指令在棋盘上复盘。我们正在下盲棋。我记得曾告诉他要移动某位置的棋子,但那个棋子根本不在他说的位置。他毫无迟疑地精确指出了棋子的实际位置。那局棋我很快就输了,但整个过程令我着迷。
> 高手通常不会像照片那样在脑中构建完美细致的棋盘。他们追踪的是一组结构化关系:- 重要棋子的位置- 被攻击或被防守的格子- 开放的直线、斜线与兵形结构- 战术关联如牵制、捉双和孤立棋子- 每步棋带来的变化值得注意的是,盲棋棋手常表示,他们的注意力更多集中在关系与合法走法上,而非字面意义的"看见"棋盘。国际象棋知识会自动重构大部分局面。因此这种卓越技能是空间工作记忆、模式识别、严谨计算与注意力控制的结合——而非单纯的照片式记忆。
\- 克劳德寓言 5
我最终没有深入研究国际象棋,转而投身于计算机与编程领域。
随着过去一年多来大语言模型在编程领域的迅速崛起,软件工程师的工作方式正在发生剧变。所有人都在探索如何在这个新世界高效工作,各种观点百花齐放。但所有人都清楚一点:如果使用AI时只需简短描述需求,却从不审阅AI生成的代码——这种"氛围编程"产出的软件将难以持久(即便能运行)。那么究竟该让AI完成多少编码工作,人类又该把控、阅读(并深入理解)多少代码呢?
在某些层面,这类似于高级编程语言带来的变革。在出现这些语言之前,程序员必须深入理解实际硬件和CPU执行指令的机制(如内存管理、指针、线程等)。使用Java或Python编程时,我们可以不必关注这些底层细节,但必须掌握的知识清单依然是明确的(只是变得更简短易懂)。如今的区别在于,使用AI时似乎不再需要掌握任何专业知识。我显然认为,经验丰富的程序员使用Claude Code产出的质量很可能优于非技术人员(尽管难以量化)。资深程序员也可能疲惫或厌倦,停止逐行审阅代码而放任AI掌控。人类天生具有惰性,当感觉AI已掌舵时,保持敏锐和专注就变得困难重重。
因此,使用AI编程在诸多方面与盲棋恰恰相反:你无需时刻保持注意力,不必记忆关键棋子位置,也无需关注战术细节(如代码接口与API)。**但我在此主张,定义优秀盲棋棋手的技能,与那些能在Claude Code终端前游刃有余(即便不亲自阅读或编写代码)的程序员所需技能完全一致。** 许多出色的程序员在大语言模型兴起前就已掌握这些能力。例如在脑海中构建代码如何交织运作的深刻心智模型,始终将代码视为抽象概念或目标的表达,或是通过深度思考来简化或改进现有实现。对我而言,为未亲自编写(或极少阅读)的软件建立这样的心智模型仍然困难,在不同时刻把握详细讨论与宏观把控的平衡也颇具挑战。
随着大语言模型及其工具日益精进,真正能驯服这些猛兽并保持掌控力的人,将以前所未有的速度与智慧前进——其效率不再受限于读写底层代码的速度。你知道吗?最顶尖的盲棋棋手能同时进行多局盲棋对弈?
马格努斯·卡尔森在蒙眼状态下同时对弈10局国际象棋
问题在于,与国际象棋不同(其棋力等级易于评定),这种高效编程方式将变得无法量化衡量——因为AI能攻克你设计的任何量化指标。
相似文章
在AI时代编写高质量代码
本文讨论了在AI辅助下编写高质量代码的挑战和最佳实践,强调需要进行严格的代码审查,避免盲目信任AI生成的输出。
AI编程:摆脱氛围
这篇文章反对在编程和学习中过度依赖AI,强调应采取平衡方式,让AI辅助而非取代技能培养,以确保真正的理解。
关于人工智能
作者回顾了自己从在老旧Macintosh上手动输入代码到使用Copilot和Claude等AI辅助代码补全工具的历程,并得出结论:尽管AI行业存在问题,但技术本身是有用的。
我是在学编程,还是只学会了向AI提问?
一位开发者反思了使用AI快速编写代码与深入理解代码之间的权衡,并质疑如何在AI辅助与真正学习之间取得平衡。
AI编码工具已强大到能真正交付产品,但对学习而言却成问题
一位开发者反思AI编码工具如何提升生产力,但可能阻碍深度学习——用户交付了不完全理解的代码,引发关于技能发展的疑问。