英文原文:Dad and the Ten Commandments of Egoless Programming,翻譯:外刊IT評論
我22歲,一個在大學裡攻讀美術設計的四年級的學生。爸爸62歲,一個很老的爸爸。早在世紀60年代他就在田納西理工大學程式設計,他在打孔紙帶上做FORTRAN開發。他知識豐富。
這個學期我才剛剛開始接觸程式設計,而我的整個腦子全被它吸引住了。程式設計很神奇,很強大,在很多方面比影像設計更富創造性(我會在另外的文章裡談論這個話題)。
在我假期回到家時,爸爸向我分享了無我程式設計的十條誡律。他把它列印出來,逐條和我討論。這是在他意外去世前我們僅有的關於程式設計的討論。也許這是讓我對此念念不忘的原因。
來自寫於1971年的《程式開發心理學 | The Psychology of Computer Programming 》,下面就是這無私程式設計十條誡律:
1、理解和接受自己會犯錯誤。關鍵是要儘早發現,在錯誤進入到最終產品前發現它們。幸運的是,除了我們少數幾個在噴氣推進實驗所開發火箭導航系統的人外,在軟體行業中犯錯誤通常不會導致災難性事故。我們可以,也應該從錯誤中吸取教訓,微笑,並繼續前進。
2、你不是你的程式碼。記住程式碼審查的全部目的就是去發現問題,相信問題會被我們發現。當有問題疏漏時不要自責。
3、不管你對“空手道”有多瞭解,一定會有人知道的更多。如果你去問,這樣的人可以告訴你一些新的招數。從別人那裡尋找和接受新的知識,特別是那些你認為不需要的知識。
4、不要在沒有討論的情況下重寫程式碼。在“調整程式碼”和“重寫程式碼”之間有一條很細緻的界限,你應該在程式碼審查的制度下做風格上的調整,不要獨斷專行。
5、對那些不如你的人要尊敬,禮遇,有耐心。經常跟開發人員打交道的非技術人士通常持有這樣的觀點:程式設計師憑藉一技之長狂放不羈。不要讓你的發怒和缺乏耐性讓他們心中的這種形象加深。
6、這世界上唯一不變的就是變化。開放思考,面帶微笑的接受它。把需求上、平臺或工具裡的每個改變都視作一種新的挑戰,而不是把它們當作大麻煩來抵制。
7、真正的權威來自知識,而不是職位。知識造就權威,權威帶來尊敬——所以,如果你想在一個無私的環境中獲得尊敬,去培養自己的知識吧。
8、為信仰奮鬥,但我文雅的接受失敗。要理解,有時候你的想法會被拒絕。即使你是對的,你也不要報復或說“I told you so.”千萬不要讓你心愛的被拋棄的想法變成殉道者或抱怨素材。
9、不要成為“角落裡的程式設計師。”不要成為隱藏在黑暗辦公室裡、只因為口渴才出現的人。藏在角落的里程式設計師短視、與世隔絕、不受控制。這樣的人在公開的、合作的工作環境中發不出聲音。參與到交流中,成為你的辦公室團體中的一員。
10、批評程式碼而不是人——對編碼人友善,但不要對程式碼友善。儘可能的讓你的批評具有積極性,以改進程式碼為目標。批評要聯絡本地標準,程式設計規格文件和提高後的效能等。
這個十條誡律至今伴隨這我。它讓我成為了一名更好的程式設計師。有時我在想,如果爸爸還在我身邊,他還會給我哪些建議?雖然我不知道,但我相信,他會為我一直記住這些而高興的。
更多關於爸爸的資訊,請閱讀Frank Bush對計算機業的貢獻,這是有他在田納西理工大學的同事們收集編輯的。