關於「寫程式」這份工作,尋求進步的方法大概有 31415926 種,不過每個人都必須要找到屬於自己的「精神時光屋」,才能有顯著的進步。
過去我們曾介紹過一些方法,包含「從少寫一點程式碼開始」、「大型科技公司的 code review」,以及「Stack Overflow 上最常被提到的書籍」等都非常受歡迎,在這邊提出給大家做參考。
而本次要介紹給各位工程師的進步方法,是寫日記,也就是「logbook」。
撰寫 logbook,用自然語言增進你的程式語言
logbook 有一點像是獨立的註解,是一個輕便的文件讓你快速製作紀錄,大部分的編輯器內應該都有相對應的 logbook。
當遇到「需要解決問題」時就應該紀錄至 logbook,包含工作項目以及遭遇 bug 時,至於 logbook 內要寫什麼呢?
應該包含:
1. 寫下該解決的問題
2. 是先寫下解決方法,並描述你解決的方式
3. 記錄具體執行上述方法的過程
4. 記錄發生什麼事情,以及如何優化
聽起來很麻煩,很多時候 bug 都解不完了,竟然還要做紀錄?沒錯,透過在著手問題前先記錄,能夠逼迫自己先試想一次解決問題的流程。
最麻煩的地方可能在第 4 點「如何優化」的部分,可能需要花一點時間與人討論,或者是找尋相關的資料。
在初期可能需要花一點時間,不過長久累積下來將為你建立一座不小的知識寶庫,不只能少走一點冤枉路,往後遇到相似的問題也能夠輕鬆地解決。除此之外,撰寫 logbook 還有一些好處:
1. 逼迫自己遇到問題時學會「拆解問題」,將問題打碎成小問題並一一擊破。
2. 透過紀錄能夠在分心或是上班時,參考 logbook 快速回復到工作狀態。
3. 精進學習速度。透過觀察自己解決問題的方式,清楚觀察哪些方法可行、哪些不可行。
其實本方法不只適用於 coding,似乎各種學習都能用上,總結起來就是: 規劃、紀錄、優化,三大步驟 。
參考:logbook 應該要每天開一頁新的,並以日期命名
而數位銀行 Monzo 的後端工程師 James Routley 便是 logbook 的愛好者,他每天都會建立一頁新的 logbook,並直接在 Vim 中建立了功能函數,能夠快速為每一天的工作打開一個新的 logbook,並以當天的日期命名。
function lb() {
vim ~/logbook/$(date ‘+%Y-%m-%d’).md
}
——
參考資料:routley.io;圖片來源:Pxhere, CC Licensed。
關於寫程式,我們推薦你看相關的文章:
哪個程式語言最先死:Python 只剩 25 年可活,C 語言卻可以活到 2062?
【問卦】在 Google、Facebook、Uber 工作的強者們會睡午覺嗎?
Stack Overflow 大調查:工程師們最討厭的程式語言前三名是?