Refactoring English: Month 7

Michael Lynch

重构英语:第 7 个月

一句话总结

同时应付太多半途而废的任务。

亮点

  • 我在寻找方法,限制自己同时应付的半成品任务数量。
  • 我头脑风暴了如何与更多早期读者交流。
  • 我难以接受 Gleam 语言中的一个设计决策。

目标评分

每个月初,我都会宣布自己想要完成的目标。以下是我对这些目标的完成情况:

为用户提供一种更低门槛的图书预购方式

  • 结果:从 Kickstarter 预购切换到了 Stripe 支付链接。
  • 评分:A

最初的预售我是通过 Kickstarter 进行的,所以后续的预购我决定就继续用它。几个月后,我发现 Kickstarter 要求客户创建账户才能购买这本书,这增加了很大的门槛,打消了不少人的购买意愿。

切换到 Stripe 似乎对销量产生了影响:切换后 30 天内在 Stripe 上有 22 笔预购,而只用 Kickstarter 时只有 7 笔。不过这不是完全公平的对比,因为切换到 Stripe 之后我还发布了一个新的样章。

在图书网站上发布一个新样章

这一章在 Lobsters 上反响不错,在 Hacker News 上表现也很好,但被版主撤下了首页。我怀疑是 Hacker News 的用户不喜欢文中对营销的强调,于是举报了它。

我从这一章得到的反馈比之前任何一章都更有用。其中很多是负面反馈,但确实很有帮助,因为我觉得那些批评是有道理的。我根据反馈修改了这篇文章,这些讨论还给了我两个新章节的灵感(“简要介绍你的产品”“把数字变成图表”)。

与至少 10 位读者进行视频通话

  • 结果:与三位读者进行了视频通话。
  • 评分:D

我在这个目标上远远没有达标。部分原因是我整个月只安排了两次通话,但另一个问题是我没能吸引早期读者参加已有的通话。

Refactoring English 数据指标

数据指标回来了!

我曾经每月公布我的财务数据,但在卖掉 TinyPilot 后就停止了,因为没有什么值得报告的有趣数字。现在预售正在进行,我又有了可以分享的相关数据。

指标2025 年 5 月2025 年 6 月变化
独立访客数2,9866,574+3,588(+120%)
预购收入$193.20$597.24+$404.04(+209%)
咨询收入$0.00$242.45+$242.45(+inf%)
赞助收入$48.25$48.25$0.00(0%)
总收入$241.45$887.94+$646.49(+268%)

我很高兴看到访客增长带来了销售增长,尤其高兴的是销售额的增长超过了访问量的增幅。我不确定能否持续下去,但这将是一个很好的信号,说明人们喜欢这本书到愿意推荐给别人的程度。

如何减少同时进行的半成品草稿?

写这本书的一个成功策略是每天承诺至少一小时的“困难”写作时间。也就是说,这一个小时不能用来做排版、语法检查或校对。

这个策略效果很好。6 月的产出量,我想是我职业生涯中任何一个月都未曾达到过的。我为 Refactoring English 电子书新增了三章,发布了一个新的样章,还在这个博客上写了三篇新文章

这个策略的问题在于,回避较轻松的写作任务意味着我会积累起一些几乎完成、只差语法检查和校对的文章。尤其是上个月,我有大量写到一半的文字,我感觉自己在追踪哪些已发布、哪些还需要最终编辑上浪费了很多脑力。

我想根本问题在于我一直开始写新的博客文章。也许最简单的答案就是:当还有未完成的待发文章时,我就不该再开新坑。

如何与抢先体验读者进行更多交流?

边写边卖 Refactoring English 的好处之一是,愿意预购一本未完成的书的人,相对于普通读者来说可能格外热情。我的计划是经常与早期读者交流,确保这本书能回答他们的问题并且易于理解。

但实际上,我与读者的联系一直很困难。我发送过关于样章的简短调查,也邀请大家回复反馈,但在约 1,400 名邮件列表订阅者和约 250 名预购客户中,我只收到了寥寥几条回复。

