撰写技术书籍

2021-09-16   出处:andregarzia.com  作/译者:Andre Alves Garzia / Apple  


       在阅读了 SerHack类似的帖子《如何编写技术手册》之后,我受到启发写了这篇文章。不是因为他们的帖子有问题,而是因为我想更多地给你们提供选择,也展示我喜欢的工作方式。
       在过去的十年里,我出版了六本关于编程的技术书籍。大多数都是自己发行的作品,但我最近与Apress发行了《Roguelike Development With JavaScript》,Apress是一家以编程书籍闻名的传统发行商。我的第一本畅销书是很久以前出版的《firefox编程快速指南》。我真的很高兴它出现在Leanpub的畅销书里,这让我很自豪。除此之外,在过去的16年里,我一直在一家主流印度文学英文出版社工作。

我喜欢这个封面

      之所以告诉你们这些,是因为我对写书的理解随着时间的推移发生了变化和演进,我现在认为最好的写书方式不一定和我过去的选择一样。基本上,我不想让你重蹈我的覆辙。

      让我们将发行过程分成三个大致的阶段:

  • 准备:计划和准备你的梦想之书。这个计划是会失败的。

  • 写作:包括写作和编辑。

  • 出版:最难的部分实际上是出版和营销你的书。

      每个图书项目都需要经历所有这些阶段,而最重要的阶段,也就是第三个阶段,如果管理不善,会导致你的书失败。人们常常忽视市场营销和发行策略对一本书的重要性。想着你的书出版后就读者就会蜂拥而至,这就是个神话。另外两个步骤可以在你做的时候加以修正,即使它们不完美,你的书也可能会成功。下面让我们再深入一点。

准备

      你需要做的第一个重要决定是你想在多大程度上参与你的图书项目,因为只要你想,一个图书项目将吞噬你从开始第一天到宇宙最终热寂的所有空闲时间。一本书可能只是一个个人喜好的项目,或者,它也可能是你的职业工作。

      你能在项目上面花多少时间决定了启动它所需要的时间。图书项目的一个重要方面是您要用来制作书籍的工具和工作流。有一些“交钥匙”的解决方案,只需要花费很少的精力,选择这样的工具将为你腾出时间来专注于其他阶段,比如写作本身,选择更复杂的工具和工作流将增加你对项目的控制力和代理权,但也会增加磨合,消耗更多的时间。

      我将在“写作”一节中更多地探讨这些工作流,但是应该尽早决定使用哪个工作流,最好是在你真正开始写书之前。

好的大纲值千金

      你的大纲是组织思维的第一步。大纲最重要的部分不是里面有什么,而是你漏掉了什么。书籍项目,如果听任其自行发展,可能会发展到维基百科那样的内容量级。你需要把你的项目限制在能得出结论的范围内,这对你的读者来说还是有意义的。

      我喜欢用“英雄之旅”的形式为书本设定大纲。你的读者正在经历一段旅程,而你只是一个引导者。你不是去教他们,你是去提供必要的工具让他们自学。随着书本的进展,读者会看到越来越复杂的概念。在书本中,这些概念需要结合到用户自己创建的示例项目中,以巩固他们的理解。

我的《Roguelike Development》一书最初的头脑风暴,但是事情没有按照计划进行……

      这意味着读者不一定要在书中构建一个大项目,而是几个小项目。它们可能一起组成一个更大的项目,但它们应该足够谨慎,让读者在阅读的时候就能够进行实验,而不是在他们读完它之后。不是示例为书本服务,而是书本为示例服务。这些示例是为了让用户在学习过程中不断进步而构建的。

      以这种方式对你的书进行推理,你自然会创建一个以读者为中心的项目。一切都是关于他们的旅程。这使这本书保持了趣味性,并避免了我个人经历过的最重要的一个陷阱--写了一本读起来像字典或百科全书的书。我觉得这类书作为参考很有用,但当你试图从头到尾阅读它们时,通常不会有愉快的阅读体验。

      我的大纲是以章节为基础的。我将写下这一章的暂定标题,并列出读者在这一章中应该学到的所有内容。这些章节将组织起来,确保所有的内容都是针对读者的需求而写。这种需求的答可能是全新的概念或者已有概念的创新应用两种形式。

      在《Roguelike Development》的许多章节中,读者都在创造一款带有固定布局的地牢探险游戏。为了继续他们的旅程并理解Roguelike Development的基本内容,他们需要学习更多关于生成地牢的内容。于是创建一个全新的示例,教读者使用BSPTrees生成地牢,本章是为了呈现这些概念而编写的,但真正开启学习体验的是读者执行示例的行为。接下来的章节是已有概念的新应用,基于BSP的生成器用来创建多级地牢。这是一段通过修改代码来理解和学习的旅程。

      重要的是要明白大纲不是一成不变的,当你写书时,如果你意识到它实际上已经不起作用,你可以修改它甚至从根本上改变它。

