Go语言适合每个人

翻译自:Go is for everyone,作者:Matt Aimonetti

       Go是谷歌创建的一种现代编程语言。它被设计成一种非常理性(读起来不花哨)、简单和快速的编程语言。由于其熟悉性、简单性、可伸缩性、性能和并发性,它正迅速成为关键的新编程语言之一。它是现代系统解决方案的通用语言(Docker、Kubernetes、CoreOS、Hashicorp……但是这篇文章并不是关于Go有多棒,而是关于让没有经验的开发人员更容易使用它。

Go社区让人感觉遥不可及

Go是由一群经验丰富的人在一家非常成熟的科技公司(谷歌)的背景下编写和开发的。正因为如此,早期的社区,大多数都是经验丰富的开发人员,专注于计算机科学并对特定的技术问题感兴趣。与许多其他编程社区相比,我们的社区有时感觉更干燥,因为我们非常关注底层细节和工具,而不太关注为新来者开辟道路。

我们希望变得更容易接近

作为一名首席技术官和一家科技初创公司的联合创始人,我在Go上押了很多赌注。它为我们提供了巨大的服务,说实话,我爱我们的社区。但我也多次听说,Go是一种高级语言,只适合有经验的开发人员使用。或者Go社区中充满了专家,使得新开发人员很难“闯入”。所有社区都需要新人来挑战“守旧派”,推动新思想,成为未来的领导者。没有新成员,社区就会老化,最终消失。我们需要接纳新用户,并确保我们不会因为没有考虑到的小问题而让经验不足的开发人员陷入困境。

Go不适合我,我刚开始学编程

这是我经常听到的话题。作为一名新的开发人员,进入编程的精彩世界,他们被告知,应该开始使用JavaScript (JS)、Ruby或Python。因为其他语言太复杂,一个新手不能也不应该试着学习一个“高级”的语言。

我完全不同意。当然,使用这些语言,您将更快地获得第一次运行代码的体验,但是您也可能很快地遇到其他问题,比如语法和仅在代码运行时才报告的其他错误。你会发现一些行为被认为是奇怪的,因为你(还)不理解它们。我以前写过,对我来说,这就像用糟糕的条款获得信用额度。我确实认为JS、Ruby、Python等是很棒的语言,应该学习,但是我认为如果所有的开发人员首先学习Go,那么很多开发人员也会从中受益。

Go本身并不是革命性的;它确实有一些比较独特的范例,但是它的语法和概念与大多数编程语言非常相似。事实上,如果你很好地掌握了Go,你可能很快就能学会Ruby、Java、Python、JS、c#,因为你已经掌握了所有核心概念的心理映射。因为Go是一种小型语言(该语言本身具有有限的特性集),所以大多数其他语言都具有与Go类似的编程概念(除了并发性),但是在上面添加了一些额外的层。因此,人们可以很容易地说,学习Go更容易,可以作为探索其他语言的基础。Go不能解决所有问题,许多开发人员学习目标最终转向前端语言JS /TypeScript,有些人会喜欢更经典的面向对象的方法,有些人会想要更多的灵活性在类型语言中,一些不会有一个选择,将写在他们的工作中使用的编程语言。这完全没问题!但是学习Go,这样你就有了一个坚实的基础,然后你就可以转向其他你可能更喜欢或更适合你需要的东西。

内容不适合初学者

这让我很难过,但这是真的: t适合初学者的学习内容太少了。因为我们的社区是由经验丰富的开发人员创建的,所以我们为现有的开发人员创建了很多内容,而不是完全的新手。另一方面,Ruby和javascript社区非常庞大,总是有大量涌入全新快速创建web应用程序开发人员的承诺所吸引(在学习基础的成本来咬你迟早)。
Swift取代了Objective-C,但苹果和社区在吸引新开发者方面做得很出色。当然,对于苹果来说,吸引新开发人员要容易一些,因为他们通常都有动力尽可能快地构建一些有形的东西,而且苹果真的希望在他们的平台上产生原生应用程序的收入。

改进教材和新的用户体验

我认为我们没有任何理由不能做同样的事情,并且在教授基础知识、分享知识和欢迎新开发人员方面做得更好。毕竟,我们自夸我们的语言很简单;是时候向新开发人员表明,尽早投资Go对他们来说是正确的。让我们来弥补文档上的差距,并让入职变得令人兴奋。

好消息是我们都是新手,我们都学到了一些东西。如果你学到了一些东西,你应该能够简单地解释它。开始写一些小博客,或者在当地发表一些关于Go基本概念的演讲。可以解释如何使用printf函数,如何在包中组织代码,或者展示如何使用godoc或您最喜欢的IDE的特性。我们的语言很简单,新开发人员面临的问题也很有限;让我们确保我们为新地鼠在追求知识的过程中创造令人敬畏的内容!!
如果你在洛杉矶。下个月在圣莫尼卡举行的Go meeting up将专注于招募新开发人员,并了解我们可以改进什么。加入我们吧!
感谢卡莉西亚·坎波斯(Carlisia Campos)、蒂芙尼·杰尼甘(Tiffany Jernigan)、安德鲁·格兰德(Andrew Gerrand)和弗朗西斯卡·坎波伊·弗洛雷斯(Francesc Campoy Flores)阅读本文草稿并提供反馈。

你可能感兴趣的:(Golang)