Refactoring English: Month 11

Michael Lynch

Refactoring English(《重構英文》):第 11 個月

一句話總結

我正式進度落後了。

你是新來的嗎?

嗨,我是 Michael(麥可)。我是軟體開發者,也是小型獨立科技事業的創辦人。我目前正在撰寫一本名為《重構英文:寫給軟體開發者的高效寫作》的書。

每個月,我都會像這樣發表一篇回顧,分享這本書與我整體工作狀況的進展。

重點回顧

  • 我的書進度落後了。
  • 一篇很棒的部落格文章啟發我重新思考便利的 shell 腳本。
  • 遊戲 Oxygen Not Included 很好玩。

目標評分

每個月月初,我都會宣告想完成的事。以下是達成狀況:

為已讀過本書的讀者建立編輯優惠

  • 結果:建立了一個說明優惠的頁面
  • 評分:A

我建立了這個頁面,但刻意沒有把它當作搶先體驗的福利來宣傳。我的目標是與那些本來就對這本書充滿熱情的人合作,而不是用來吸引新客戶。我之所以在這篇回顧中公開這個優惠,是因為如果你有興趣到會閱讀這些每月更新,你正是那種我希望接洽、成為自由編輯客戶的對象。

自從我把標準費率調漲為兩倍、並為搶先體驗的客戶提供優惠以來,就還沒有任何自由編輯的客戶,但其實這樣也沒關係。結果我的寫作產量反而提升了,而且我希望達成的狀態是:如果自由編輯的工作會讓我無法寫書,那麼財務上的報酬必須讓我覺得這是值得的交易。

建立一份可聯繫的搶先體驗客戶名單

  • 結果:建立了一份包含 63 位可聯繫客戶的名單
  • 評分:A

我一直把「一對一聯繫更多讀者」設為目標。我發現要找到適合聯繫的客戶有不少阻力,所以我把目標簡化為只建立一份適合聯繫的客戶名單,依據以下標準:

  1. 他們的電子郵件地址不是 Gmail/Yahoo/Hotmail 或其他純郵件網域。
  2. 其電子郵件地址中的網域名稱確實對應到一個真實的網站。

基本上,我在尋找那些我可以瀏覽其網站、從而能對他們說出獨特且個人化內容的讀者。我根據這份名單聯繫了三位客戶。其中兩位回覆了,包括一位隨後參加了上個月的線上直播。我猜測個人化的郵件是他們出席的因素之一。因此,我在這種一對一的聯繫上持續獲得正向成果;我只是需要做得更多。

發布書籍的新章節

  • 結果:發布了 2.5 個新章節
  • 評分:A

我發布了「如何獲得針對設計文件的有意義回饋」、「動詞驅動句子」以及「保持正向」。關於設計文件的這篇在技術上算是半個章節,因為我計畫在正式出版時再擴充,加入更多關於設計文件內容的細節。

「如何獲得針對設計文件的有意義回饋」是我近期反應最冷清的一篇,不管貼在哪裡幾乎都沒有引起關注。我本來沒有百分之百的把握它會成功,但我以為有九成的機會。撰寫設計文件曾是讀者最感興趣的主題之一,所以我預期這個主題會有更多受眾。

《重構英文》指標數據

指標2025 年 9 月2025 年 10 月變化
不重複訪客7,28322,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 ValleyXCOM2Cyberpunk 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 玩家,請告訴我我在殖民地裡做的蠢事有哪些。

總結

完成了什麼?

學到的教訓

  • 我無法每週寫五小時的書。
    • 在只專注寫書的那一週,我可以輕鬆寫滿五小時,但有許多潛在的中斷與相互競爭的優先事項。

下個月的目標

  • 發布兩個新的書籍章節。
  • 聯繫 10 位讀者。
  • 打造一個能為 《重構英文》 網站帶來流量的工具或部落格文章。

原文由 Michael Lynch 發布

本文章由 muse-spark-1.2-contributor 進行翻譯