前言

2018年,我有很长一段时间在中国和美国两地跑,同时在国内工作和生活了比较长的一段时间,这是我近二十年来第一次和国内的开发者一起长时间工作。在享受各种美食之外,对国内的开发、产品和管理有了全新的了解和认识。

说起写书的起源,我本来的想法只是写一点可以作为国内工程师培训教材的东西。2018年初,TensorFlow作为一个技术热点,逐渐普及到机器学习应用开发的各个方面,但是对于TensorFlow在移动端的开发和应用还处于初始阶段。我当时也刚刚结束一个TensorFlow项目,想把这些经验和想法沉淀一下。于是我就把以前写的笔记和日志重新整理,添加一些内容并修改了文字,基本形成了一个原始版本。

后来,遇到博文视点的南海宝编辑,通过商谈,出版社欣然同意把这些资料整理出书。我的笔记和日志的内容很多和代码紧密相关,其中很多内容后来演变成了文档,我觉得这对初学者和有经验的开发者都是一个很好的参考,至少可以提供另外一个视角,让开发者多方面了解TensorFlow。所以,我就开始写作,前后花费了近两年的时间。

我是一边写作一边工作的,在这个过程中很快就遇到了两个很大的挑战。

第一是文字。我的笔记都是英文的,要把这些转换成中文,我借助了谷歌翻译,虽然翻译后的文字有很多需要修改,但至少省下了不少打字的时间。另外,就是专有术语的翻译,由于我对中文的专业术语不熟悉,所以即使简单的术语也要斟酌确定,这也花费了一些时间。如果读者在文字中发现一些奇怪的说法,还请见谅,我和编辑虽然尽了最大的努力,可能还是会有很多遗漏。

第二是重新认识和了解了国内开发的方方面面。我在美国和国内的开发者也有不少接触,我想在两边工作应该不会有什么差别,可实际工作起来还是有很多不同和挑战,感触颇深。首先是技术层面。开源的理念和软件在国内渗透到各个方面,几乎所有互联网公司都是从使用开源软件开始搭建自己的产品。由于谷歌在开源社区的贡献和影响力,国内普遍对谷歌的好感度很高,我也同享了这个荣耀。而且,很多公司和开发者也把对开源社区做出贡献看作责任和荣耀,这是一个很好的趋势,中国很快会发展出自己的开源生态和社区。

关于开发环境和工程师文化,我想提一下两边对新员工培训的区别。在国内对新员工的培训中,职业道德培训和公司文化的培训占了很大一部分。而在硅谷,至少像谷歌、脸书这些公司,培训中技术培训占了很大一部分,基本是一周的培训后,员工就要进行实际的工作,而国内很多公司的新员工第二周才开始技术工作。这里我能充分感受到中美公司之间的差别。

另外是开发管理方法,由于管理方法的不同,实际的工作中要做相应的改变。比如国内对开发和产品的进度的管理是非常严格的。但是,这种严格大都体现在层级的汇报关系上,而不是对技术细节的掌控和指导上。谷歌的工程师会经常以代码的提交作为一个工程开始和结束的标志,这在国内公司很少见到。

我希望把这些经验、想法和体会能或多或少体现在这本书里。比如,使用Markdown写文档,能使写文档变成一件不是很烦琐的事,可以让作者更专注于内容的写作,而不是花费太多时间在操作编辑器上。本书就是全部用Markdown写作完成,再转换成Word文档的。比如,使用Bazel编译,需要对代码的依赖有清晰的定义。可能很多工程师不会特别在意这点,但是通过它,工程师可以非常清楚地了解代码重用和引用的状况,避免随意的代码重用,并提高代码的质量。我希望通过这些在书中给读者传达一些不同的开发经验。

总之,我会把这本书作为2018年工作和生活的一个纪念。看到书中的各个章节,我就可以联想起写书时发生的许多事。但是,真的由于时间和我自己的能力非常有限,书中一定会有很多错误和瑕疵,还望读者能宽容和谅解。

最后,要感谢我的家人能支持和陪伴我度过2018年,我和我的母亲一起度过了2018年春节,是近20年来在国内度过的第一个春节。还要感谢我的妻子,她非常支持我,并帮助我写完这本书。还有我的两个女儿,总是能给我带来无尽的快乐,还要感谢深兰科技的创始人陈海波先生和首席战略官王博士,两位帮助我完成这本书,并提出了很多意见。

另外,感谢博文视点给我这个机会出版这本书,希望通过这本书能结识更多的开发者。还要感谢南海宝编辑在本书写作和出版过程中给予的指导和鼓励。


读者服务

扫码回复:37426

· 获取免费增值资源

· 获取精选书单推荐

· 加入读者交流群