Coding
并不全都是喜悅。我們只有事先了解一些編程固有的煩惱,這樣,當它們真的出現時,才能更加坦然地面對。
?
首先,必須追求完美。因為計算機也是以同樣的方式來變戲法:如果咒語中的一個字符、一個停頓,沒有與正確的形式一致,魔術就不會出現。(現實中,很少的人類活動要求完美,所以人類對它本來就不習慣。)實際上,我認為學習編程的最困難部分,是將做事的方式往追求完美的方向調整。
?
其次,是由他人來設定目標,供給資源,提供信息。編程人員很少能控制工作環境和工作目標。用管理的術語來說,個人的權威和他所承擔的責任是不相配的。不過,似乎在所有的領域中,對要完成的工作,很少能提供與責任相一致的正式權威。而現實情況中,實際(相對于正式)的權威來自于每次任務的完成。
?
對于程序員而言,對其他人的依賴是一件非常痛苦的事情。他依靠其他人的程序,而往往這些程序設計得并不合理,實現拙劣,發布不完整(沒有源代碼或測試用例),或者文檔記錄得很糟。所以,程序員不得不花費時間去研究和修改,而它們在理想情況下本應該是可靠完整的。
?
下一個煩惱
——
概念性設計是有趣的,但尋找瑣碎的
bug
卻只是一項重復性的活動。伴隨著創造性活動的,往往是枯燥沉悶的時間和艱苦的勞動。程序編制工作也不例外。
?
最后一個苦惱,有時也是一種無奈
——
當投入了大量辛苦的勞動,產品在即將完成或者終于完成的時候,卻已顯得陳舊過時。可能是同事和競爭對手已在追逐新的、更好的構思;也許替代方案不僅僅是在構思,而且已經在安排了。
?
這就是編程。一個許多人痛苦掙扎的焦油坑以及一種樂趣和苦惱共存的創造性活動,其中的樂趣遠大于苦惱。