Thomas Guest
Hoppy 的故事#
作者需要幫忙,走到公認的程式設計專家 Paul Lee(網名 Hoppy)的座位前求助。Hoppy 正在研究一個大檔案中的大函式裡的一個條件區塊——作者花了整個早上試圖找出一種方法讓 x 為負數,但大檔案屬於大專案,不斷重新編譯和實驗令人精疲力竭。
出人意料的解法#
Hoppy 承認他也不確定答案。但令作者驚訝的是,他沒有去翻 K&R(經典 C 語言參考書)。相反地,Hoppy:
- 將程式碼片段複製到一個新的編輯器緩衝區
- 重新縮排,包裝成一個函式
- 很快就編寫了一個
main函式——不斷迴圈,提示使用者輸入值,傳遞給函式,然後印出結果 - 將緩衝區存為新檔案
tryit.c
接下來的步驟出奇簡單:
$ cc tryit.c && ./a.out幾分鐘前才構思的程式已經在運行了。他們試了幾個值,確認了作者的懷疑(他的判斷是對的),然後 Hoppy 才交叉參照了 K&R 的相關章節。
回到 Hello, World#
回到自己的座位後,作者關閉了 IDE,開始反思。他已經習慣在大專案中的大產品上工作,以至於開始認為那就是他應該做的全部事情。但通用電腦也能做小事情。他打開文字編輯器,開始寫下:
#include <stdio.h>
int main()
{
printf("Hello, World\n");
return 0;
}通用電腦可以做小事情。不要因為習慣了大型專案,就忘記了快速寫一個小程式來驗證想法的力量。
核心啟示#
- 面對不確定的問題時,與其在龐大的程式碼庫中反覆嘗試,不如隔離問題、寫一個小程式來實驗
- Hoppy 不依賴 IDE,用簡單的編輯器和命令列就能快速驗證
- 有時候最有效率的做法是回到最基本的工具——文字編輯器和編譯器
- Hello, World 不只是入門練習,它代表一種解決問題的心態:從最小的可運行程式開始