雖然不是基督徒
但是寫程式的時間越久
就越覺得程式設計是一種原罪

剛開始學習程式時
什麼都好新鮮
程式只要能動就覺得好快樂

就像牙牙學語的嬰兒
還在了解這個花花世界
對於小嬰兒的任何行為
不會有人認為他們有罪

而當進入職場
真正成為工程師之後
才會慢慢開始理解
什麼叫做Clean Code
何謂最佳軟體實踐

於是我跟著前人的腳步
開始去了解Design Pattern
OOP、SOLID等各種原則
想辦法提升自己的程式碼

如同小朋友在學校中
學習怎麼明辨是非
理解人性的貪婪自私
並建立正確的價值觀

不過真正的考驗
是在工作幾年後
當那些爛熟於心的諸多教條
在碰上實際專案後
無法信守時的無力感

原因不外是時程壓力
Legacy Code
或是奇怪的商業需求
但更多時候
是自己的能力不足
無法將程式碼改成理想的樣子

一如古今中外的經典中
都教人不能說謊
但你知我知
真實世界不是這樣運作的

於是工程師在做需求的過程
也同時在犯錯
或是所謂的技術債
或是還沒被發現的Bug

而當眾人日積月累的罪愆
卻沒有救世主來扛下一切時
最後的結果就是業力引爆
炸死接手的最後一人
即使那些錯誤沒有一個是他造成的

寫程式和原罪有差別的
應該就是沒有所謂的程式之神
能夠寬恕我們犯下的過錯
只能祈禱天譴末日
不要降臨在我們這一代身上

對於程式的認知
一開始認為是科學
因為電腦沒有情緒
輸入A,輸出永遠是B
一板一眼

到後來看到各種神奇演算法時
覺得程式是一種藝術
用最精煉的文字
來詮釋最複雜的概念

現在的我則是覺得
程式是一種哲學
因為它沒有真正的對錯
只有你所選擇的價值觀

每個人的觀念不同
在一個公司奉為圭臬的信條
在另一個公司
可能被視為綁手綁腳的桎梏

但最令人無所適從的是
今天的金科玉律
很有可能在數十年後
就落得一文不值
不變的只有充滿Bug的程式

寫程式就像原罪
我們都不是聖人
不可能寫出沒有Bug的程式
反之還常常被Bug給炸到

即便如此
我還是打從心底喜歡寫程式
每次挑戰新功能
當程式碼從壞掉
到真正能運作的那一瞬間
那份純粹的快樂
就和第一次印出Hello World的喜悅
沒有什麼分別

而這份純真的快樂
讓我有在遇到瓶頸困惑時
有動力再繼續走下去
即使知道寫出來的程式碼不完美

就像這個世界上
處處都是亂七八糟的事情
但活在這世上的我
依舊覺得它十分美麗