这本书共有9章314页

写作前的示例

      在做大纲的同时开发你的示例是很重要的。除非你对自己的思维能力非常自信,能在书本规划的时候把所有东西都记在脑子里,否则在这个阶段,你还是会从这个实际操作中受益。

      如果每一章都包含一个示例,那么就在你写大纲的时候构建它们。这将帮助你调试自己的大纲,在你在草案中写太多文字之前尽早发现计划中的问题。

      一旦你的大纲和样本对你来说足够好了,就可以开始起草了。

写作和编辑

      从来没写过书的人往往认为写作是最难的部分。其实它不是,反而是容易的部分。创建技术书籍的第一份草稿是很容易的,困难的是编辑和修改它,使你的手稿足够优秀能够分享。

      如果您的大纲已经通过构建所有示例进行了最初的调试,并且计划和示例都很好,那么您计划的下一步自然就是书写内容了。应该没有什么阻碍,因为所有关于每个章节内容的决定都已经制定好了,现在是时候写内容了(我知道,说起来容易做起来难,但比很多人想的要容易)。

      这也是你需要决定工作流程的地方,就像科技界的任何事情一样,有太多的选择,不可能推荐完美的解决方案。以下是您需要决定的事项:

传统出版还是自行出版

      许多人认为,自行出版是作者最后的选择。只有当他们被太多出版商拒绝后,他们才会放弃并自行出版。这与事实相差甚远。很多作者,包括我在内,都会考虑先自我出版,如果他们能找到一个很好的理由,才会走传统路线。

      关于这个决定的讨论太复杂了,我无法用一个简单的小节来说明,所以现在让我做一个简单的列表,列出每一个决定的利弊。

      自行出版

  • 优点:你每卖一件就能赚更多钱。

  • 优点:你完全可以控制编辑决策。

  • 优点:你完全可以控制整个过程。

  • 缺点:你必须完全控制整个过程。

  • 缺点:你需要自己做每件事,或者雇人来做。

  • 缺点:你的书很难进书店。

      传统出版

  • 优点:你有一个团队与你合作(对于优秀的出版商)。

  • 优点:你有专业的编辑检查你的草稿。

  • 优点:你不必担心出版的流程。

  • 缺点:出版和营销往往是黑匣子,你不知道这些计划。

  • 缺点:要把这本书卖到书店仍然很困难,因为大多数出版商对于不是来自技术领域著名作家的书都是按需印刷的,你仍然可以从书店订购这本书,但他们可能没有库存。

      如果你选择传统的出版方式,这时你需要停下来并开始接触发行商。在计算机编程生态中有一些很酷的发行商,如The Pragmatic Programmers, No Starch, Apress, Pakt, Manning。

      您应该在您想要合作的发行商中找到对应您想要发布区域的组稿编辑。一个很好的方法是挑选竞争对手的书,然后查看它们的主要内容,看看谁是编辑。他们与你的距离通常只有一个LINKIN或者Twitter的消息。向他们抛出橄榄树。如果他们感兴趣,他们会告诉你他们的提案流程是如何运作的。你需要根据发行商的需求调整大纲,然后遵循他们的工作流程。

      通过自主出版的方式可以为你提供更多的选择。我不能一一列举所有可行的方法,就像网页开发者不能列出所有创建网页应用的方法一样。我可以告诉你的是,有些方法确实很简单,有些方法则更为复杂。

自行出版,简易方式

      我个人非常主观的认为,最简单的方法是通过Leanpub自己出版一本书。Leanpub是一个SaaS平台,不仅为你提供工具和工作流来写一本书,还为您提供出售的手段,通过他们自己的商店处理所有物流和支付。你的前100本书在Leanpub是免费的,但之后你需要购买一个付费计划。根据你的需要,他们的专业计划可能值得一试,它提供了更多的功能,比如输出可以打印的PDF。我是一个专业用户,并出版了四本书。

自行出版,另一个简易方式

      我心目中另一个新的能服务所有作家需求的解决方案是Reedsy。他们为你提供了一个市场,帮助你结识各种你需要的专业人士——编辑、文字编辑、营销人员、封面设计师、测试读者等等——而且他们也有一个非常棒的在线编辑器来帮你写书。你可以使用他们的平台来写书,雇佣上面列出的专业人员,并从同一个平台生成电子书和可以打印的PDF文件。

此外,他们还有一个很棒的YouTube频道和博客,里面有大量关于写作创意的内容。他们的平台更适合非技术书籍,但仍然可以用来创建技术书籍。

说实话,他们提供的内容我连一半都没有覆盖到。去看看他们的主页,他们太棒了。

自行出版,桌面应用的方式

      你喜欢使用桌面应用程序吗?我也是。这个行业的宠儿是一款叫做Scrivener的应用。它值得花在它身上的每一分钱。如果你不打算记住这篇(非常广泛的)博客文章中的任何内容,请记住这句话:Scrivener价值连城。

      我无法强调Scrivener对你的写作生涯有多好,但是购买许可证并花时间去掌握它是值得的。你可以长期使用它,让它成为你忠实的侍从,随时准备在你的旅程中伸出援手。

