3

我写完了《Python 工匠》一书的初稿

 2 years ago
source link: https://www.zlovezl.cn/articles/on-writing-first-draft-of-my-book/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

kelly-sikkema-VBPzRgd7gfc-unsplash_1280.jpg

去年 6 月底,在写完“Python 工匠”系列的最近一篇文章“在边界处思考”后,我在写作上陷入了迷茫。我迷茫的点在于,我不知道是否该继续写下去,如果写,我又该写点什么东西?

当然并不是真的没内容可写。关于编程和 Python 的话题何其多,我写过的内容只是沧海一粟。异步编程、单元测试、新版本的新功能,等等,所有这些之前没写过的知识点我都可以写。

但问题在于,我说服不了自己去写新东西,因为我自己对已有的 15 篇文章质量其实并不满意。

“Python 工匠”的第一篇文章“善用变量来改善代码质量”发布于 5 年前。假如现在的我再去读,会发现文章里的许多措辞都不够精确,文法不通的地方也很多。这就和看到自己五年前写的代码一样——哪哪都是问题。

因此我做了一个决定。在写第 16 篇文章之前,我要先对“Python 工匠”的所有内容做一次精细的 Review,重写所有内容,在质量上至少做到让自己满意。

重写“Python 工匠”

但在重写文章的过程中,我发现了一个问题——对于我想写的内容来说,文章是个很糟糕的载体。在重写文章时,为了增加技术内容的描述性,我很容易就会把文章越写越长,很快就字数过万。

但在互联网世界里,能读长文,愿意读长文的人已是凤毛麟角。因此,即便我重写了所有文章,让它们变得更好(也更长),但我同时也能断定,它们不会帮我吸引更多读者,读我文章的人只会比现在更少。

也就是在这时,我的一位朋友,时任图灵社区编辑的 HY 找到了我。在她的一些鼓励下,我动了写书的念头。我觉得和碎片式的文章相比,“Python 工匠”也许更适合作为一本书来整体发布。也许经过一些重写,我能把 15 篇文章重整成一本 200 页左右的小书

随后,在图灵社区编辑英子女士的帮助下,我确定了新书的写作框架。在这个框架下,我的内容可以被体系化的组织成一本书,同时也能最大程度保留“Python 工匠”系列的特色。随后我向图灵社区提交了选题报告,很快选题便通过了。

在签约了图书出版合同后,我便开始了漫长的写作过程。

我从事着一份全职程序员工作,还有一个即将幼儿园毕业的女儿,工作之外,我并没有特别多的时间可以用来写作。我的主要写作时间,来自每天早上的 90 分钟,以及大部分周末。因为只能在业余时间写作,所以我写的不快,写作周期被拖得很长。在持续写了 9 个月后,上周我终于写完了这本书的初稿。

虽然整本书的核心内容和框架来自“Python 工匠”,但新书几乎没有任何一个句子,与“工匠”中完全相同。我重写了所有的旧内容,同时写了许多新内容——比如面向对象编程、单元测试、数据模型,等等。

这带来的结果是,新书相比目前的 15 篇“Python 工匠”文章,内容量翻了近三倍,页数也从预期的 200 页变成了将近 400 页。

在写作新书的过程中,我最大程度维持了“Python 工匠”的特色,那就是注重细节,注重案例,同时尽量让文字有些故事性。

和文章相比,书的每个章节结构更规范,更成体系。大部分章节的内容都分为三部分:

1. 基础知识:有关本章内容的一些语言基础知识,比如在“容器类型”一章,我会简单介绍列表、字典的基本操作,同时说明可哈希/不可哈希等一些常见概念; 2. 案例故事:以案例和故事的方式,描述如何写出更好的 Python 代码; 3. 编程建议:有关写好代码有关的细节与建议。

全书目前共 13 章,目录如下:

  • 第 1 章 变量与注释
  • 第 2 章 数值与字符串
  • 第 3 章 容器类型
  • 第 4 章 条件分支控制流
  • 第 5 章 异常与错误处理
  • 第 6 章 循环与可迭代对象
  • 第 7 章 函数
  • 第 8 章 装饰器
  • 第 9 章 面向对象编程
  • 第 10 章 面向对象设计原则(上)
  • 第 11 章 面向对象设计原则(下)
  • 第 12 章 数据模型与描述符
  • 第 13 章 开发大型项目的建议

同在网上发布电子内容相比,传统图书出版简直慢的惊人。上周,我已经把初稿提供给了出版社,假如一切顺利,也许你能在 6 个月后,也就是 2021 年底买到我的新书。

假如只看数据,“Python 工匠”并算不上什么特别成功的系列文章。截止目前,我的微信公众号 “piglei” 的订阅数也不过 2000 余,不及许多技术公众号的零头。

但支撑我写完整本书的东西,其实不是什么漂亮的数据,而是一些独立的读者个体曾“千方百计”给我的鼓励。其中有一位读者我印象最深,他用了一种非常让人意外的方式,向我反馈了他对“Python 工匠”的喜爱。

去年某一天,一位女同事突然在公司内的企业微信找到我,问我是不是“Python 工匠”的作者,我回复说是的。

我本以为她是一位来咨询 Python 问题的普通读者,但当我习惯性的点开她的资料卡后,发现她的岗位根本不是开发,她的工作内容和 Python 半毛钱关系都没有。

“是这样的,我老公前几天在网上读到你的文章,觉得写的特别好。他从你的 GitHub 资料里看到你在 TX 工作,所以非得让我到内网告诉你一下。你写的文章很好,希望能看到你写出更多好文章。”

写作是件很孤独的事情,你关上门,把自己放在电脑前,然后就只剩下你和你自己开始对话。但孤独归孤独,正是上面这些读者让我清楚认识到,这世界上有许多从事编程工作的人,曾与我有过同样的问题与困惑。而当我用键盘把自己的思考和经验写下来时,我其实替他们说出了许多想说但没说的话。通过文字和代码,我和成百上千的 Python 程序员们连接在了一起。

几个月以后,当你在书店里在京东上有意无意邂逅我的书时,希望你能驻足瞄上几眼、翻上几页。假如书写的合你心意,那就买一本吧。毕竟用我老婆的话说:“现在书可太便宜了!买书简直是世上性价比最高,最让人快乐的事情!”

题图来源:Photo by Kelly Sikkema on Unsplash


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK