专栏首页ThoughtWorks我的第一本英文技术书

我的第一本英文技术书

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

太长不读

我写了一本关于React+TDD的英文书,你可以从这里免费获得(https://leanpub.com/mastering-tdd-with-react)。在我写这篇文章的时候,读者大约是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月的一天,一位澳洲同事写邮件给我,表示她通读了这本书,非常喜欢其中的讲述方式和实例以及节奏,她表示愿意帮我近一步润色。她通过PR的方式重新整理了本书的语言(目前已经完成了70%),由于她本身就是前端Dev,所以很多表达方式也被重写为更容易被读者理解的方式。


一些收获

关于英文写作

语言的学习是个漫长而痛苦的过程,同样的内容,要从一门语言中的表述要翻译成另一门语言需要的更多的是重写而不是literal translation。从到澳洲工作开始我就开始刻意的用英文写作,还尝试把一些文章翻译并投稿给英文版洞见(https://www.thoughtworks.com/insights/blog/seven-principles-pair-programming-etiquette)。

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

关于自信构建

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

本文分享自微信公众号 - ThoughtWorks洞见(TW-Insights),作者:邱俊涛

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我的第一本算法书

    算法就是计算或者解决问题的步骤。我们可以把它想象成食谱。要想做出特定的料理,就要遵循食谱上的步骤;同理,要想用计算机解决特定的问题,就要遵循算法。这里所说的特定...

    AI科技大本营
  • 我的第一本区块链教科书

    使用区块链,我们可以实时追踪用于制造这架飞机的每个螺栓。

    KX_WEN
  • 聊聊我第一本书的写书历程和感想

    自从2018年11月,我的第一本书出版到现在已经有一年半之久了,很多小伙伴们对我第一本书的写作历程很关心,也经常问我当初为什么要写书,以及是怎么写书的,那么今天...

    黄鸿波
  • 《小狗钱钱》| 我的第一本理财书

    《小狗钱钱》大概内容是:小女孩吉娅希望家里养一条狗,有一天在路上遇到一只受伤的狗于是把它带回了家取名为钱钱,后来发现这条狗会说话,并且之前是在一个富翁家里,然后...

    Jingbin
  • 我从我的第一本区块链书中学到了什么

    在区块链的真正核心,没有所有那些花哨的,荒谬的流行语,区块链实际上只包含很少一些东西。

    一只懒惰的小白
  • 计算机技术|我的第一个Flask程序

    Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用...

    算法与编程之美
  • 一周技术思考(第20期)-我给她推荐了这些Java书籍

    大家好,这里记录,我每周读到的技术书籍、专栏、文章以及遇到的工作上的技术经历的思考,不见得都对,但开始思考总是好的。

    王新栋
  • 论工程师的自我修养:全英文技术学习实践

    2016年9月,上海GOPS大会现场。《Site Reliability Engineering》一书的作者之一、来自Google的Chris Jones在做分...

    RiboseYim
  • 盘点那些在我文章中出现过的书籍|文末有福利哦

    这次的文章主要盘点一下那些在我的文章的出现过的技术书籍。然后在文末送出一个购书福利。

    why技术
  • 文本去重的技术方案讨论(一)

    对于文本去重来说,我个人处理上会从数据量、文本特征、文本长度(短文本、长文本)几个方向考虑。 常见的去重任务,如网页去重,帖子去重,评论去重等等。 好的去重...

    学到老
  • 各种计算机语言的经典书籍(C/C++/Java/C#/VC/VB等)

    Java编程语言(第三版)—Java四大名著—-James Gosling(Java之父)

    谙忆
  • GitHub 上的这几个项目或许能帮你学好英语

    一个掌握英语了的程序员,往往能比不懂英语的程序员更早了解到新的技术动态,接触第一手技术资料。

    五分钟学算法
  • GitHub 上的这几个项目或许能帮你学好英语

    一个掌握英语了的程序员,往往能比不懂英语的程序员更早了解到新的技术动态,接触第一手技术资料。

    GitHubDaily
  • 我只是用了个“笨”方法,一个月后不再惧怕英文文档

    在日常工作中,尤其是程序员时时刻刻都会与英文打交道,虽然我们尽可能的在互联网和中文书籍中寻找我们需要的信息,但是,有时候总是不尽人意。对待翻译过来的文档或者书本...

    长烟斗
  • 计算机专业基础书籍推荐

    编辑:小虾米 夏沫 本文根据网上的参考资料以及自己的学习经验总结整理而成,旨在给大家做一个参考,希望大家在工作、学习中遇到相关的问题之后能从这些参考书中获得帮...

    企鹅号小编
  • 走向TensorFlow2.0,一步到位

    █ 本文作者 薛巍,阿里巴巴菜鸟网络技术专家,摘自《走向TensorFlow 2.0》一书推荐序。

    博文视点Broadview
  • 如何高效学习编程技术?

    通过这段时间的看书学习和对编程的思考,结合自己的亲身的学习经历,今天想和大家聊一聊如何高效学习编程技术。

    Wizey
  • 做EEG脑电+脑科学研究不得不看的几本书

    从1929年Hans Berger第一次发表头皮记录的EEG论文,并观察到被试在进行心算时可导致EEG中的α节律的降低,到1939年Hallowell Davi...

    悦影科技
  • 2017计算机系书单推荐

    我是一名iOS开发工程师,我想成为一名优秀的程序员,我虽然不是计算机系的学生,但我不能落后,我要努力成为优秀程序员的一员。我觉得每个人都有自己的想法和规划,一个...

    筑梦师winston

扫码关注云+社区

领取腾讯云代金券