专访 William Kennedy:如何学习 Go 语言

  • 徐川

2018 年 3 月 25 日

话题:语言 & 开发Go

第四届 GopherChina 大会将在 4 月 14 日于上海举办,这次大会邀请了 William(Bill) Kennedy 前来举办 Go 语言培训。我们借此机会对他进行了采访,了解他对 Go 语言的开发以及对新人学习的一些建议。

受访嘉宾介绍:

Bill 是 Gopher US 大会的组织者之一,《Go in Action》作者,Bill 有着 25 年的开发软件和应用的经验。 2013 年开始接触 Go 并成为了 Go 的布道者,至今已经培训过来自 100 多家公司的超过 2000 多的工程师。Bill 是博客 GoingGo.net 的作者。

InfoQ:大多数中国 Go 开发者都是从你的博客认识你,能简单的介绍一下你自己吗?

William:我叫 William Kennedy。我的朋友叫我 Bill。自 1991 年以来,我一直从事软件开发工作。职业生涯的大部分时间是在微软平台上编写基于多线程的软件。2013 年,Ardan Labs 面临一次困境,就是我们需要从 Windows 中获得所提供的开发服务。然而使用微软的许可成本很高,使得 Ardan Labs 比其他公司更贵。直到我发现了 Go。我需要一种编程语言,可以让我在 Linux 编写软件。

InfoQ:你为什么如此喜欢 Golang,最喜欢它的哪些特性?

William:Go 语言是一个从头到尾都非常神奇的工程设计。我最喜欢的是语言之间的平衡,把机器抽象出来,却让你有能力理解代码对机器的影响。这是我所见过的一个工程项目简单性和可读性的终极指南。

InfoQ:您接触过 Golang 官方团队吗,能否描述一下他们?

William:很幸运,我遇到了很多 Go 语言团队的成员。他们是一群了不起的工程师和人。他们非常关心社区和 Go 。他们是非常务实的人,不会匆忙做出决定。我认为这对每个人都有很大的好处。你能感受到他们很容易接近。如果你在使用 Go 上遇到问题,不要犹豫,给他们发一封电子邮件,或者在 Go-Nuts 邮件列表上联系他们。他们会回应。

InfoQ:我们知道 Golang 有 Docker、Kubernetes 等非常成功的项目,您知道它们为什么会选择 Golang 吗?

William:这是个有趣的问题。我不是这些项目的开发者,所以我不能直接回答你为什么,只能猜测。我认为 Go 的最大优势之一是降低 / 消除了开发人员需要关注的低级技术工程问题。内存管理和调度并行工作负载可能是最大的两个。这允许开发人员在不损失软件性能的情况下更高效。这是关键。作为一个行业,我们把生产力作为我们应该优先考虑的事情。但成本一直都是直观的表现。我认为 Go 已经改变了这一点。

InfoQ:您所了解的硅谷创业公司使用 Golang 的多吗?

William:这是另一个棘手的问题。在旧金山有很多创业公司,我相信他们都在为他们的产品和服务选择正确的工具。我们必须记住,Go 只是一个工具,只是一个工具而已。Go 是解决相同于谷歌的问题一个很好的工具。网络、分布式计算、高容量的事务处理软件、cli 工具等等,但是当我和全世界的人交谈时,似乎至少是我遇到的每个项目的一小部分。

InfoQ:如何快速掌握一门编程语言?

William:这对不同的人来说是不同的。有些人喜欢阅读,有些人喜欢看视频。对我来说,我觉得应该先学会读懂代码,甚至比你先开始学习写代码重要,我们是少数几个先教人写然后再教人读的行业。我们所说的编写更好的软件、代码审查、测试和理解成本的一切都围绕着我们阅读代码的能力。

我想说,快速掌握一门语言并不重要,但要快速、高效地完成任务。快速的编写代码以确保正确性 (完整性、可读性和简单性)。同样,这需要学习如何阅读代码,如何与人合作。

InfoQ:对于 Go 语言新人你有什么学习建议吗?学习 Go 语言的最佳实践是什么,能否推荐一些书籍?

William:带有私心的说,我认为我写的行动手册是一个不错的选择。这本书比较健谈,所以如果你想要一本更学术性的书,这本书就更好了。阅读两本书都能提供很大的平衡。

另外也推荐我的博客 GoingGo.net,它是我在这本书之后花费时间很多的地方。我还有一个视频,我的训练课程资料 Ultimate Go 在 Safari 网上,我认为这也是一个很好的选择。大部分视频培训网站都有很好的素材。托德·麦克劳德非常棒,还有其他人。

InfoQ:对于 Golang 培训课程的参与者,他们需要准备些什么吗?你想对他们说些什么?

William:以开放的心态面对自己。要想成为一个高效的开发人员,我相信您需要离开面向对象的设计,转向面向数据的设计。这需要你以不同的方式思考工程。采用新技术很容易,但是要采用新的思维方式是很困难的。我认为这对 Go 很重要。

InfoQ:您怎么看待 Gopher China 社区?

William:很高兴能见到来自世界上最大的社区的 gopher。我得到了环游世界的祝福,并遇见了许多在美国以外的人,他们都像我一样充满激情。我遇到的每个人都很了不起,都在从事令人兴奋的项目。在中国和这个社区见面是很特别的。这是罕见的,我感到谦卑和荣幸有这样的机会。我很高兴能和人们交谈,了解他们的项目,他们的成功和关注。我希望有一天,在中国能有更多的机会成为全球大家庭的一员。我们相互学习,在中国的经验水平对每个人都是有益的。

我知道我将会遇到令人惊叹的工程师和拥有丰富经验和知识的人。我想我会离开中国,学到比我在那里学到的更多的东西。这让我很兴奋。

InfoQ:您认为 Go 语言的未来会怎样?

William:我看到全世界对 Go 语言的培训的需求越来越大。我看不出这种趋势有减速的迹象。我的公司 Ardan Labs 正在寻找机会从事真正令人兴奋的项目。Go 语言的未来无疑是充满前景的。

第四届 Gopher China 大会 4 月将在上海举办,今年第一次增加了会前的 Workshop 。本届大会从规模到内容将创历史新高,并继续赠送 GoPher 限量 T 恤。点此报名大会,输入优惠码【Geekbang】,八五折优惠!

语言 & 开发Go