本文翻译自《7 Critical Reasons Beginners Should Learn Go in 2021》。
为什么要学习Go,尤其是作为一个新手为什么要学习Go?
学习Go完全是一个流行的想法,有很多很好的理由–StackOverflow的[2020年开发者调查]中,Go在开发者中的受欢迎程度从2019年的第10位一直攀升到2020年的第5位。在[Insight Dice的调查]中,有整整32%的开发者想要学习它。它的薪水很高–在全球范围内都是这样,[StackOverflow调查]发现,Perl、Scala和Go程序员的薪水最高。
它也很实用,因为它是谷歌专门开发的,目的是 “消除谷歌软件开发的缓慢和笨拙,从而使开发过程更有成效和可扩展性”。该语言是由那些编写–以及阅读、调试和维护大型软件系统的人设计的,也是为他们自己而设计的。"
对于那些想要[在线学习计算机科学]的人来说,还值得一提的是,Go是一种很好的基础语言,它可以帮助建立学习基础,这将帮助你继续学习的其他语言。除了让Go成为一门很好的学习语言的所有原因之外,还有七个因素使其成为一门专门针对初级编码人员的完美语言。为什么要在2021年学习Go?让我们看看这些理由。
1. 对于初学者来说,Go是一门容易学习的语言。
每个初学者都需要从一门语言开始。第二种语言总是更容易学习,所以你想从容易学习的东西开始。
Go是一门非常适合初学者的语言,因为它的[语法简单]–你不必花很多时间去翻阅参考文档。它简洁易读,这意味着你将能够理解你和其他人正在写的东西。它是可解析的,不需要任何类型信息或符号表,因为没有特定类型的上下文。
之所以这么简单,是因为Google这个公司很好地雇佣了很多新的程序员,他们正处于编码生涯的起步阶段。虽然他们可能有一定的编码知识,但Google开发的Go对他们来说很容易上手,而且不会抑制未来的任何语言学习,非常适合初学者。对于 "为什么要学习Go?"这个问题,首先最好的回答就是简单地说,它很容易。
2. Go是编程领域的一门新语言
既然这么新,为什么要学Go呢?有两个原因。第一,老语言有很多遗留的编码理想。因为Go比较新(2009年),所以例子、教程、库和框架大多会由有经验的编码者开发。虽然可能没有PERL那么多的教程,但这些教程和例子不会像许多其他语言教程那样包含遗留包袱。基本上,对于初学者来说,学习Go很简单。
其次,因为它是一门较新的语言,是为特定目的而创建的,而不是一种意外收获,如果你继续学习新的语言,它会教给你良好的习惯。
有一个Reddit帖子详细介绍了为什么你应该学习Golang,解释说你将不得不减少使用第三方库的次数,因为Go是一种自成一体的语言。此外,它很容易使用docstrings进行文档化–学习这些代码文档化的习惯会给你带来直接的实际好处。不像PHP等语言,它往往只有一种方法来完成任务,这种黑白分明的心态非常适合初学者学习第一门编码语言。最后,它的构建是面向未来的–无论编码线路上出现了什么,Go的创建是为了仍然与任何未来的应用程序或框架相关,无论它们是什么。
3. Go是一种并发语言
对于初学者来说,这样的好处可能比较难理解,因为它太直观了,但是很多其他编程语言都没有这样的特性。
从本质上来说,Go对于初学者来说是非常好的,因为你可以轻松地同时做多件事情。大多数生产软件系统需要能够同时做很多事情。虽然其他语言通常都有实现这一功能的机制,但它们可能过于复杂,速度缓慢,或者容易导致错误的代码。Go经常被开发者社区认为是简化并发应用程序的领导者。
4. Go可以帮助你在谷歌(或其他大公司)找到工作。
为什么要学习Go,最实际的答案是它可以帮助你更快地找到工作。正如这篇文章前面所说,Go是由Google开发的。对于任何程序员来说,无论其专业水平如何,在Google找到工作都是非常理想的。学习他们专门为帮助解决Google每天面临的复杂问题而开发和构建的语言,会让你更有优势。
Go的创造者Rob Pike在2012年的[主题演讲]中解释道。
Go编程语言是在2007年末被构想出来的,作为对我们在Google开发软件基础设施时遇到的一些问题的回答…多核处理器、网络系统、大规模计算集群和网络编程模型所带来的问题正在被解决,而不是正面解决。
几大面向用户的谷歌服务都使用它,包括Youtube和dl.google.com(提供Chrome、Android和其他下载的下载服务器)。Google的巨大影响力意味着其他公司也看到了Go提供的价值,并自己采用了它,包括BBC Worldwide、Canonical、Heroku、Nokia和Soundcloud。
5. Go为自由职业者提供了最好的时薪价格。
这也是Go非常适合初学者学习的另一个原因–并不是所有的编码初学者都已经做好了彻底改变职业的准备,他们可能更愿意在跳入一个完整的职业转折点之前,先在自由职业者的基础上测试一下自己的技能。Go为你提供了优秀的自由职业者费率,作为一个初级开发者。
[Upwork列出]的平均时薪为64美元/小时,只有Objective-C名列前茅。(Objective-C是苹果公司的老语言,很快就会被他们的新语言Swift所取代)。) 如果你想知道为什么要学习Go,考虑到即使你还没有做好转行的准备,你也可以利用这些知识来赚钱,这是很有意义的。
与许多其他推荐给初学者的编程语言如Python不同,Go是一门专业语言,因此需求量更大。在2021年学习Go,可以让你有机会检验自己的编码能力,并获得高额报酬,然后再一定要投身其中,辞去工作。
6. Go是为软件工程师而生,而不是为编码学者而生。
我们大多数人都直观地理解,如果你能立即掌握某样东西的价值,那么学习起来会更容易。因为Go被构建为一种实用的、解决问题的语言,所以它的大部分功能都是有意为之,而且它在创建过程中的每一个决定都在文档中得到支持和概述。与其他语言不同的是,在其他语言中,奇怪的怪癖是语言被设计为做其他事情时形成的遗留产物,而Go是有意的。这使得它非常适合想要了解规则背后的原因和方法的初学者。
首先,你可以看看Go的[命名惯例],它详细介绍了每一个命名惯例决定的情况。依赖关系、语义和语法都很清楚。支持语言的工具链,包括go tool、gofmt、godoc和gofix,都很容易使用。用Go的创造者的话来说,“Go更多的是关于软件工程,而不是关于编程语言研究的 。或者换句话说,它是为软件工程服务的语言设计。”
为什么要学习Go?因为Go是一门一切以实用为目的的语言。这也是它非常适合初学者学习的原因–很少有边缘情况下的例外,没有历史的怪癖,也没有无法解释的遗留文物。
7. 奖励:即使你很有经验,也有很多好处
2021年我会在本文中提到的 "为什么要学习Golang?"这个问题的最后答案是,一旦你把它作为你的第一语言来学习,有一大堆你可能不会注意到的优势,直到你学习第二语言,或者直到你进一步学习Go。作为初学者,这些优势可能现在还不是很有用,也不是很明显,但随着您在编码生涯中的发展(双关语),这些优势将使使用 Go 和其他语言进行编码变得更加愉快和有意义。
首先,它是一种快速语言。作为初学者,你可能没有比较的参考,但由于它的编译、静态类型和高效的垃圾收集,它是[最快的高级编程语言之一] 。
其次,它鼓励人们养成良好的文档习惯。当然,Google非常重视记录Go的责任,但它也帮助和鼓励编码者自我记录。"GoDoc是一个静态代码分析工具,它可以直接从你的代码中创建漂亮的文档页面,而不需要使用任何额外的语言,比如JavaDoc、PHPDoc或JSDoc来注释构造。只用英语。它使用尽可能多的信息,从你的代码中得到的信息来勾勒、结构和格式化文档,"KoFi小组[在他们对Go的描述中写道]。
除了速度和良好的编码习惯培养,Go还有一条稳定的学习曲线。虽然只需几个小时就可以学会基础知识,但你投入的越多,得到的收获就越多。
2021年为什么要学习Golang的最后思考
对于每一个想知道从哪里开始学习编程语言的初学者来说,可以提出几种不同的语言。然而,对于那些希望明智地花费时间的实用、高效的初学者来说,没有比Go更好的语言了。
Go很容易上手,设计简单,按目的构建,运行直观。此外,它适合绝大多数想要学习一门语言的初学者,因为他们想要学习一门语言的原因是实用而不是学术。
Rob Pike在他的主题演讲中说。
今天的计算环境几乎与正在使用的语言(主要是C++,Java和Python)的创建环境无关。
"为什么要学习Go?"在2021年,随着越来越多的语言出现,这是一个很好的问题。特别是对新手来说,选择一门适合初学者的语言是很有意义的,而且这门语言将为他们的程序员生涯服务,无论是作为自由职业者的工作、项目还是全职工作。这些好处应该让任何人都清楚地知道,在2021年,Go是一门非常适合初学者学习的语言。
讲师主页:tonybai_cn
讲师博客: Tony Bai
专栏:《改善Go语言编程质量的50个有效实践》
实战课:《Kubernetes实战:高可用集群搭建,配置,运维与应用》
免费课:《Kubernetes基础:开启云原生之门》