我最近才意识到,如果你对着电脑,用着编译器、IDE 和工具等,是搞不出什么好代码的。最佳的编程地点是——远离你的这些工具——在一个能让你正确思考的地方,有条不紊地写代码。一般来说,对于一种你熟的不能再熟的编程语言,在你的大脑计算机里翻译程序,甚至和用编译器编译(还有解释器解释)是一样容易的。甚至,你可能最后想出来的程序比计算机更复杂更酷。
有一次,我在火车上旅行。我虽然带了笔记本,但是没有网。而不幸的是,我用的是商业编程语言(IDL),需要得到网站许可方能使用。但是没网就意味着得不到网站的授权,得不到网站的授权,就意味着我就完全没法运行编译器和 IDE。哦,my God!IDL 的商业许可不但贵,而且它的编译器还限制我在自己的编辑器上写代码,这个破编程语言,谁爱用谁用!但是我想说的是,这件事启发了我。
我记得我在哪里看到过这样一个帖子,概括起来的中心意识是:
我最近才意识到,如果你对着电脑,用着编译器、IDE 和工具等,是搞不出什么好代码的。最佳的编程地点是——远离你的这些工具——在一个能让你正确思考的地方,有条不紊地写代码。一般来说,对于一种你熟的不能再熟的编程语言,在你的大脑计算机里翻译程序,甚至和用编译器编译(还有解释器解释)是一样容易的。甚至,你可能最后想出来的程序比计算机更复杂更酷。
有一次,我在火车上旅行。我虽然带了笔记本,但是没有网。而不幸的是,我用的是商业编程语言(IDL),需要得到网站许可方能使用。但是没网就意味着得不到网站的授权,得不到网站的授权,就意味着我就完全没法运行编译器和 IDE。哦,my God!IDL 的商业许可不但贵,而且它的编译器还限制我在自己的编辑器上写代码,这个破编程语言,谁爱用谁用!但是我想说的是,这件事启发了我。
我记得我在哪里看到过这样一个帖子,概括起来的中心意识是:
我从我第一个老板那学到的其中一个最好的教训是:当你的代码不能如期运行时,不要老是依赖调试器,试着自己思考一下。
但是因为有了编译器,使得很少有人会去这么做。这种心态很容易理解,也很正常。我们一般的编码流程是:
1) 写代码,即使写得很差
2) 编译之后执行代码
3) 用简单的事例测试
4) 发现不能工作
5) 小小的改一下,再看看问题是否能解决
6) 不断重复过程5)
最后得到的代码很可能满是 bug、不便于测试,然后编程人员自己都无从下手了。
远离你的电脑,迫使你不得不先在自己的大脑里思考一遍——当然,这会比你用电脑来编译和运行代码所花费的时间更长。但是,你不会想着——在代码里小修改一下再运行看看——这种愚蠢的事,你会思考要用哪些代码执行什么。也正是在火车上的那一天,我意识到,自从我过了 Computing A-Level 考试,我就再也没有在纸上写过一句代码。
在另一次我写代码的时候,我想试试能不能远离电脑来写代码,我先是想出了一段高质量基本无 bug 的代码,然后写在纸上面,思考是否有需要纠正的,然后复制到电脑上,再想想有没有问题了,最后才在编译器上编译。而我从纸上拷贝过去的代码,尽管有涉及大量递归的图像分割程序,但是奇迹般的,我一次就成功了!
这种感觉真的超级棒。最后,我希望我的这个建议能对各位有用!
译文链接:http://news.html5tricks.com/code-better-get-away-from-pc.html
翻译作者:html5tricks – 蒋丽丽
但是因为有了编译器,使得很少有人会去这么做。这种心态很容易理解,也很正常。我们一般的编码流程是:
1) 写代码,即使写得很差
2) 编译之后执行代码
3) 用简单的事例测试
4) 发现不能工作
5) 小小的改一下,再看看问题是否能解决
6) 不断重复过程5)
最后得到的代码很可能满是 bug、不便于测试,然后编程人员自己都无从下手了。
远离你的电脑,迫使你不得不先在自己的大脑里思考一遍——当然,这会比你用电脑来编译和运行代码所花费的时间更长。但是,你不会想着——在代码里小修改一下再运行看看——这种愚蠢的事,你会思考要用哪些代码执行什么。也正是在火车上的那一天,我意识到,自从我过了 Computing A-Level 考试,我就再也没有在纸上写过一句代码。
在另一次我写代码的时候,我想试试能不能远离电脑来写代码,我先是想出了一段高质量基本无 bug 的代码,然后写在纸上面,思考是否有需要纠正的,然后复制到电脑上,再想想有没有问题了,最后才在编译器上编译。而我从纸上拷贝过去的代码,尽管有涉及大量递归的图像分割程序,但是奇迹般的,我一次就成功了!
这种感觉真的超级棒。最后,我希望我的这个建议能对各位有用!
译文链接:http://news.html5tricks.com/code-better-get-away-from-pc.html
翻译作者:html5tricks – 蒋丽丽