Refactoring English: Month 11

Michael Lynch

Refactoring English:第 11 個月

原文由 Michael Lynch 發布,訂閱此部落格

一句話總結

我正式進度落後了。

第一次來嗎?

嗨,我是 Michael。我是一名軟體開發者,也是小型獨立科技公司的創辦人。我目前正在寫一本書,書名是Refactoring English: Effective Writing for Software Developers

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

本月重點

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

目標評分

每個月月初,我都會訂下想完成的目標。以下是這個月的達成狀況:

為已閱讀本書的讀者設定編輯服務折扣

  • 結果:已建立說明折扣的頁面
  • 評分:A

我確實建立了這個頁面,但刻意沒有把它當作搶先體驗的福利來宣傳。我的目標是與那些本身就對這本書抱有熱情的人合作,而不是用它來吸引新客戶。我會在這篇回顧裡公開這個折扣,是因為如果你對我的工作感興趣到會閱讀這些每月更新,你大概就是我會想合作的自由編輯客戶類型。

自從我把標準費率調漲一倍、並為搶先體驗的客戶提供折扣以來,就還沒有接到自由編輯的案子,但這樣其實沒關係。結果我的寫作產量反而增加了,而且我希望收支能算得過來——如果自由編輯的工作會讓我無法寫書,至少報酬要讓我覺得這個取捨是值得的。

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

  • 結果:已整理出 63 位可聯繫的客戶
  • 評分:A

我一直把「一對一聯繫更多讀者」設為目標。我發現要找出適合聯繫的客戶阻礙很多,所以把目標簡化為僅僅整理出一份適合我主動聯繫的客戶名單,篩選標準如下:

  1. 他們的電子郵件地址不是 Gmail/Yahoo/Hotmail 或其他純郵件服務的網域。
  2. 電子郵件地址中的網域名稱實際上有對應的網站。

基本上,我是在找那些我可以瀏覽其網站、進而對他們說些獨特且個人化內容的讀者。根據這份名單,我聯繫了三位客戶,其中兩位有回覆,包含一位後來參加了上個月的線上直播。我猜那封個人化的郵件是他們出席的原因之一。所以,這種一對一的聯繫持續帶來正面的回饋;我只是需要做得更多。

發布本書的一個新章節

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

我發布了〈如何針對你的設計文件取得有意義的回饋〉、〈動詞驅動句子〉以及〈保持正面〉。其中關於設計文件的算是半個章節,因為我計畫在正式出版的書中再擴充,加入更多關於設計文件應包含內容的細節。

〈如何針對你的設計文件取得有意義的回饋〉是我近期反應最冷淡的一篇,不管貼在哪裡幾乎都沒有引起迴響。我本來就不是百分之百有把握它會受歡迎,但我以為有九成的機會會成功。設計文件寫作是讀者最感興趣的主題之一,所以我原本預期會有更多人關注這個主題。

Refactoring English 數據指標

指標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 月份的網站訪客是自 3 月份大規模 Kickstarter 宣傳以來最高的一次。共有 22,300 位不重複訪客。其中 93% 是透過〈形塑我的那些軟體文章〉而來,也就是我上個月發布、但我覺得表現不如預期的那篇文章。

我當然希望預購量能隨著訪客數更線性地成長,但我還是很開心部落格文章能為我的書帶來新讀者。

我進度落後了

剛開始寫這本書時,我很有信心能在 2025 年 10 月前完成。我對外宣布會在 12 月完成,只是想給自己留一點緩衝,但當時我懷疑自己根本不需要用到。

結果證明,我不僅需要緩衝,還遠遠不夠。

早在 5 月,我就寫下了對每個章節所需寫作時間的預估。六個月後,準確度如何呢?我低估了大約 40% 的工作量。

我原本以為 114 小時就能寫完整本書,但在已經寫了 99 小時之後,我目前的估計是總共需要 157 小時,也就是說我認為還需要再花 58 小時才能完成。

我原本也估計每週可以花五小時寫書,但這也錯了,六個月寫了 99 小時,平均下來每週大約只有 3.8 小時。

我通常一天最多只能寫一小時。寫更久也不是不行,但效率會大幅下降,我覺得第二個小時的產出大概只有第一個小時的兩成。偶爾下午能硬擠出第二個小時,但很少見。

我當初也沒把一些經常發生、會讓我無法好好寫作的狀況算進去:

  • 非書籍寫作
    • 例如:部落格文章、回顧、筆記
  • 托育安排的變動
    • 我們家平常有家人幫忙照顧小孩,但如果有人生病或臨時無法幫忙、又找不到替代人選,就得由我或我太太請假來顧。
  • 自由編輯工作
  • 病假
  • 休假
  • 提不起勁寫作的日子

