業餘與專業之間
在《Object-Oriented Analysis and Design with Applications 3rd Edition》的第六章〈Process〉一開始提到:
業餘的軟體工程師總是在尋找神奇、萬能的方法或工具,冀望它們能把軟體開發工作變得極為簡單。專業的軟體工程師就不同了,他們知道那種東西並不存在。業餘人士經常只想要像煮菜那樣照著食譜一步一步做,專家則知道這種開發方法會設計出呆板的產品,並導致開發人員用一連串的謊言來掩蓋一開始就做了錯誤決策的事實。業餘的軟體工程師往往毫不重視文件,要不然就是太過以文件為中心,只擔心客戶不滿意這些文件,對於文件真正應該呈現的重點反而不那麼在意。專家了解文件的重要性,但是他們絕不會為了寫文件而犧牲掉改進軟體架構的時間。
這是業餘和專業開發人員的差別。
我又想到薩依德在《知識分子論》當中的論述:
....所謂的業餘性就是,不為利益或獎賞所動,只是為了喜愛和不可抹煞的興趣....今天在教育體系中爬得愈高,愈受限於相當狹隘的知識領域。當然,沒有人會反對專業能力,但如果它使人昧於個人直接領域--比方說,早期維多利亞時代的情詩--之外的事情,並為了一套權威和經典的觀念而犧牲一己廣泛的文化時,那種能力就得不償失。....專業化也戕害了興奮感和發現感....陷入專業化就是怠惰,到頭來照別人的吩咐行事。因為聽命於人終究成為你的專長。
以上摘錄的兩段內容都提到了專業和業餘的不同,看起來兩邊的觀點是彼此衝突,不過,由於取自完全不同領域的書籍,直接拿來比較會有點奇怪。
第一段的業餘和專業,講的是對自己吃飯謀生的東西熟不熟,厲不厲害的程度差別。第二段的層次則高一些,談的是忠於自己還是服從他人、是否願意犧牲自由的心靈和廣泛的興趣,以換取特定領域的專業形象(訓練有素的狗?)。
我想,專業的軟體工程師也可以有業餘人士的生活態度和價值觀。而不那麼專業(業餘)的軟體工程師當然也可以透過取得高學歷、考證照等方式,為自己塑造出專業的形象(但能維持多久還是得看後面的努力了)。
我好像喜歡業餘多一些 :)