我开始做直播视频活动,尝试了不同的形式,包括讲座、写作工作坊、答疑时间和读书会式的热门软件博客文章讨论。直播活动很有趣,参与者也给了我极好的反馈,但每次通话只有几位读者参加,感觉我仍然只触达了读者中很小的一部分。

另一个成功的反馈来源是购买一对一编辑反馈服务的客户。付费客户只有三位,但与他们合作让我看到了目标受众中的写作者希望得到哪些方面的帮助。

基于此,以下是我关于与读者进行更多交流的想法:

  • 在读者购买后单独联系他们,询问他们想从书中学到什么,以及到目前为止这本书是否符合他们的期望。
  • 稍微打磨一下我的写作咨询页面,让它更有吸引力。
  • 为有学习动力但负担不起价格的人提供一个折扣咨询选项。
  • 联系 Hacker News 上持续投稿却始终无法获得关注的用户,看看他们是否有兴趣聘请我做反馈。
  • 提供“为你的团队预约”选项,这样我可以为某个工作团队讲解一个写作主题并回答他们的问题。

如何改进这本书的营销?

除了半途而废的博客文章之外,还有很多简单的营销事项我想做,但我一直没有为它们安排时间,于是它们就一直占据着我的脑海。

以下是我对所有想完成的低垂果实任务的头脑风暴:

  • 改进网站。
    • 添加 favicon。
    • 调整 UI,让行动号召变成购买抢先体验,而不是订阅邮件列表。
    • 改进抢先体验页面
      • 我已经把它从“预购”改名为“抢先体验”了。
    • 在网站上展示哪些章节已经可用,而不只是显示数量。
  • 发布一年前录制的一位博主的访谈。
    • 这段访谈是为我计划重启的《Hit the Front Page of Hacker News》录制的,但最终我把那个产品搁置了。请人做了访谈却一直压着不发,这件事一直让我耿耿于怀。
  • 把网页版的节选移植到电子书中,并在网站上把这些章节标记为已完成。
    • 大部分我都做完了,但这活儿太枯燥,我一拖再拖,目前仍有三个章节只存在于网页节选中,尚未整合进电子书。

用 Gleam 编程,怀念朴实的 for 循环

为了在今年学习一门新的编程语言,我一直在试用 Gleam。我用它来解析我以前的 AOL Instant Messenger 聊天记录,它们长这样:

Session Start (DumbAIMScreenName:Jane): Mon Sep 12 18:44:17 2005
[18:44] Jane: hi
[18:55] Me: hey whats up
Session Close (Jane): Mon Sep 12 18:56:02 2005

我写过一篇更长的文章谈我对 Gleam 的初步印象,此后又花了几个小时用它编程。

Gleam 中最难适应的一点是没有循环。Gleam 刻意不提供循环,而是要求你使用递归函数,或者对列表中的每个元素调用映射函数。

缺少循环给我带来最大麻烦的地方,是把聊天记录切分成用于解析的 token。我在意的分隔符是 [' ', '\n', '[', ']']。冒号我也在意,但仅当它后面紧跟一个空格时,即 ': ' 这种情况。

在 Go 这样的语言里,我会用一个 for 循环遍历字符串。找到空格字符时,我会检查前一个字符是不是 :,以便处理 : 的情况。

在 Gleam 里没有循环,我最终构建出一棵奇怪的决定树,其中很多叶子节点重复着同样复杂的函数代码

Gleam 的很多设计选择让我觉得很有意思:当我按“Gleam 的方式”做事时,感觉很优雅;可一旦涉及循环,就感觉像是在没有合适工具的情况下干活。

我会继续试验 Gleam,但也打算试试 Elixir 或 OCaml,因为它们具备我喜欢 Gleam 的许多特性,同时又解决了我的一些痛点。

收尾

完成了什么?

经验教训

  • 当已有未完成的博客文章时,要抵制开新坑的诱惑。
  • 我应该通过加倍投入行之有效的方式,寻求与读者更多的交流。

下个月的目标

  • 与至少 10 位从未交流过的读者交谈。
  • 清空积压的营销点子。
  • 发布 Refactoring English 的新章节。

原文由 Michael Lynch 发布

本文章由 stealth/ox-alpha 进行翻译