Refactoring English(《重構英文》):第 11 個月
一句話總結
我正式進度落後了。
你是新來的嗎?
嗨,我是 Michael(麥可)。我是軟體開發者,也是小型獨立科技事業的創辦人。我目前正在撰寫一本名為《重構英文:寫給軟體開發者的高效寫作》的書。
每個月,我都會像這樣發表一篇回顧,分享這本書與我整體工作狀況的進展。
重點回顧
- 我的書進度落後了。
- 一篇很棒的部落格文章啟發我重新思考便利的 shell 腳本。
- 遊戲 Oxygen Not Included 很好玩。
目標評分
每個月月初,我都會宣告想完成的事。以下是達成狀況:
為已讀過本書的讀者建立編輯優惠
- 結果:建立了一個說明優惠的頁面
- 評分:A
我建立了這個頁面,但刻意沒有把它當作搶先體驗的福利來宣傳。我的目標是與那些本來就對這本書充滿熱情的人合作,而不是用來吸引新客戶。我之所以在這篇回顧中公開這個優惠,是因為如果你有興趣到會閱讀這些每月更新,你正是那種我希望接洽、成為自由編輯客戶的對象。
自從我把標準費率調漲為兩倍、並為搶先體驗的客戶提供優惠以來,就還沒有任何自由編輯的客戶,但其實這樣也沒關係。結果我的寫作產量反而提升了,而且我希望達成的狀態是:如果自由編輯的工作會讓我無法寫書,那麼財務上的報酬必須讓我覺得這是值得的交易。
建立一份可聯繫的搶先體驗客戶名單
- 結果:建立了一份包含 63 位可聯繫客戶的名單
- 評分:A
我一直把「一對一聯繫更多讀者」設為目標。我發現要找到適合聯繫的客戶有不少阻力,所以我把目標簡化為只建立一份適合聯繫的客戶名單,依據以下標準:
- 他們的電子郵件地址不是 Gmail/Yahoo/Hotmail 或其他純郵件網域。
- 其電子郵件地址中的網域名稱確實對應到一個真實的網站。
基本上,我在尋找那些我可以瀏覽其網站、從而能對他們說出獨特且個人化內容的讀者。我根據這份名單聯繫了三位客戶。其中兩位回覆了,包括一位隨後參加了上個月的線上直播。我猜測個人化的郵件是他們出席的因素之一。因此,我在這種一對一的聯繫上持續獲得正向成果;我只是需要做得更多。
發布書籍的新章節
- 結果:發布了 2.5 個新章節
- 評分:A
我發布了「如何獲得針對設計文件的有意義回饋」、「動詞驅動句子」以及「保持正向」。關於設計文件的這篇在技術上算是半個章節,因為我計畫在正式出版時再擴充,加入更多關於設計文件內容的細節。
「如何獲得針對設計文件的有意義回饋」是我近期反應最冷清的一篇,不管貼在哪裡幾乎都沒有引起關注。我本來沒有百分之百的把握它會成功,但我以為有九成的機會。撰寫設計文件曾是讀者最感興趣的主題之一,所以我預期這個主題會有更多受眾。
《重構英文》指標數據
| 指標 | 2025 年 9 月 | 2025 年 10 月 | 變化 |
|---|---|---|---|
| 不重複訪客 | 7,283 | 22,398 | +15,115 (+208%) |
| 預購收入 | $484.71 | $570.75 | +$86.04 (+18%) |
| 顧問收入 | $429.60 | $0.00 | -$429.60 (-100%) |
| 贊助收入 | $48.25 | $48.25 | $0.00 (0%) |
| 總收入 | $962.56 | $619.00 | -$343.56 (-36%) |
10 月份的網站訪客是自三月大規模 Kickstarter 宣傳活動以來最多的一次。共有 22.3k 位不重複訪客。其中,93% 來自「形塑我的那些軟體文章」這篇我上個月發表的文章,我曾覺得成果不如預期。
我希望預購量能更線性地隨著訪客數成長,但我仍然很開心我的部落格文章為我的書帶來了新讀者。
我進度落後了
剛開始寫這本書時,我有信心會在 2025 年 10 月前完成。我對外宣布會在 12 月完成,只是為了給自己一些緩衝,但我懷疑自己會需要用到。
結果證明,我需要的緩衝還不只這些。
早在五月,我就寫下了預估每個章節所需的寫作時間。六個月後,我的預估有多準確呢?我低估了大約 40% 的工作量。
我原本以為整本書 114 小時就能寫完,但目前的估計(在已投入 99 小時寫作後)是 157 小時,意味著我還需要 58 小時才能完成。
我也曾估計自己每週可以寫五小時,但那也是錯的,因為六個月寫 99 小時,平均下來每週只有約 3.8 小時。
我通常一天最多只能寫一小時。我可以寫更久,但生產力會大幅下降,感覺第二個小時的生產力只有第一個小時的 20%。我有時能在下午擠出第二個小時,但那很少見。
我也沒有把那些經常發生、會讓我無法好好寫作的狀況考慮進去:
- 非書籍的寫作
- 例如部落格文章、回顧、筆記
- 托育變動
- 我們家平常有家人協助托育,但如果有人生病或無法幫忙、又找不到替補,我或太太就得請假來照顧。
- 自由編輯工作
- 我發現同一天很難兼顧兩者。
- 病假
- 休假
- 提不起勁寫作的日子
如果我假設自己持續以每週約 3.8 小時的速度前進,剩下的 58 小時寫作還需要 15.3 週,也就是會到 2026 年 2 月中。為了保留緩衝,我打算把目標訂為 2026 年 3 月底前完成這本書。
我對剩下章節的時間估計更有信心。書中前面的章節,例如「直指重點」(關於撰寫引人入勝的開場)比較有挑戰性,因為我必須把腦中模糊的思考過程具體化、精煉化。但像我個人的寫作流程或如何聘請編輯這類主題,就比較容易說明,因為它們是我實際採取的具體行動,而不是思考方式。
推薦內容
Evan Hahn(艾文·哈恩)的便利腳本
上個月我讀到最棒的一篇文章是艾文·哈恩的「我寫來每天都在用的腳本」。艾文·哈恩分享了幾個他為了讓身為開發者的生活更輕鬆而寫的腳本。我最喜歡的是:
copy:從 stdin 讀取並存入系統剪貼簿。- 我很慚愧地承認自己從沒想過可以這樣做。我以前都是像個野蠻人一樣用滑鼠從終端機複製。
pasta:從系統剪貼簿印出內容到 stdout。pastas:監看系統剪貼簿,並在每次變更時印出內容到 stdout。- 第一次讀這篇文章時,我忽略了這個腳本有多聰明。
- 你可以在一個終端機執行
pastas | wget --input-file=/dev/stdin,然後在瀏覽器中,只要不斷把網址複製到剪貼簿,pastas指令就會在你不用切換視窗的情況下,自動下載你複製的每個網址。
emoji:用文字搜尋 emoji。例如emoji cool會印出所有與「cool」這個概念相關的 emoji。
艾文·哈恩的許多腳本都是很棒的點子,我馬上就採用了。
更重要的是,我喜歡這篇文章背後的後設概念:開發者應該思考如何透過腳本來減少日常工作流程中的摩擦。它也拓展了我對「什麼可以算是腳本」的認知。像 emoji 這個腳本,我原本不會想到要做一個腳本,因為我沒有所有 emoji 及其描述的清單,但在讀了艾文·哈恩的文章後,我才意識到我可以用跟他一樣的方式產生那份清單。
它啟發我在自己的 PATH 中新增了一個 chat 腳本,用來向本機託管的 LLM 提問。我經常發現自己會打開瀏覽器去查詢命令列工具的語法,現在我可以直接留在命令列,輸入給 chat:
#!/usr/bin/env bash
# Read prompt from command-line arg.
PROMPT="$1"
# Add implicit context for the prompt.
PROMPT+=' Assume a Linux OS.'
PROMPT+=' Prefer command-line tools.'
PROMPT+=' Optimize for the simplest possible response.'
PROMPT+=' If there are multiple methods, show me the simplest one.'
PROMPT+=' If possible, show me just a code snippet with no additional explanation.'
# Use a default LLM model but allow the user to override it.
MODEL="${MODEL:-llama3.2:1b}"
ollama run $MODEL "$PROMPT"
例如,我昨天用它來回想如何縮放圖片:
它超級快!那個提示在我的系統上只花了 265ms 完成,所以比我切換到瀏覽器、搜尋、點擊查看答案,再切回來要快得多。
艾文·哈恩的姊妹篇「為何 alias 是我設定別名的最後選擇」與他的腳本文章相輔相成,論點是在 PATH 下的資料夾(例如 ~/.local/bin)中放置便利腳本,比使用 shell 別名更具彈性。
Oxygen Not Included
我不是活躍的玩家,但我每年會買一款電腦遊戲。我通常每款遊戲只玩 10 到 20 小時就會感到無聊,但我認為花 15 到 50 美元換來 10 到 20 小時的娛樂是很划算的。有些遊戲我會非常投入,玩上 25 到 100 小時(Stardew Valley、XCOM2、Cyberpunk 2077)。
Oxygen Not Included 將近一年來一直在我腦海中揮之不去,起因是看到Andrew Kelly(安德魯·凱利)和 Mitchell Hashimoto(米契爾·橋本)在談論他們有多喜歡這款遊戲。安德魯·凱利甚至宣稱它非常適合教導系統性思考,應該成為小學的必修課程。