我正在用Scrivener写一本高难度的书

      你可以用它来管理大纲,研究,写草稿,做所有的修改,然后生成电子书和pdf。

      如果你想要更漂亮的电子书,那就把Scrivener和另一个叫做Vellum的应用程序结合起来就可以了。不过Vellum只能在mac上使用。

      我的最新书籍:《Development Oriented Development 》是用Scrivener策划、组织、编写和组织的。

Development Oriented Development的电子书封面

自行出版,FOSS的方式

      是的,我打赌你们中的开源软件读者FOSS readers 已经对上面列出的所有收费软件感到紧张了,对吗?还有很多开源软件可供选择。您可以使用novelWriter,这是我最近发现的一个工具,还没有使用过,但似乎很有前景。

      它让我想起了Scrivener,但是有了低价的优势,我希望有一天能尝试一下。不幸的是,它似乎不能生成合适的电子书。

      在开源软件的世界中,图书出版界的瑞士军刀是Pandoc,实际上许多桌面应用程序和SaaS在幕后使用它。它是一个非常灵活和强大的工具。掌握它需要一段时间,可能会超出你的意愿,但这是值得的。

      另一个重要的应用程序是Scribus,它实际上是一个桌面发布应用程序,类似于Adobe InDesign和Affinity Publisher。您可以使用它来排版你在别处写的一本书,但是与本文列出的所有软件相比,它学起来很费劲。

起草和编辑

      一旦确定了使用的工具,就可以开始起草了。你的手稿就是你的书里排版之前的内容。你将通过多次修改来改进手稿。你的第一稿会交给编辑,编辑会在第一次审阅完成后把它还给你。您将与编辑、文字编辑、技术评审和美工重复这一过程,直到所有的利益相关者都满意为止。

      有时初稿会和终稿相差甚远,有时编辑只修改一些小语法错误。这不仅取决于你的草稿,也取决于你的编辑。有些发行商可能人手不足,他们的编辑没有足够的时间投入到你的项目中,你可能只能自行出版并只为简单的文字编辑付费,而非开发性编辑developmental editing。

      重要的是要认识到,这个初稿不是你的最终产品。它需要经过修订,并且修订目标不仅仅是修改语法和拼写错误,您可能需要更多重构。这个时候内测读者是非常有价值。把这本书交给值得信赖的读者,让他们帮你找出需要改变的地方。如果你是开源,那么就开放地开发这本书,让贡献者一路帮助你。

      在这个过程结束的时候,你应该已经有了电子书,也许还有可以打印的PDF文档。  

出版和营销

      天啊,我这是在搬起石头砸自己的脚。 不可能仅仅在一篇博客文章的一个章节中就涵盖了一个人需要知道的所有内容。 让我先介绍一个在线课程:自行出版准则。 他们有很多课程,一个播客和一个社区,涵盖了你可能需要知道的一切,让你的书在你写完之后获得成功。 它并不便宜,但它将涵盖如此多的内容。 它会教你很多东西。 如果你算上自己花在研究和学习上的时间,你所花的时间和金钱会比实际花在这门课程上的时间和金钱还要多。 在那里我是一个快乐的学生。 请注意,这门课程关注的是小说,而不是技术出版,但这里提供的方法和工具对技术书籍同样有效。  

      营销计划很重要。出版并不能保证成功。除非你已经拥有大量的追随者,否则读者不会神奇地出现。见鬼,也许你是尤雨溪,正在写一本关于Vue.js的书,当你出版的时候,读者一定会蜂拥而来。见鬼,我会买你的书。但对于大多数作者来说,制定一个营销计划是必须的。

一些对你的书有帮助的东西:

  • 积极参与书籍主题相关的社区。积极并不意味着不停地推销你的书,它意味着在那个社区做一个好公民,帮助别人,而不是不断地推销。

  • 根据你的细分市场,你可能需要支付广告费。我没有任何经验,但上面提到的课程有。

  • 让读者更容易与你互动。他们的成功会让你面带微笑。

  • 如果成为作家是你生活的一部分,你可以看到自己出版更多的书。创建一个邮件清单来与你的写作保持联系,鼓励你的读者保持交互 reader magnets

      即使不是自行出版,你也需要积极推广你的书。传统出版商每年出版的书太多了,他们只会把市场营销的精力放在畅销书上。你需要帮助你自己卖书,没有其他人会帮你(除非你雇人做,当然,去找Reedsy吧)。

      无论如何,这是一篇巨大的博客文章。有点像信息垃圾。如果你想了解这里所写内容的任何方面,请通过Twitter、Mastodon或WebMentions联系我。联系方式在这个帖子下面。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
137°|1378 人阅读|0 条评论

登录 后发表评论