追求神乎其技的程式設計之道 — 2022重編版
在2022回顧「 追求神乎其技的程式設計之道」
「追求神乎其技的程式設計之道」是我從2008年開始在我的個人blog上連載的一系列文章。當初只是因為想回答一位讀者問到關於如何學習寫程式的方法和經驗才開始撰寫的,沒想到後來就一連寫了三年,共有十二篇文章。
現在已經2022了,我決定開始一個新系列的文章「軟體工程師的修煉與成長」,所以就順便把舊文章從雜草叢生的舊blog整理一下搬來Medium,讓想要回顧舊系列的讀者可以有比較一致的閱讀體驗。在這個版本中,我把十二篇文章都合併起來,做了一點刪減,也加上了一些2022的註解。
寫這系列文章的過程中,我一邊回憶高中時期的成長,一面深深感受到過去的每一個經歷都在十幾年後慢慢顯露出它的意義。就像Steve Jobs在2005年Stanford大學的畢業典禮上說的一樣,過去的故事乍看之下是毫無關係的單一事件,但到了二十幾年後的今天,這些「點」就慢慢的被連起來變成了一條很清晰的線,指引我走到了現在。而這系列的文章就在這個適當的時機,記錄下我當時最純粹的想法和心情。
從我國中時用Visual Basic寫出第一個遊戲「黑白棋」時,我就完全迷上了電腦的力量和寫程式的快感。雖然我現在是全職的軟體工程師,但變得資深的壞處是寫程式的時間越來越少。但即使如此,我還是會留時間給自己寫程式,因為我還是非常樂在其中,可以專心寫程式不用開會反而是一種休息和調劑。寫程式是一條無止境的道路,不只是科學和工程,更是一種藝術。即使這系列文章已經結束,但我還是在追求「神乎其技」的半路上。雖然還有很多要學的,但我也希望能讓初學者更容易看清楚這條路的面貌,避免陷入盲目追求新技術的死巷中。
一切的開始
如果是從DOS時代開始玩電腦的玩家,應該都知道當初DOS有兩個內建的QBASIC小遊戲:貪食蛇和猩猩丟香蕉。這兩個小遊戲是許多人兒時共同的回憶,我還記得我國小時曾有幾堂電腦課,當時老師在台上嘰哩瓜啦的不知道在教什麼,而台下每台電腦都是貪食蛇或丟香蕉的畫面。(老師對不起,其實我就是帶頭做亂的罪魁禍首…)。
微軟把這兩個QBASIC遊戲附在DOS內對我產生了莫大的影響,那是我第一次發現到原來QBASIC和不只是像PE2能打打字而已,QBASIC竟然能把一堆看起來像咒語的文字變成遊戲!幸運的是我家剛好有本第三波的QBASIC入門書,沒事我就自己拿起來翻著看,雖然當時太小,即使把整本都看完了還是搞不懂貪食蛇是怎麼寫出來的,但也誤打誤撞知道了原來這就是程式設計,原來我能直接把貪食蛇檔案內的一個數字改掉就能有幾百條命可以死,原來學寫程式就能做出電腦遊戲…。對小孩子而言,知道這些事就像告訴他魔術師袖子裡的秘密一樣,我一天到晚興奮地要老爸帶我去書局看電腦書,彷彿真的可以搞懂電腦螢幕背後的一切魔法一樣,我也夢想著有一天能寫出自己的遊戲。但當時我沒想到的是,我還真的花了十幾年的時間在探索電腦的魔法…。