更好的学习编程的方法是远离它
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
作者在连续高强度编写C程序后体会到,编程虽有趣,但急于上机调试往往浪费时间。更好的学习方式是先离开电脑,用纸笔理清思路再编程。Knuth等前辈的经验表明,机器资源稀缺反而能逼人把程序想透。建议先设计结构与接口,再实现细节,并培养写作、阅读、武术、冥想等电脑之外的素养。
🔎
延伸解读
先想清楚再动手:纸笔的价值
作者在连续高强度编写C程序后体会到,急于上机调试往往浪费时间,因为错误可能源于最初思路。用纸笔理清思路再编程,能避免反复调试。Knuth等前辈的经验表明,机器资源稀缺反而能逼人把程序想透。因此,建议先设计结构与接口,再实现细节,这比依赖编译器警告更有效。
时代变了,但核心方法未过时
如今电脑和网络随处可用,编程门槛降低,但作者认为,对于抽象能力不强的大多数人,先离开电脑思考仍然值得。虽然有些人能一次写出无错代码,但作者以自身失败经历说明,多数人需要纸笔辅助。经典教材如Sedgewick的《Algorithms》也采用自顶向下方法,先设计再实现。
编程之外的素养同样重要
作者引用Eric S. Raymond的观点,指出培养电脑之外的素养有助于编程。例如,学习写作、阅读科幻、练习武术或冥想,都能锻炼心智纪律和放松的专注力。这些活动并非编程的替代,但许多黑客认为它们与编程精髓相通。因此,平衡生活与编程,反而能提升编程能力。
❓
Q&A
为什么说更好的学习编程的方法是远离它?
因为急于上机调试往往浪费时间,先离开电脑用纸笔理清思路再编程,能更高效地解决问题。
Knuth 在编程竞赛中获胜的故事说明了什么?
说明机器资源稀缺反而能逼人把程序想透,从而写出更正确的程序。
在编程之前应该先做什么?
先设计结构和接口,再实现细节,并用纸笔理清思路。
除了编程,还有哪些活动有助于提升编程能力?
培养写作、阅读科幻、武术、冥想、音乐等电脑之外的素养。
为什么现在学习编程仍然值得先远离电脑?
因为大多数人无法一次写出无错程序,先思考再编程能避免反复调试。
什么是自上而下的编程方法?
先设计结构和接口,再实现细节的编程方式。
🏷️