我在 Oxygen Not Included 中的太空殖民地
我從 10 月開始玩 Oxygen Not Included,真的很好玩。我看過有人把它拿來跟 Factorio 和 Rimworld 比較,但我沒玩過那些遊戲。最讓我聯想到的是 Stardew Valley,特別是遊戲中的農耕部分。在這兩款遊戲中,你都在嘗試建立一個能生產某種東西的系統。一開始,你的工具很陽春,迫使你必須手動完成許多任務,但隨著進展,你會獲得更強大的工具,讓你能自動化更多工作並擴大產能。
Oxygen Not Included 最大的挑戰是它很難學。遊戲內對某些概念有說明,但很多東西我都得靠嘗試錯誤來學習。有 YouTube 教學,但長得離譜。像是,你到後來可以建造管線,但我搞不懂怎麼運作,所以去 YouTube 找教學,結果全都是 60 分鐘以上的影片!但那是因為他們在講解那種可擴展到百萬規模的超複雜管線系統,而我只是想蓋一個馬桶而已。
目前我找到最棒的教學是玩家 Jahws 寫的這份文字指南。
如果你是厲害的 Oxygen Not Included 玩家,請告訴我我在殖民地裡做的蠢事有哪些。
總結
完成了什麼?
- 發布了「如何獲得針對設計文件的有意義回饋」
- 為搶先體驗的讀者舉辦了關於設計文件的線上直播。
- 發布了兩個新章節:「動詞驅動句子」與「保持正向」。
- 發布了「暫緩升級到 Litestream 0.5.0」
- 發布了「用 JavaScript 讀我的部落格」
學到的教訓
- 我無法每週寫五小時的書。
- 在只專注寫書的那一週,我可以輕鬆寫滿五小時,但有許多潛在的中斷與相互競爭的優先事項。
下個月的目標
- 發布兩個新的書籍章節。
- 聯繫 10 位讀者。
- 打造一個能為 《重構英文》 網站帶來流量的工具或部落格文章。
隨機一篇部落格