既懒又笨的低劣程序员
我看法到一个十分有悖常理的现象,低劣的程序员都是即懒又傻的。
由于懒,他才会写出各种各样的工具来替自己干活。由于懒,他才会想方法防止去写无聊重复的代码——因此防止的代码的冗余,消减了保养的老本,使重构变得容易。最终,这些由于懈怠激收回的能源而开收回的工具和最佳编程通常方法优化了产品的质量。
懈怠的程序员也因此变成了低劣的程序员。当然,这只是事件的一局部;从一个懈怠的程序员变成一个低劣的程序员,他/她会在学习如何能够永远坚持懈怠时体现出惊人的不懈怠——也就是,什么样的软件工具能让自己干活更轻松,什么方法能防止繁杂,如何能让上班更容易的保养和重构。
其次,(我将用多一点篇幅来说明这一点,由于我发现这个观念比第一个更难接受。)低劣的程序员都是傻的。为什么?由于假设他很痴呆,或他知道自己很痴呆,他就会:
a)中止学习
b)对自己的上班不再高规范、高要求
第一点将会造成他不再致力的去发现新的技术,让自己上班的更快捷。第二点将造成他的代码变得难以debug,难以重构。在程序员和编译器无休止的抗争中,程序员最好一开局就投诚并抵赖是自己的错,而不是编译器的错(除非是关于字符编码疑问,有些编译器确实有疑问)。
但是,还有一个低劣的程序员必定笨的更关键的理由。为了寻觅到更好的疑问处置方案,他必定坚持一个虚心的心态,他必定跳出形式想疑问。某种水平上,这会让他们回到小孩的思想形式;因从未阅历“no”的打击而极具发明力。
雷同的思想形式就不是那么具备创见性,会以为对现状高深莫测,会接受现状。可是又有谁知道多少你以为的无法能是真正的无法能?知道的越少你就会越保守。你开发的工具越好,你的产品就会由于它们变得质量更高。
相 似的,当共事问我:“这为什么不好用?”大少数时刻是由于他们修正错了疑问(例如,他想链接lib1,但他实践链接的是lib2,或理想上他基本没有链接任何lib)。当你向一个共事求助,尤其是编程疑问,你普通不会通知他更多关于名目标事件。当他问一些很傻的疑问时,你潜看法里就会抵抗回答,由于你以为你知道的很分明,但理想上你并不是这样。
事件当然有另外一面。太笨也就想不出任何方法,做错事,处置不了任何疑问。而太痴呆的青睐坐着方案好疑问,但却很少执行。适用主义的程序员取其中。他知道,10次决策一次性失误比起只要五次正确选择而另五次什么都不做要好的多。
这有点像一个关于蜈蚣的故事。蜈蚣很长于经常使用它的100条腿一同走路。它素来没有想过它是如何能做到这些的。直到有一天,一个臭虫问他,“你是如何控制这么多腿走路的?你不觉得让它们按必定的节拍配合走路很难吗?”臭虫说完就走了,蜈蚣却依然坐在那里思索,思索如何走路的,不解,甚至(此生中的第一次性)有些担忧了。从那天起,这个蜈蚣再也没能走一步。
所以,假设你想成功某个事件,不要想太多。当然,这也只是事件的一半….
原文链接:
译文链接: