BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 徐川 关注 10 他的粉丝 发布于 2018年3月26日. 估计阅读时间: 7 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT