我在不到200小时的时间里写了一本技术书

2020-08-15 09:17:50

幕后介绍了我是如何在4个月内将“用WebAssembly提升水平”作为副业出版的。

本月早些时候,我用WebAssembly🎉出版了“Level Up”一书。它旨在成为使用WebAssembly的实用指南,WebAssembly是一种新的编程语言,可以帮助您将现有的C/C++/Rust代码移植到Web上(单击此处了解更多信息)。我写这本书是因为我发现虽然WebAssembly有很大的潜力,但学习曲线相当陡峭。

上一次我写了一本书(使用Bash的数据科学冒险),我得到的最常见的问题是:“你花了多长时间?”虽然我当时没有明确的答案,但这次我有了!

从我决定写一本关于WebAssembly的书的那一刻起-准确地说,2018年11月11日下午6点22分-我记录了我在这本书的每个方面花了多长时间,包括研究、写作、编辑和营销。

从构思到出版,这本书花了185个多小时才完成。这本书有85页被组织成11章,最上面的包包括小抄、截图、顶峰项目和案例研究,总共有大约125页的内容。当然,一旦我出版了这本书,时钟就不会停下来!总是有更多的营销要做,还有博客帖子要写,还有读者评论要回应。

下表显示了从2018年11月到2019年3月,从开始到发布,我每周花在这本书上的时间:

虽然我平均每周花12个小时在这本书上,但有相当大的波动,因为这是一个副业,我在正常的40小时工作周之外解决了这个问题。

令人惊讶的是,我工作效率最高的三周(无意中)都是21小时,标准偏差只有10分钟!我只有3的n,所以这可能是巧合,也可能是…。这表明我的大脑一周只能处理这么多的WebAssembly,😉。

如果你想知道12月3日的离群值,那一周我正在打包搬家!

为了更深入地了解我到底花了哪些时间,让我们把这185个小时分成几个类别:

有趣的是,我只花了大约一半的时间在与书内容直接相关的活动上。这包括写和编辑这本书(33%),但也包括我为生成要写的材料所花费的编码时间(23%)。编码部分涉及如何将UNIX工具编译成WebAssembly,构建示例应用程序(如jqkungfu.com),以及将C++游戏(如Pong和Pacman)移植到Web。剩下的时间被分配给营销(19%)、研究和规划(11%)、将书分成不同的层次(12%)和设计封面(3%)。

回首往事,有一件事让我大吃一惊,那就是我花了17个小时制作登录页面!这比我预想的多花了大约15个小时,但我对结果相当满意:

接下来,让我们来看看我写书的大部分时间和地点。自从我每周三天乘火车通勤1.5到2个小时以来,我已经养成了每当在火车上都拿出电脑写字的习惯。

然而,为了更多地争论数据,我似乎只在火车上总共写了55个小时,或者说大约三分之一的时间。虽然我显然在下班后和周末在家花了更多的时间写这本书,但如果我不是在通勤时写作,这本书就不会实现。这是因为在火车上写作产生的动力让我有动力在下班后写这本书。见鬼,我甚至要在火车上写这篇文章!

自助出版一本书是一个项目,它涉及的不仅仅是写作;以下是我用来使这一过程更顺畅的工具:

你可能会想,为什么会有人一开始就自己出版呢?对我来说,归根结底就是能够按照我想要的方式制作这本书。当你自助出版时,你可以探索不同的定价方案,设计这本书的“用户体验”,并包括我在传统书籍中没有见过的材料,比如命令行截屏、顶石项目和案例研究。如果你的书有用,也有**可能**赚更多的钱,而你的营销会把这一点传达给潜在的读者。

另一方面,缺点是:声望较低,没有预付款,外部激励因素较少,也没有编辑。此外,还有一些我很高兴从事的图书出版方面的工作,其他人可能会倾向于避免,比如精心制作登录页面,制定定价方案,以及设计封面。

我将从我到目前为止编写技术书籍的经验中得到一些启示:

当开始任何附带项目时,我必须克制自己做一些让我感觉有成效的事情的冲动,但这些在那个阶段实际上并不重要:找到一个名字,注册一个域名,选择一个模板,设计封面,制定定价方案,等等。我发现,在开始的时候,最有效的办法就是忘掉所有这些,专注于重要的事情:写有助于读者取得结果的内容。其余的问题最好在本书接近完成时解决。

我听到的一个常见的建议是承诺每天写X个单词。虽然这对一些人来说很管用,但我发现最低限度的要求是令人望而生畏的;相反,我的目标只是每周写点东西。如上所述,每次我坐火车都要写字的习惯是我坚持下去的重要催化剂。

虽然我写这本书的时间不到200小时,但这个数字还不包括我一开始学习WebAssembly和从事项目的时间(例如,fast q.bio)。我还没有追踪到那个时间,但肯定是几百个小时。此外,这200个小时还不包括我在发布后花在营销、写博客帖子、回答客户问题和更新图书上的时间。