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

专访William Kennedy:如何学习Go语言相关推荐

  1. 系统学习Go语言,有这几本书就够了!

    最新个人博客 shankusu.me 以下内容转载自 https://tonybai.com/2020/11/04/the-recommend-books-list-for-learning-go/ ...

  2. 推荐几本学习Go语言的书

    最近有一本<Go语言高级编程>的新书上架了,小编觉着有必要把之前的优秀Go语言书也带大家来回顾一下. 最新上架: Go语言高级编程 作者:柴树杉 曹春晖 一本能满足Gopher好奇心的Go ...

  3. 想系统学习GO语言(Golang),能推荐几本靠谱的书吗?

    以下内容来自知乎: 链接:https://www.zhihu.com/question/30461290 学习任何一门语言,都要学习好基础,把基础打牢,那些框架对你来说都是工具,你自己的基础好,懂得了 ...

  4. 如何零基础学习python语言_零基础如何入门Python语言?有哪些学习建议?

    众所周知,Python目前是最受欢迎的编程语言之一,尤其是对于零基础的初学者来说,Python语言更是十分的友好.因此,不少初学者常常会有这样一个共同的疑惑,零基础如何入门Python语言?本文就来给 ...

  5. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

  6. 参加前端培训主要学习什么语言

    web前端近几年很多人都在学习中,但是想要学好web前端技术,基础是非常重要的,参加web前端培训机构可以进行系统的学习,下面就给大家详细的介绍一下参加前端培训主要学习什么语言? 参加前端培训主要学习 ...

  7. c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  8. 机器人c语言教程pdf,机器人卡雷尔学习C语言.pdf

    机器人卡雷尔学习 C 语言 新疆农业大学计算机与信息工程学院 张太红.陈燕红编著,2013 年 9 月 斯坦福大学计算机科学系 埃里克·罗伯茨著 (Java版),2005年9月 目 录 第一章 机器人 ...

  9. 独家 | 手把手教你学习R语言(附资源链接)

    作者:NSS 翻译:杨金鸿 术语校对:韩海畴 全文校对:林亦霖 本文约3000字,建议阅读7分钟. 本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者 ...

最新文章

  1. java-并发-并发容器(3)
  2. git把本地代码上传(更新)到github上
  3. 内存对齐分配策略(含位域模式)
  4. 问题解决:使用angularjs、ionic框架如何实现返回上一页并刷新
  5. python课程结课感悟_科学网—《互联网+引论与Python》课堂感想(七) - 张忆文的博文...
  6. CSS Animatie是一款在线制作CSS3动画的工具,可以在线直接制作CSS3动画效果,生成代码...
  7. php curl get post请求
  8. Java的Jsoup爬虫
  9. 清除计算机策略,怎么删除组策略
  10. 1.U3D和U3D安装介绍
  11. 中国碳酸钾市场趋势报告、技术动态创新及市场预测
  12. TaoFramework
  13. alisoft 开放旺旺SDK,我也来凑合一下
  14. QQ小游戏接入问题:Uncaught TypeError: wx.saveFile is not a function
  15. 2021-08-23-Nginx安装与部署项目
  16. C# TCP/UDP网络通讯调试助手(含源码)
  17. MindManager2021 Win/Mac v2020.19.思维导图软件安装下载激活教程
  18. ES关键字排序报错 reason=Fielddata is disabled on text fields by default. Set fielddata=true on 关键字 in order
  19. MySQL 一条语句实现若记录存在则更新,不存在则插入
  20. vue中Echarts之省市地图(北京市)展示相关数据

热门文章

  1. native关键字(本地方法)、 java调用so动态链接库
  2. 2012-2013年下学期计划
  3. (转)PWA(Progressive Web App)渐进式Web应用程序
  4. NOIP 2017 d2t2 70points
  5. Nginx防盗链、访问控制、Nginx解析PHP相关配置、Nginx代理
  6. 管人、管团队、管项目,如何让团队管理者成为技术团队中的发动机?
  7. seo高手已经掌握的秒收教程
  8. 由浅入深laravel教程 :中间件
  9. 配置虚拟主机 和 打war包
  10. 06HTML基础--多媒体标签