我的第一本英文技术书

太长不读

我写了一本关于React+TDD的英文书,你可以从这里免费获得。在我写这篇文章的时候,读者大约是1000+。虽然读者不算多,但是通过一些渠道收集到的反馈还算不错,已经超出我自己预期很多了。如果你读完觉得还不错,而且愿意帮我宣传一下我会非常感激,如果你想要做一些修订甚至翻译的话那就更棒了(有一个俄罗斯小伙在帮我翻译俄文版,不过我对他的进度不是很有信心)。

缘起

实话实说,写这本书纯属意外之举,最开始的时候对于内容和形式是完全没有计划的,更不用说用另外一门语言作为载体了。应该是在2017年年末的时候,我在客户的无线部门做一个网管产品的Web化,人员能力提升显然是Web化的核心了 -- 毕竟功能需要开发人员一行行去实现。当时该部门中的大部分开发同事的Web技能都比较薄弱,一些有经验的同事则每日被业务需求缠身无法顾及能力构建,因此引入外部的培训来填补这个空缺。

这个看起来是Web开发101的培训还有一些其他需求,比如用户故事拆分、自动化测试和TDD等等敏捷开发的基本内容。我为团队设计了一些循序渐进的例子作为培训的素材,并在后来的几轮迭代中进行了内容的删减和补充。培训的结果还是不错,有一半以上的同事对Web开发产生了兴趣,有人则开始意识到自动化测试(以及TDD)可以减少回归测试的工作量。

正如你所料,这个培训的一个副产品就是这本书的原型了。在培训结束之后我正好有了几周不再项目的时间,我用这些时间将内容变成一个教程:从一个简单的例子,逐步完善成一个前端应用。其中涉及了诸如Tasking,ATDD,用户故事等。

写作过程

初稿

原型是很容易的,素材是现成的,只需要将其以符合逻辑的方式连接起来即可。比如我想要描述通过TDD的方式开发一个应用的全过程,那么首先我需要讲清楚我们要做一个什么应用,此外我需要说清楚如何用TDD来完成这个应用。根据经验,人们喜欢循序渐进的方式来阅读,先做一个简单需求,然后逐步增强,并在过程中将学到的内容应用,然后推广到后续需求的开发中,并通过实现更加复杂需求习得我想要传递的知识/技巧。

  • TDD的101(通过例子来说明Tasking和测试驱动的过程)
  • 介绍demo应用,搭建应用所需的环境
  • 设计并实现一个简单需求
  • 实现一个更复杂的需求
  • 循序渐进……

编辑初稿的过程中,正好有个掘金小册的编辑联系我有没有意向写个小册子。虽然后来由于篇幅和主题的选择问题没有继续合作,但是和编辑沟通的过程帮助我很好的梳理了草稿的结构。

英文版

在草稿写完之后,我找到几个同事做了快速的评审并做了一些修改。到了2018年3月,我开始准备到澳洲工作,既然英语会是我接下来几年的主要语言,那么提升英文能力就成了优先级很高的事情。而学习语言的窍门就是:没有什么比实际使用一门语言更能提升语言能力的了。

于是我开始尝试把草稿翻译成英文版。开始的时候我还会保持双语版本的同步,到后来带宽不足的时候就只能把精力放到英文版上了。第一个完整的英文版发布于2018年5月,后面虽然陆续有些小的修改,主体部分没有太大的变化。

到了澳洲之后,读了很多英文原版的书籍/文章之后,发现了书中很多的语言错误,又在一个假期里集中修改过一轮,可读性有了一些提高。

重构

到了2019年的9月,经过了近1年2个纯React的项目后,我对与React及其生态的理解,以及在应用TDD(特别是和传统上认为的TDD很难在复杂/时间不允许的项目上实施)的认识上都有了新的发展。于是又将其中很多章节重写了,比如丢弃了pupeeteer改成cypress,采用react-testing-library而不是enzyme等等。另外,结构上也做了重新整理。

由于这些颠覆性的修改,我将其重新命名为Mastering Test Driven Development with React,并声明其为前一个版本的第二版

到了2020年4月,由于COVID-19在澳洲的肆虐,我们开始全面WFH。一方面突然有了很多时间,另一方面我意识到线上沟通时英文在有些时候还是会变成障碍,于是我又花费了一些时间来提升英文。于是又开始了一轮的re-wording。

在你今天阅读这本书的时候,你大约会惊叹于英文表达之地道,语法之准确以及用词之精准。这些都和我的英文水平没有太大关系。在5月的一天,一位澳洲同事Hannah Bourke写邮件给我,表示她通读了这本书,非常喜欢其中的讲述方式和实例以及节奏,她表示愿意帮我近一步润色。她通过PR的方式重新整理了本书的语言(目前已经完成了70%),由于Hannah本身就是前端Dev,所以很多表达方式也被重写为更容易被读者理解的方式。

一些收获

关于英文写作

语言的学习是个漫长而痛苦的过程,同样的内容,要从一门语言中的表述要翻译成另一门语言需要的更多的是重写而不是literal translation。从到澳洲工作开始我就开始刻意的用英文写作,还尝试把一些文章翻译并投稿给英文版洞见

通过这些练习,我觉得我至少不再惧怕这件事情本身。英文表达当然有不地道的地方,但是读者也不是语言学家,大多数时候他们都可以准确无误的get到你的意思。即使有些复杂概念无法一次理解,通过评注或者提问等等,总是会搞清楚的。

关于自信构建

在这本书的写作过程中,我个人最大的收获应该是:当你制定了一个目标,不论这个目标开始开起来有多么的不切实际,一旦你开始细化这个目标并逐步实施,你就已经离这个目标不远了。当然,和每个任务一样,事情走到最后可能会和最开始的目标并不完全契合,但这大约是我们无法掌控的那部分了,就随他去吧。


文/ThoughtWorks 邱俊涛

更多精彩洞见,请关注微信公众号:ThoughtWorks洞见

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,692评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,482评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,995评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,223评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,245评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,208评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,091评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,929评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,346评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,570评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,739评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,437评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,037评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,677评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,833评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,760评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,647评论 2 354

推荐阅读更多精彩内容