tech-sjh

2010年6月10日 星期四

別當自作聰明的程式設計師(我認錯)

Bruce Sterling 轉貼了一篇標題為 Mea Culpa (我認錯) 的程式設計師反
省文。並重新定標題為別當自作聰明的程式設計師。原作者是從 1969
年就開始進入程式設計領域,已有超過四十年程式設計經驗的
Jonathan Edwards。Bruce Sterling 認為文中的反省並不只是作為單一
程式設計師的反省文,而是整個軟體產業需要一起面對的共業。

摘譯如下:

程式設計因為需要高度的分析能力,常常讓我們陷入一個誤區,為
了提高程式設計能力,而不斷讓優秀的程式設計師擁有強大的優越
感,自認為高人很多等,特別是相對於平庸的程式設計師,我們都
希望盡情炫耀自己的聰明才智,得到同儕的仰慕眼光。但在之後的
大半輩子裡,我痛苦的領悟到程式設計的重點在於態度、而非聰明
才智。

現實問題的磨難最容易激發出聰明才智的創意靈感,但結果的表象
雖然讓人驚喜於充滿創意的解決方案,實際上卻是後續長期維護災
難的開端。一個讓人眼睛一亮的程式設計方式,但卻可能深藏著無
數的深層炸彈,在日後一一引爆。

而在日後維護過程中,可能我們又會自我優越的認為,只有我才能
解決其他平庸者無法解決的精密設計疏失,比如特製的資料庫系統
,多線程(multi-threaded)的作業系統。

後來我把整個系統轉移到新框架上,解決掉讓人困擾了二十年的長
期維護工作。這痛苦的領悟與經驗讓我瞭解,程式設計不是當最聰
明的人,程式設計告訴我的是軟體是如此的複雜,讓全世界最聰明
的菁英都顯得微不足道;不要想單靠一己之力解決所有複雜的問題
程式設計的重點在於簡化與慣例。把這句話倒著刺青到你的額頭
上,這樣每次看到螢幕中的你都可以提醒自己這項原則。其中最重
要的是態度:努力工作、負責任、專注在實際問題,而非未經驗證
的猜測。

程式設計其實跟其他的工程與設計不盡相同。其中的主流文化常常
陷在前面說的自我感覺良好誤區。就像是格列佛遊記般,只是多了
大括號,中括號,縮排位置,要不要加小括號等議題。我們唯一同
意的是其他程式設計師有多愚蠢,但我們應該自己試著 Google 一下
"愚蠢的程式設計師",就會看到自己也名列其中。

程式設計技術的提升仰賴於文化的提升,我們能做的就是在自己的
工作中耐心、持續的付出、分享交流我們學習到的經驗與心得。

相關連結:

Programmers should stop being such smart-alecks

Mea Culpa

1 則留言:

  1. 發現並承認自己是如此得渺小與有限是如此之困難與痛苦... 也是另一段成長的開始.

    回覆刪除

版權宣告、免責聲明


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權.
免責聲明: 本文所載資料僅供參考,並不構成投資建議,
讀者閱讀或使用該資料所導致結果需要自擔風險與責任,
作者概不承擔閱讀人行為之任何風險與責任。
除非有特別宣稱,作者言論並不代表所屬任何團體、公司、或其他人意見。