注意:
由于国内特殊的网络原因,本文涉及到的部分网站可能无法直接打开,并非是链接错误。如需访问,需要使用魔法。
为了方便大家学习,部分无法访问的视频课程,我们提供了Bilibili的播放地址。部分LinkedIn Learning和Udemy等付费课程,也会提供课程下载地址。Go(有时被错误地称为 Golang)是一种静态类型的编译编程语言,由 Google 工程师 Robert Griesemer、Rob Pike 和 Ken Thompson 设计。
它以具有 Python 或 Ruby 等动态语言的自然语法而闻名,但具有 C 或 C++ 等编译语言的高效性能。Go 是开源的,它的创建是为了提供一流的并发和并行支持,以充分利用多核处理器,并且用其他语言编写通常很笨拙。
Go 是一种高级语言,具有面向对象编程(虽然不完全)和使用垃圾回收的内存管理等功能,但也支持指针等低级功能,尽管它禁用了指针算法以防止出现问题。
在本文中,我挑选了最好的在线课程、教程和资源来学习 Go,这是一种高级编程语言,具有低级语言的快速性能。它在 Google 被设计为一种静态类型和编译的编程语言,并且专门为使并发易于编写而量身定制。它用于创建各种程序,从小型个人脚本到大型基于云的应用程序。
本指南中的所有课程都是免费或免费审核的,除了最后一门Udemy课程(提供下载渠道)。
1. Getting Started with Go (Coursera)
我们推荐的第一门Go语言入门课程,是加州大学欧文分校的提供的 Getting Started with Go,可以在Coursera平台上学习。
这个免费旁听的课程是为任何有编程经验的人设计的,他们想要了解 Go 编程语言。
你将探索数据类型、协议、格式和编写包含 RFC 和 JSON 的代码,在课程结束时,你将掌握实现简单 Go 程序所需的基础知识。
本课程*先介绍 Go 的独特方面以及为什么要使用它进行编程。
你将学习如何设置 Go 环境和 Go 的代码组织方法,然后编写一个打印“Hello, World”的简单程序以及一些关于并发的课程(Go 是为这个特性而构建的)。
接下来,你将学习 Go 中的基本数据类型,如整数、浮点数和字符串。你将学习如何使用这些数据类型,以及一种称为指针的特殊数据类型,用于低级内存分配。在记下一些控制流结构之前,你还可以描述 Go 中的垃圾收集过程。
在学习了基本数据类型之后,你将继续学习更复杂的数据类型,复合数据类型。复合数据是将其他数据类型聚合在一起的数据类型,你将学习数组、切片、映射和结构。你将学习如何在编写代码时有效地利用这些复杂的数据类型。
标准化的协议和格式允许你的代码与其他系统进行交互,在本课程的最后一个模块中,你将了解帮助你在不同系统之间进行通信的远程函数调用 (RFC) 以及提供通信接口的 JavaScript 对象表示法 (JSON)。此外,你将学习如何编写从外部文件访问和操作数据的例程。
本课程为期 4 周,每周需要 2-3 小时才能完成,你将主要通过观看讲座视频来学习。
那些为证书付费的人将可以参加有助于巩固记忆的测验和同行评分的编码作业,这将为你提供学习其他人的解决方案的宝贵机会。
机构加州大学尔湾分校提供者Coursera讲师Ian Harris等级中级时长总共 8–12 小时学生数52K评分4.6 / 5.0 (1.9K)证书付费本课程是系列课程 Programming with Google Go Specialization 三门课程中的第一门,完成此课程之后,你可以继续学习这个系列的第二门课程 Functions, Methods, and Interfaces in Go
Ian G. Harris 是加州大学欧文分校计算机科学系本科教育的副主席。他目前担任多个主要会议的程序委员会成员,如 IEEE/ACM 设计自动化会议、IEEE 计算机辅助设计国际会议和 IEEE 面向硬件的安全与信任 (HOST)。
最佳 Go语言 课程,我们的第二个选择是Microsoft Learn 提供的 Take your first steps with Go
在这个带有免费证书的课程中,你将学习在 Go 中构建简单程序所需的基本语法和思维过程。到最后,你将能够编写利用处理器多线程功能的程序。
要参加本课程,你需要至少熟悉一种编程语言。
通过回顾 Go 的历史和相对于其他编程语言的主要功能,你将迈出使用 Go 的第一步。然后,在编写第一个“Hello World!”之前,你将安装和配置 Go,仔细查看它的代码包和应用。
然后,你将通过探索其基本数据类型、变量、函数和控制结构来进行更深入的研究。Go 有条件语句和循环,但你还将了解 Go 的 defer、panic 和 recovery 函数以更好地处理数据。你还将学习如何创建自己的包以在其他文件中重用。
接下来,你将了解数组、切片、映射和结构等聚合类型,它们是操作多种类型数据的基础。你还需要知道如何处理最终会弹出的错误,以及如何记录它们,以便更轻松地修复代码。
面向对象编程 (OOP) 可以在 Go 中实现。你将学习 OOP 原则,如封装和组合,然后讨论 Go 的接口和方法以及它们与你所知道的其他编程语言的不同之处。
在结束本课程之前,你还将深入了解 Go**有用的功能并发性,方法是使用你所学到的关于 Go 的所有知识来编写和测试一个完整的程序。
本课程时长 5-6 小时,你可以通过阅读和完成课程教程来学习。在每个模块结束时,你将完成编码练习和知识检查,以测试你对材料的理解。
机构微软提供者微软学习等级中级时长总共 5–6 小时评分4.8 / 5.0 (2.4K)证书免费Microsoft Learn 是一个免费的在线培训平台,可为 Microsoft 产品和编程语言(如 C++、C#、Python 和 TypeScript)提供交互式学习。
他们还提供免费的在线考试和证书。
Golang for Tourists 是 Go 编程语言的免费入门课程。
它突出了 Go 的主要特性(并发、内存管理、异常处理等),并教你如何使用这些特性进行编程。
参加本课程不需要编程经验。
*先,你会学习如何在 Go 中编码所需的开发环境。然后,你会学习 Go 应用程序的典型结构,代码如何组成文件并组织在包中,以及基本编程,如数据类型(布尔值、字符串)、控制语句(if、for)和函数。
然后,你将通过了解不同的容器类型(因为它们存储数据而得名),如数组、切片、映射和结构,来加深对数据类型的理解。你将探索每个用例以及何时更喜欢其中一个。
Go 以其并发的实现而闻名,你将学习如何将多行代码的执行与 Goroutine 和通道同步,并避免尝试编写此类代码时的陷阱。
然后,出将学习 Go 中的指针以及何时可以在程序中使用它们。
最后,出将了解接口以及如何在文件和网络编程的上下文中处理数据输入和输出。
此 YouTube 播放列表时长为 19-20 小时,在每节课结束时,你将能够通过提供的练习来练习所学知识。此外,在每个部分结束时,你将完成一个实验来总结您在该部分中学到的所有内容,视频中还提供了解决方案。
课程来源YouTube国内观看https://www.bilibili.com/video/BV12P4y1U7PM/讲师Rob Adams等级初级时长总共 19–20 小时播放量10K证书无如果您想支持他的工作,Udemy 上有本课程的付费版本(包括证书),或者你也可以到口袋资源网去下载。
Rob Adams 的 YouTube 频道教授计算机编程、如何编写自己的程序、一些新技术,并提供有关计算机技术趋势的一般评论。
在这个 href="https://www.karanpratapsingh.com/courses/go">免费课程中,你将掌握 Go 编程语言的基础知识和高级功能。你可以从头开始,通过学习逐步达到熟练程度。
该课程以简单的英语编写,并附有直观的示例,这使得它适合任何英语薄弱的人。
参加本课程不需要编程经验。
该课程从 Go 编程语言的历史以及如何设置它开始。然后,你将通过编写和编译您的第一个“Hello World!”来学习 Go 程序的结构脚本。
你将使用基本要素(变量、数据类型、控制流和函数)来编写简单但功能齐全的代码。此外,你还将通过模块、包和工作区掌握代码组织。
本课程的下一部分将深入探讨高级编程概念,特别是指针、数组、切片和映射等数据结构。这些数据结构是编写实际应用程序的关键。你还将了解方法,它们是在数据结构上定义的函数。
继续前进,你将学习专业开发人员在其程序中使用的高级概念。接口允许你为类似类型的对象定义行为,而泛型允许您编写与类型无关的代码。还涵盖了错误处理和代码测试等常见做法,以帮助修复出现的烦人错误。
在课程的最后一章,你将学习并发。ni 将学习 goroutines 如何通过通道实现这一点,以确保对共享资源的访问是同步的。
最后,你将通过学习一些在现实**中使用的高级并发模式来结束本课程。
本课程时长 2-4 小时,你可以通过阅读课程材料并尝试提供的代码示例来学习。
网站http://karanpratapsingh.com讲师Karan Pratap Singh等级初级时长总共 2–4 小时证书无来自 Go 编程语言的创造者,A Tour of Go 涵盖了任何感兴趣的开发人员都应该知道的 Go 的主要功能。在免费交互式课程结束时,你将了解基础知识以及其他更高级的概念,如接口、泛型和并发性。
要参加本课程,你需要具备一些编程知识。
该课程*先详细说明每个程序的结构,每个 Go 程序都由包组成。你将学习如何在 Go 中导入包、定义变量和声明函数。你还将了解不同的流控制语句以及在什么情况下使用它们,特别是for、if、else、switch和defer语句。
接下来,你将学习如何使用结构来自定义自己的数据类型,并学习复合数据类型,如数组、切片和映射。
*先,你将学习如何在类型上定义方法。然后,弄清楚如何声明接口,Go 如何支持泛型编程,最后这些组件如何在面向类型编程的大图景中组合在一起。
本课程的最后一个模块介绍了并发性,这是该语言的一个关键特性。由于 goroutines 和 channels,并发编程在 Go 中变得轻而易举。你将了解它们的用法以及编码时可能使用的不同并发模式。
本课程时长 1-2 小时,你将通过学习课程模块并尝试课程中显示的示例程序来学习。
机构Go官方指南等级中级工作量总共 1-2 小时证书没有任何除了英文之外,本课程还提供 9 种其他语言版本,包括简体中文版本。
Exercism 是一个免费的在线编码平台,你可以在其中通过精心设计的编程练习来练习您的 Go 编码技能。作为一名学习开发人员,通过动手练习来培养自己的技能非常重要。
这个平台最好的一点是你将获得免费的个人指导。完成练习后,你将收到有关您的代码的个性化反馈。我不能强调这有多大帮助,尤其是对于新程序员来说,因为他们还没有编程经验来判断自己代码的质量。
各种经验水平的程序员都可以找到适合他们难度的练习,因为练习的范围从是从简单逐渐到具有挑战性。
该课程有一个学习模式,通过完成难度增加的教程和练习,帮助初学者从头开始建立他们的知识。
你将从打印“Hello, World!”等基础知识开始。然后,你将了解 Go 的各种数据类型,如整数、字符串和布尔值,以及其他概念,如条件、循环、引发异常、枚举等。这样,你将熟悉 Go 的许多功能。
完成教程后,你可以在三种不同难度的练习中练习所学内容:简单、中等和困难。
一些简单的练习包括计算两条 DNA 链之间的汉明差,确定一个短语是否是等值线,或者找出给定的年份是否是闰年。
中等练习包括实现各种错误处理和资源管理、模拟银行账户和实现树构建算法
一些最具挑战性的练习包括实现反应式编程范式和为Forth实现一个简单的求值器。
本课程是自定进度的,因此你可以花时间完成 135 个动手编程练习。
每个练习都附带对你的代码的自动分析以及个人指导,以帮助你了解代码的优势和缺陷。
机构Exercism等级初级-中级-高级工作量自定进度学生数73K证书无Exercism 提供了 50 多种编程语言的练习,例如 Python、Kotlin、F# 和 WebAssembly。
Exercism 的使命是帮助每个人真正擅长编程,无论他们的背景如何,分享对编程的热爱,并帮助人们提高技能,作为他们向上社会流动的一部分。
Practical Go Lessons 是一个很好的免费入门教程,通过 Go 的视角为初学者进入编程**。
它教授重要的计算机科学概念,所有程序员都需要了解这些概念,以帮助他们编写和理解高效的代码。
参加本课程不需要编程经验。
编程只能在计算机上完成,因此计算机基础知识与编程知识同样重要。你将通过了解什么是程序以及计算机的四个硬件组件来开始本课程。之后,你将了解 Go 语言背后的历史和动机。
接下来,你将学会设置开发环境以准备编写和编译您的第一个 Go 程序!为此,你将了解不同的数字系统(如二进制)和不同的编码系统(如 Unicode)。然后,你将学习变量、常量及其基本类型。还将教授控制语句以及允许你重用代码块的功能。
代码组织有助于保持程序整洁。你将了解 Go 包和模块以及如何使用它们。你还将深入研究指针、数组、切片和映射等数据结构,并了解这些数据结构在编程中的用途非常广泛。
接下来,你将了解 Go 更复杂的方面,例如错误处理和日志记录、匿名函数,以及最重要的并发性。并发编程允许同时运行多行代码。你将学习并发编程模式以及面向对象编程等其他模式。
本课程时长 6-10 小时,你可以通过阅读各章、遵循代码示例并测试你对章末问题的知识进行学习。
网站http://practical-go-lessons.com讲师Maximilien Andile等级初级时长总共 6–10 小时证书无Maximilien Andile 还提供了一个付费视频课程,他在其中使用 Go、Vue.js 和 AWS 构建了一个电子商务网站。
Codecademy 的Learn Go 涵盖了 Go 的基础知识,在免费的受限访问课程结束时,你将能够构建简单的 Go 程序。
参加本课程无需具备编程知识。
本课程*先介绍程序的工作原理,从 Go 组织代码的方式开始。然后,你将了解 Go 编译器以及如何在编译后运行程序。
是时候开始编程了!变量在编程中无处不在。你将学习如何在变量中创建和存储值,特别强调值可能具有的不同类型。接下来,你将了解允许您获取用户输入然后显示输出的 fmt 包,以及使用它来创建交互式程序。
所以你现在知道代码是逐行执行的。但是你知道你可以控制将执行哪个代码块吗?你将学习布尔表达式和条件来帮助您控制程序的流程,就好像程序可以自己做出决定一样。
函数允许你重复代码块而无需再次重写它们。你将学习如何定义函数、从任何地方调用它们并将参数传递给它们。
最后,你将了解内存地址和指针,这是计算机科学的基本组成部分。
本课程时长 9 小时,你将通过交互式的动手编码教程来学习。
此外,如果你拥有 Codecademy Pro(付费),你将能够在完成课程后获得证书,你还可以完成和展示三个投资组合项目,并可以访问可以重温你对该语言的记忆的测验。
机构Codecademy等级初学者时长共 9 小时证书付费该课程是与谷歌合作建立的。
Codecademy 由 Zach Sims 和 Ryan Bubinski 共同创立,目标是让**上的任何人都能学习在 21 世纪取得成功所需的技能。
他们提供 12 种不同编程语言的免费课程,其中最受欢迎的是 Python、Java、Ruby、C++、C# 和 Swift。
Learn How To Code: Google’s Go (golang) Programming Language,在这门全面的 Udemy 付费课程中,你将学习在 Go 中编程所需的所有知识。
课程配套有很多练习,可以帮助初出茅庐的程序员展开翅膀或帮助经验丰富的程序员测试他们的技能。
参加本课程不需要任何必备知识。
*先,您将了解编程语言的简史。然后,你将熟悉开发人员在其工作流程中使用的日常工具,终端、GitHub、集成开发环境 (IDE) 等。你还将了解 Go 程序的整体结构,并了解包、模块和依赖项之间的区别。
接下来,你将开始编程。你将从可以包含不同类型值的变量开始,然后继续控制可以做出决策或重复某些代码行的流语句。再加上将数据组合在一起的数据结构,以及允许您重用代码的功能,你将拥有大量工具来创建一个简单的漂亮程序。
编程与计算机科学齐头并进。你将学习指向内存中特定地址的指针。你还将了解 JSON 等标准化格式,这些格式允许不同人编写的程序在彼此之间进行通信。并发性也是充分利用处理器的关键主题,因此你将学习如何使用 goroutine 和通道实现并发性。
课程的最后部分涵盖了任何开发人员都应该具备的良好实践,例如错误处理、记录代码、单元测试和基准测试。有了这些,你会发现自己已准备好应对任何编程项目。
本课程有 45 小时的材料,你将通过观看有用的讲座视频并尝试动手完成带有解决方案的编码练习来学习。
此外,课程讲师在问答部分积*回答问题,因此如果你在练习方面需要任何帮助,你可以期待得到迅速的答复。
课程来源Udemy课程下载https://www.koudaizy.com/tutorials/learn-how-to-code/讲师Todd McLeod等级初级时长总共 45 小时学生数132K评分4.6 / 5.0 (20K)证书付费Todd McLeod 是加利福尼亚的一名终身教授,在学院和大学任教超过 20 年。他是一位自学者,在出版业、文学和电影方面拥有 48 本书的经验。
根据TIOBE 指数,Go 是第 11 大最受欢迎的编程语言,预计还会进一步上升。在 2022 年 Stack Overflow 调查中,Go 是第 13 位最常用和第 8 位最受欢迎的编程语言。
本Go语言学习指南中介绍的免费Go语言课程,足够帮助你掌握坚实的Go语言知识。
如果你愿意为学习支付一点费用,那么你将会获得更多的高质量课程。口袋资源网是一个不错的选择,在获得高质量课程的同时,还能帮你节约大量的成本。
本文由我的个人博客疯狂的小黑原创发布,欢迎交流,探讨,共同学习。
免责声明:本站所有内容及图片均采集来源于网络,并无商业使用,如若侵权请联系删除。