Thomas Guest

Hoppy 的故事#

作者需要幫忙,走到公認的程式設計專家 Paul Lee(網名 Hoppy)的座位前求助。Hoppy 正在研究一個大檔案中的大函式裡的一個條件區塊——作者花了整個早上試圖找出一種方法讓 x 為負數,但大檔案屬於大專案,不斷重新編譯和實驗令人精疲力竭。

出人意料的解法#

Hoppy 承認他也不確定答案。但令作者驚訝的是,他沒有去翻 K&R(經典 C 語言參考書)。相反地,Hoppy:

  1. 將程式碼片段複製到一個新的編輯器緩衝區
  2. 重新縮排,包裝成一個函式
  3. 很快就編寫了一個 main 函式——不斷迴圈,提示使用者輸入值,傳遞給函式,然後印出結果
  4. 將緩衝區存為新檔案 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 不只是入門練習,它代表一種解決問題的心態:從最小的可運行程式開始