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

2018 年 3 月 25 日

第四届 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】,八五折优惠!

2018 年 3 月 25 日 20:592685
用户头像

发布了 134 篇内容, 共 89.1 次阅读, 收获喜欢 374 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第8周

大丁💸💵💴💶🚀🐟

敏捷开发:影响地图工作坊的反思

华为云开发者社区

敏捷开发 业务线 需求管理 需求 华为云

【API进阶之路】高考要考口语?我用多模态评测API做了一场10w+刷屏活动

华为云开发者社区

人工智能 学习 评测 API 华为云

抢占5G大市场 众盟科技助力企业跑赢短视频营销新赛道

人称T客

华青融天战略拓展总监王旭详解IT运维的九阳神功

DT极客

CompletableFuture运行流程源码详解

编号94530

Java 并发编程 多线程 CompletableFuture

产品、方案、生态三力齐发 英特尔驱动智能边缘价值迸发

飞天鱼2017

扎克伯格:从程序员到福布斯全球首富,他经历了什么?

北柯

作业

不在调上

区块链+国防安全,科技是核心战斗力

CECBC区块链专委会

单向链表合并节点

chenzt

架构师训练营第八周作业

sunnywhy

极客大学架构师训练营

如何在微服务团队中高效使用 Git 管理代码?

看山

git 微服务 高效

作业二

Kiroro

总结

chenzt

Spring系列:请问各位大佬为何要学spring?

简爱W

最新硬件虚拟化检测技术,让攻击者逃不出“楚门的世界”

百度安全

云计算 安全 虚拟化

英特尔®边缘软件中心重磅发布 一站式资源供给为应用开发创新赋能

飞天鱼2017

面试官问:如何设计一个安全的对外接口?

Java小咖秀

Java 面试 经验

第八周·总结·数据结构预算法

刘璐

域名凭什么能卖出亿元高价?

北柯

创业 互联网 域名解析

week8

不在调上

架构训练营第八周感悟

张锐

架构师第8周练习

小蚂蚁

云图说 | 快速创建一个kubernetes集群

华为云开发者社区

Kubernetes 虚拟机 集群容错 华为云 容器化

第八周作业

方堃

实现DevOps的三步工作法

看山

DevOps 凤凰项目

作业一

Kiroro

架构师训练营 - 学习总结 第 8 周

铁血杰克

第八周·命题作业

刘璐

AI大有可为:NAIE平台助力垃圾分类

华为云开发者社区

AI 模型训练 垃圾回收机制 数据集 华为云

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