如果假設我維持每週約 3.8 小時的進度,剩下的 58 小時還需要 15.3 週,也就是會到 2026 年 2 月中。為了保險起見,我把目標定為在 2026 年 3 月底前完成這本書。

對於剩下章節的時程,我現在更有把握了。像〈直指重點〉(關於如何寫出吸引人的開頭)這類前期的章節比較有挑戰性,因為我得把腦中模糊的思考過程具體化、精煉化。但像我個人的寫作流程或如何聘請編輯這類主題就比較好說明,因為它們是我實際採取的具體行動,而不是抽象的思考方式。

推薦

Evan Hahn 的便利腳本

上個月我讀到最棒的一篇文章是 Evan Hahn 的〈我寫來天天用的腳本〉。Evan 分享了幾個他為了讓身為開發者的生活更輕鬆而寫的腳本。我最喜歡的是:

  • copy:從 stdin 讀取並存入系統剪貼簿。
    • 老實說我有點不好意思承認自己從沒想過可以這樣做。以前我總是像野人一樣用滑鼠在終端機裡複製。
  • pasta:從系統剪貼簿印出到 stdout。
  • pastas:監看系統剪貼簿,每當內容改變就印出到 stdout。
    • 第一次讀這篇文章時,我忽略了這個腳本有多聰明
    • 你可以在一個終端機執行 pastas | wget --input-file=/dev/stdin,然後在瀏覽器裡不斷複製網址到剪貼簿,pastas 指令就會自動下載你複製的每一個網址,完全不用來回切換視窗。
  • emoji:用文字搜尋 emoji。例如 emoji cool 就會印出所有與「cool」相關的 emoji。

Evan 的很多腳本點子都很棒,我馬上就採用了。

更重要的是,我喜歡 Evan 這篇文章背後的核心理念:開發者應該思考如何用腳本來消除日常工作流程中的阻礙。這也拓展了我對「什麼可以做成腳本」的想像。像 emoji 這個腳本,我本來根本不會想到要做,因為我手邊沒有所有 emoji 及其描述的清單,但在讀了 Evan 的文章後,我才意識到我其實可以用跟 Evan 一樣的方法來產生那份清單。

這啟發我在 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 就完成,比我切換到瀏覽器、搜尋、點開答案再切回來要快得多。

Evan 的另一篇姊妹作〈為什麼「alias」是我設定別名的最後選擇〉也和這些腳本相輔相成,文中主張把便利腳本放在 PATH 底下的資料夾(例如 ~/.local/bin 底下)比使用 shell alias 更有彈性。

Oxygen Not Included

我不是個活躍的玩家,但每年會買一款電腦遊戲。我通常每款遊戲玩個 10 到 20 小時就會膩,但我覺得花 15 到 50 美元換來 10 到 20 小時的娛樂很划算。有些遊戲我會特別投入,玩上 25 到 100 小時(Stardew ValleyXCOM2Cypberpunk 2077)。

Oxygen Not Included 在我心裡掛了快一年,自從我看到 Andrew Kelly 和 Mitchell Hashimoto 談論他們有多喜歡這款遊戲之後。Andrew Kelly 甚至說它太擅長教導系統性思考,應該在小學獨立開成一門必修課。

我在 Oxygen Not Included 中的太空殖民地

我從 10 月開始玩 Oxygen Not Included,真的很好玩。我看過有人把它拿來跟 Factorio 和 Rimworld 比較,但我沒玩過那兩款。最讓我聯想到的其實是 Stardew Valley,尤其是其中的農場部分。兩款遊戲都是要打造一套能生產東西的系統。遊戲初期,你只有陽春的工具,很多事都得手動完成,但隨著進展,你會取得更強大的工具,讓你能自動化更多工作、擴大生產力。

Oxygen Not Included 最大的挑戰在於它很難上手。遊戲內對某些概念有說明,但很多東西我還是得靠反覆嘗試來摸索。YouTube 上有教學影片,但都長得離譜。比方說,玩到後來你可以蓋水管,但我搞不懂怎麼運作,上 YouTube 一查,全都是 60 分鐘以上的教學!原因在於他們都在講那種能擴展到百萬規模的超複雜水管系統,而我只想蓋一座馬桶而已。

目前為止我找到最棒的教學是玩家 Jahws 寫的這份文字指南

如果你是厲害的 Oxygen Not Included 玩家,請告訴我我的殖民地有哪些蠢操作

總結

完成了什麼?

學到的教訓

  • 我沒辦法每週花五小時寫書。
    • 如果那一週只寫書,我可以輕鬆做到五小時,但現實中有太多可能的干擾和互相競爭的優先事項。

下個月的目標

  • 發布兩個新的書籍章節。
  • 聯繫 10 位讀者。
  • 製作一個能把人帶到 Refactoring English 網站的工具或部落格文章。

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

留言