昨天晚上, 仔仔的一個朋友打電話給我, 問我如果他想成為一個程式設計師, 除了寫程式的修為之外, 還有什麼必須要注意的. 這位朋友原本是在Mac 平台下一個相當強的美工人員, 有多強呢? 他一張圖的價碼大約是我半個月的薪水! 大約半年前仔仔打電話給我, 說要介紹個朋友給我認識, 於是就這麼認識他了. 當時他因為對美工繪圖開始感到無力感, 據他所說, 是沒辦法讓自己再進步了! 而甚迷Palm的他在偶然的機會中, 認識一位專門寫Palm應用程式的hacker, 從此對程式設計產生興趣, 於是便毅然決然的轉業. 他先花了半年的時間參加台大資工的進學班, 學習C/C++ 語言, 半年到了, 他應徵上一家作資料庫backend 的公司.
這樣的問題, 對我來說真是大哉問, 在和他閒聊之中, 我一直在想著到底有什麼是很重要的? 我電話中沒有回答他, 因為我也不甚了了. 但是掛了電話後, 一邊寫著Java的我就回憶起了一個想法: 程式設計師的尊嚴!
那也是往事了(怎麼最近老想起往事?) , 當時我剛開始接case時, 大概第二個還是第三個吧! 我被assign到另外一個前輩底下, 作一些比較核心的規畫. 當時因為時間很敢, 於是程式也寫的亂亂的. 有次這位前輩到淡水拜訪朋友, 順便到我這邊看一下我的進度, 當他看到我的程式碼時, 他問道 “這程式有些亂, 你必須要花時間改一改” , 我告訴他, 時間來不及, 我只能專注在能不能跑跟有沒有問題, 或許不會有空去琢磨這些枝微末節的事情. 平常風趣的他扳起了臉孔, 嚴肅的說 “你不能喪失一個工程師的尊嚴啊!”, 當時我只覺得他小題大作, 商業的東西, 賺錢的東西, 幹嘛去計較這些呢? 能run 就運氣好了.
接著我又想起了只是前陣子發生的事情. 當時我要研擬一個solution, 把現有已經完成80% 的某專案, 加入一個我早先寫好的module, 並且趁這個機會去research一下embeded module的模式跟規格. 當時我找了負責這個案子的核心工程師, 請他吃頓飯, 順便跟他請教目前的class/module狀況, 以便我能夠套用整體系統的資源, 並且能更緊密的結合. 讓我感到很訝異的是, 這位工程師雖然程式寫作的速度跟技巧都不算公司的頂級, 但是他寫的東西井然有序, 在沒有cvs 管理下, 光看註解和source, 就可以看出整個研發過程所碰到的問題. 並且他替每個source附上一個流程圖和更新沿革, 看他的程式碼雖然會找到很多不是這麼合適的寫法, 但是整體來說, 他寫的東西我相當好應用. 我相當佩服他的認真與專注, 衷心的請問他怎麼在時間緊迫跟產品壓力下依然如此的遵守規格. 他只說了 “這是工程師的本分, 不是嗎? “
於是對這位朋友, 現在我有答案了! 答案就是, 維護自己身為程式設計師的尊嚴!
尊嚴不是指面子或是什麼的, 而是指身為某個身份而讓自己為這種身份感到自豪與驕傲的特質. 守住這種特質, 就守住了自己的本分, 自然而然的, 就會在本職上受到他人的尊敬.
於是我想到自己, 想到同事們, 想到大家, 真是替自己感到羞愧! 原來, 我根本還是個不成熟的工程師啊! 貪快亂寫, 試誤除錯, 缺乏註解和文件, 圖方便模仿別人的source code….etc, 真是汗顏!