最近半年,几乎没有手敲过一行代码,全是AI写的,所以对以前如何编程有着强烈的好奇心,刚好在《阮一峰的网络博客》里刷到了类似的文章,就去看了下,还是很有意思的,现翻译如下:
如今几乎无人能及的那种耐心:翻开一本计算机杂志,找到一篇用 BASIC 或汇编语言编写的程序清单,铺满三四页,然后开始逐行抄写。不跳行,不接受"差不多就行",因为哪怕多一个空格或括号位置不对,程序都无法运行。
我记得键盘咔哒咔哒响了好几个小时,那种机械的节奏,仿佛敲击者更专注于避免出错,而不是真正理解自己在打什么。通常情况下,一下午下来,敲完代码后按下"运行"键,屏幕上就会弹出一行语法错误,却没有任何解释。那时没有 Stack Overflow,也没有搜索按钮。只有你,桌上摊开的杂志,以及那份------如果真有的话------会在下一期发布的勘误表。
那时候的调试几乎是一项体力活。你需要逐个字符地比对屏幕上显示的和打印在纸上的内容。你会发现,一个看起来像小写字母"l"的"1"骗了你半个小时。或者,你会发现三十行数字中漏掉了一行数据。这很慢,有时也很枯燥,但它教会了人们一些现在人们试图通过练习和教程来模拟的东西:仔细阅读代码,在修改任何内容之前理解代码的结构。
这一切都蕴含着社群的力量,只是分散而缓慢,如同邮件的流逝一般缓慢。有人写信给编辑指出列表中的错误,也有人寄来同一程序的不同版本,经过改进或针对不同电脑进行了适配。给编辑的信件就像是先于文字的论坛,只不过提问和回复之间往往隔着数周。这与如今编程聊天室的运作方式并无太大区别,只不过我们用纸张和邮票换来了即时回复------说实话,我至今仍然不确定这笔交易是否真的物有所值。
现在的情况并非更糟。自动补全、人工智能几秒钟就能标记错误、只需点击一下就能访问整个社区------这些都节省了过去浪费在无意义学习、只会徒增挫败感上的大量时间。但与此同时,也失去了一些东西,那就是那种必须仔细阅读、理解每一行代码的义务,因为没有捷径可走。从杂志上学习编程效率低下,那完全是另一回事。