译者序¶
跟本书的相遇,纯属偶然。
2018 年 6 月下旬的一个晚上,我从外面散步完回家,坐在阳台上享受着初夏的微风,期间百无聊赖地拿起手机刷起了朋友圈,并在上面发现杨海玲编辑正在为《Get Programming with Go》一书招募译者。
我非常喜欢 Go 语言,并且一直对这门语言保持关注。尽管之前已经翻译过《Go Web 编程》一书,但我还是常常期待有机会可以再次翻译 Go 方面的图书。 因此当我看到《Get Programming with Go》正在寻找译者的消息时,我马上有预感觉得自己的愿望说不定就要实现了。
果不其然,当我快速地在 Manning 出版社的网站上浏览了《Get Programming with Go》的相关信息并且试读了公开的章节之后,我强烈地感受到这是一本非常有趣的 Go 图书,并且我深信凭借本书优质的内容,它将在未来的 Go 入门读物中占有自己的一席之地。
简单来说,如果我想要再次翻译一本 Go 图书的话,那么毫无疑问就应该是这本《Get Programming with Go》! 在打定主意之后,我就向杨海玲编辑表达了想要翻译本书的意向,并在之后顺利地成为了本书的译者。
Go 作为一门广受关注的热门语言,在市场上从来不缺少相关的图书,特别是面向初学者的图书。
跟市面上很多声称自己是入门书但是却只会一股脑地将各种语言细节硬塞给你的“伪入门书”不一样,这是一本真正面向初学者的书。 整本书的学习曲线非常平缓,不会像过山车那样忽高忽低。 书中的内容首先从变量、循环、分支、类型等基础知识开始,逐渐进阶至函数、方法、收集器和结构,最后再深入到指针、错误处理和并发等高级特性。 只要沿着书本一页页读下去,你就会循序渐进地学到越来越多 Go 语言知识,并且逐步掌握 Go 语言的众多特性。
除了上述提到的优点之外,本书还是一本非常有趣的书。 作者在书中列举了大量跟天文以及航天有关的例子,你不仅要计算从地球乘坐宇宙飞船航行至火星所需的天数,还要在火星上放置探测器以便查找生命存在的痕迹,甚至还要想办法改造火星使得它能够适宜人类居住。 特别值得一提的是,书中很多地方都带有可爱的地鼠(gopher)插图,它们就像旅行途中优美的景色一样,将为我们的学习旅途增添大量的乐趣。
总而言之,这是一本既有趣又实用的 Go 语言入门书。如果你只想读一本关于 Go 语言的入门书,那么我强烈推荐你读这一本。
回想当初,自己在通过阅读图书学习编程的时候,总是希望能够成为译者,做出属于自己的翻译作品。但是在实际成为译者之后才明白,原来翻译并不是一件简单的事情,它考验的不仅仅是译者的语言能力、文字能力和技术能力,它还要求译者要有足够的耐心和锲而不舍的毅力。
具体到这次的《Get Programming with Go》一书,作者在遣词造句方面虽然没有太多难懂的地方,但是内容中却使用了大量有趣的例子,比如搭乘太空飞船前往火星、计算人类在火星上的重量和年龄、调查火箭发射事故、在火星上放置探测器、组建地鼠工厂等等。如何在译文中准确无误地表达原文的意思并且保持原文的趣味性就成了本次翻译的一大挑战。换句话来说,译文不仅要保持原文的“形”,还要兼顾原文的“神”,做到“形神兼备”才行。为此,我在这方面用了足够多的时间也花了足够多的功夫,我有信心大家在阅读本书的时候,能够感受到跟原作一样的趣味性。
除了书中有趣的例子之外,本书翻译的另一个难点在于例子中涉及的大量外部知识,特别是跟天文、航天有关的知识,比如地球和火星之间的距离、用光速到达火星所需的时间、火星上各个着陆点的名字,诸如此类。 为了能够正确地翻译这些知识,我通常都会在维基百科上面查找并且验证相关的信息,然后再进行翻译。 曾经有一段时间我的浏览器上面打开的都是天文、航天相关的维基页面,甚至让我产生了一种自己在 NASA 上班的错觉(笑)。
虽然花了不少时间,但这本《Get Programming with Go》终于还是翻译完了。 今后如果有机会的话,我大概也会继续进行翻译工作吧。希望在不远的将来,当读者们在译者一栏看到“黄健宏”这个名字的时候,能够像看到食品包装上粘贴的“安全许可”标识一样安心:他们不必担心书本的翻译质量,只需要尽情地享受阅读带来的快乐即可。 当然要达成这个目标并不容易,但我会在接下来的工作中继续努力,希望大家可以一如既往地支持我。
最后,我要感谢人民邮电出版社和杨海玲编辑又一次把一本有趣的 Go 书交给了我进行翻译,我也要感谢我的家人和朋友,他们的关怀和帮助让我得以顺利完成本书。