掌握Golang的最佳资源之一
在这篇文章中,我将列出一些在互联网上学习和掌握Golang的最佳资源。
由于每个用户对学习方式都有自己的偏好,因此我将涵盖基于文本的文章、教程、视频和Golang周围的热门课程。
Golang在受欢迎度方面增长得相当快,一旦你开始探索它,你就会爱上Go。
开发者指南
拥有约50,000名学生的这个完整的Go学习资源包是最好的之一。这门课程经过了广泛的测试,对大多数学生都有效;一旦购买,你就会终身拥有访问权限。如果你喜欢通过完整的视频课程学习,那么这正是你需要的!
这个course适合初学者和想要重新学习入门概念的人。该课程有9小时的按需视频,还提供额外的代码资源和作业。
该课程涵盖的一些主题包括:
- 设置、安装和语言基础知识。
- 包和文件结构
- 变量、函数、数组和切片
- 对map、struct和interface的深入介绍
- 通道和go协程(并发编程)
训练营
在Udemy上拥有300多个讲座的complete Bootcamp course绝对是一个不错的选择,是学习Golang的好地方。你将通过构建以下应用程序来学习:
- 日志解析器
- 文件扫描器
- 垃圾邮件伪装器
除此之外,该课程还提供1000多个实践练习。
除了讲解Go的基本概念,如structs、接口和通道,本课程还有一个有趣的项目,你将学习如何制作一个弹跳球的动画。
你还将获得一张课程完成证书。
Go之旅
嗯,我是官方Golang文档、博客和教程的忠实粉丝。这个This interactive course是免费的,不需要任何本地设置。只需打开网站,从基础开始学习,并为每个主题提供实际的代码。
如果你只是想探索并想学习基础知识而不需要任何设置,那么这是你应该开始的课程。
Go示例
这不完全是一门完整的课程,而是一个在你忘记基础知识时求助的好地方。该网站以简单的方式涵盖了所有概念,包括介绍性文本和完整的运行示例。该网站的设计简洁明了,专注于学习。一些基础介绍性文章包括:
- 变量和常量
- 循环
- 条件判断和开关语句
- 数组和切片
- 映射
- 范围
- 函数
几乎涵盖了你需要的所有主题!请进行check it out并将其加入书签以供参考。
在Y分钟内学会X
嗯,如果你想快速了解基础知识,那么learn X in Y minutes是一个很棒的资源,不仅适用于Go,还适用于几乎所有编程语言。这是由社区驱动的,涵盖了许多主题在一页上。一旦你在Go上熟练起来,请回馈社区。
下面是教程中的一段代码片段,解释了一个函数中的并发编程。
// 我们将使用inc并发地增加一些数字。
func learnConcurrency() {
// 与之前使用的相同的make函数来创建一个切片。make分配和初始化切片、映射和通道。
c := make(chan int)
// 启动三个并发的goroutine。数字将会并发递增,如果机器能力和配置正确,则可能是并行的。所有三个goroutine都发送到相同的通道。
go inc(0, c) // go是一个语句,它启动一个新的goroutine。
go inc(10, c)
go inc(-805, c)
// 从通道中读取三个结果并打印出来。
// 结果的到达顺序无法预测!
fmt.Println(<-c, <-c, <-c) // 通道在右边,<-是"接收"操作符。
cs := make(chan string) // 另一个通道,这个处理字符串。
ccs := make(chan chan string) // 一个字符串通道的通道。
go func() { c <- 84 }() // 启动一个新的goroutine仅仅为了发送一个值。
go func() { cs <- "wordy" }() // 再次,这次是为了cs。
// select的语法类似于switch语句,但是每个case都涉及一个通道操作。它从准备通信的case中随机选择一个case。
select {
case i := <-c: // 接收到的值可以赋值给一个变量,
fmt.Printf("这是一个%T", i)
case <-cs: // 或者接收到的值可以被丢弃。
fmt.Println("这是一个字符串")
case <-ccs: // 空通道,尚未准备好进行通信。
fmt.Println("没有发生。")
}
// 此时从c或cs中取出一个值。上面启动的两个goroutine之一已经完成,另一个将保持阻塞状态。
learnWebProgramming() // Go这样做。你也想这样做。
}
如此简洁而精准,如果您想要快速了解Golang的特定主题,请尝试一下。
Gotime
如果您是音频学习的粉丝,Gotime是一个很好的播客。许多了不起的开发者来分享他们的实际知识以及他们如何在公司中使用Go。您还应该检查GopherCon(golang conference),在这个会议上,重要的人物与社区分享他们的学习成果。
这些社区讨论了Go的最新趋势和改进。
我会在这里列出一些受欢迎的播客 –
- Creating the Go programming language
- Structuring your Go apps
- Concurrency, parallelism, and async design
书籍
有很多非常好的书籍。我会在这里列出一些最喜欢的 –
- The Go Programming Language (Alan A. A. Donovan和Brian W. Kernighan)
- Golang Bootcamp Book
- Go Web Programming – 更侧重于Web开发
- Awesome Go books – 包含了一系列关于golang的书籍
博客
有一些非常好的关于Golang的博客。在Medium上也有很多文章,您可以探索一下。我会在这里分享一些你会找到有用的 –
YouTube
喜欢基于视频的学习吗?
当然,看看这个由freeCodeCamp提供的入门级视频教程Golang tutorial。
结论
如果您是初学者,我建议您完成上述其中一门课程,并加入Golang社区。同时,与世界分享您的学习成果,并为使Go变得更好做出贡献。希望您学到了一些有用的东西,并祝您在使用Go的旅程中一切顺利。