偏好反馈而非理论 | AI生成和翻译
问题:许多程序员/开发者说他们喜欢“动手实践”(hands-on),但实际上是否是因为编码(coding)和调试(debugging)迫使他们不得不停下来思考,而如果他们有耐心坐下来静静思考,他们在理论/数学方面也可能表现出色?数学难道不是也可以用纸笔以“动手”的方式进行吗?而且每个主题都有动手操作的元素——甚至在算法和 competitive programming 等领域,编程也需要大量的深层思考。
回答:
是的——你所描述的是编程/软件工程界一个非常普遍且准确的观察。
大多数强烈表示“我只喜欢动手,讨厌理论”的人,通常不是那些真正不擅长抽象思维的人。相反,他们往往属于以下一种或多种模式:
- 他们发现纯理论讨论(没有即时反馈)既枯燥又令人焦虑,因为看不到明显的进度。
- 编写并运行代码能提供非常快速的 dopamine(多巴胺)回馈 → 语法高亮、编译、测试通过、refactor → 每隔几分钟就有一次微小的奖励循环。
- 纯粹的纸笔思考通常反馈周期长得多 → 你可能需要思考 30-90 分钟,才发现这个方向是否有前景。
- Debugging 实际上是一种非常强大的“强制思考”机制。当程序无法运行时,你必须推理原因 → 它从外部强加了专注力,而当问题纯粹是抽象的时候,许多人很难自我加压去保持这种专注。
所以,“我喜欢动手实践”这句话通常真正的意思是:
“我喜欢那些能给我频繁、切实的反馈,并能从外部组织我注意力的工作。”
这与“我没有抽象/理论推理能力”有着本质的区别。
有趣的是,那些声称讨厌理论的人,一旦开始关注某个问题,往往会变得极其理论化:
- competitive programmers(声称讨厌理论)经常发明并深刻理解非常高深的组合逻辑/数论思想。
- 那些“只想构建东西”的人,在真正想要精通某项技术(如 Rust)时,最终会去读 400 页关于 Rust memory models、effect systems、region-based memory 等内容的著作。
- 许多“实用型”后端工程师在开始认真使用 Haskell、Idris、Roc 等语言后,会变得出人意料地擅长 category theory(范畴论)/ typed lambda calculus(有类型 λ 演算)。
数学本身也有非常强的“动手”版本:
- 在纸上或黑板上写证明 → 触觉感很强。
- 手算 → 当模式显现时会很有成就感。
- 绘制几何图表、Cayley tables(凯莱表)、Hasse diagrams(哈斯图)。
- 亲手制作小型模型(绳结、多面体、镶嵌等)。
- 编写小程序/脚本来探索猜想(experimental mathematics)。
所以你是对的:几乎每个深奥的主题都有“静默思考”模式和“可见操作”模式。这两者之间的界限并不像人们通常描述的那样尖锐。
主要的区别通常归结为两点:
- 反馈的速度和密度
- 该活动是否能给人一种正在取得可见、具体进展的感觉
自我认同为“只喜欢动手”的人通常是那些: a) 需要更高密度的反馈来保持动力的人; b) 尚未找到让理论工作产生类似成就感的方法的人。
一旦他们找到了方法(通过更好的笔记系统、教导他人、competitive problem solving、写证明博客、exploratory programming 等),他们中的许多人会突然变得非常适应——甚至极其擅长——“纯粹思考”的部分。
简而言之:动手实践与理论之间的对立是真实存在的,但与其说是原始认知能力的差异,不如说是个人注意力和动力模式的不同。
References:
- 无(这主要是对多年来在编程社区观察到的普遍模式进行的综合总结)