如何学习Go语言

1. 简介

自工作以后,接触过不少编程语言,少不了学习新语言的经历。

对于程序员来说,学习一门新的编程语言大多数时候其实并不需要专门买书或者培训课程,通常编程语言官网就包含了初学者所需要的一切。

编程语言几乎都是由外国发明,官网大都是英文(部分提供了中文版本),因此对初学者的英文阅读能力有一定要求(当然你也可以用工具将整个网页翻译成中文也行)。

之前由于公司技术转型需要学习Go语言,在此记录下相关学习资料,仅供参考。

Go语言具有语法简单、功能强大、编译速度快、启动速度快、运行速度快等优点,常用于服务器端后台程序开发。

本文档推荐阅读链接较多,读者可先略读再根据自己的实际需要进行选择性阅读,其中被标记为强烈推荐阅读的链接可优先阅读,推荐仅作参考建议并不是强制要求。

2. 为啥要用Go语言?

2.1. Go语言使用案例研究

简单点说,就是介绍哪些知名公司用了Go语言,他们为什么选择使用Go语言,让你觉得Go语言值得一学。

瞄一眼就行了,不需要详细阅读:Go语言使用案例研究。

2.2. Go语言使用场景

介绍Go语言都有哪些使用场景,就是你能用Go语言来干啥:Go语言使用场景。

根据自己学习Go语言的目的进行选择性阅读。比如你想使用Go语言来提供Web服务,就略读下 Go语言Web开发 这一篇就行了。

3. Go语言用户手册

Go语言用户手册 主要分为几块:

  • GO语言入门
  • 如何使用Go语言模块
  • 边用边理解Go语言
  • 参考文档

不需要每个链接都点进去看,挑一些自己关注的看就行了。

3.1. Go语言入门

推荐阅读:

  • 安装Go语言:在个人电脑上搭建Go语言开发环境。
  • Go语言入门教程:如何编写"Hello, World!"程序。
  • 创建Go语言模块:怎么创建Go语言模块。
  • Go语言之旅:在线入门教程,可在线编码后运行,强烈推荐阅读
  • 如何编写Go语言代码:介绍如何引用使用Go语言编写的开源模块,如何使用Go语言编写白盒测试用例。

3.2. 如何使用Go语言模块

Go语言模块使得代码复用变得异常简单,你可以直接引用开源模块来加快自己的开发速度,也可以将自己开发的模块开源分享给其他人。

初学者暂时不会发布模块,可选择性略过相关文档。

推荐阅读:

  • 开发并发布模块:介绍如何开发一个模块并发布。
  • 模块发布和版本控制:介绍模块发布和版本控制应该遵循的流程。
  • 如何组织模块:介绍如何组织模块,如何安装新模块,如何在代码中引用新模块。
  • 模块主版本更新:介绍如何对模块进行主版本更新。
  • 如何发布模块:实操如何发布模块。
  • 模块版本命名规范:介绍为模块版本命名应该遵守的规范。

3.3. 边用边理解Go语言

如果工作中要使用一种新的编程语言,不可能等你完全学透了这门语言才给你分配开发任务,都是边用边学。

推荐阅读:

  • Go语言高效编程:介绍Go语言编程最佳实践,强烈推荐阅读
  • Go语言常见问题:你是否有过关于Go语言的问题?在这里说不定能找到你需要的答案。
  • 插件和IDE:推荐使用的代码编辑器和插件。
  • 如何诊断Go程序:当你的程序出现了bug或者性能问题时应该如何优化,强烈推荐阅读
  • 垃圾回收机制:介绍Go语言垃圾回收机制,用户可以通过哪些方式来优化资源的利用率。
  • 依赖管理:开发程序时无可避免地会用到第三方提供的程序包,介绍该如何管理这些依赖。

3.4. 参考文档

参考文档这一块需要先略读简要了解相关功能,当需要用到相关功能时再详读对应的文档。

推荐阅读:

  • 标准库:功能强大的标准库,强烈推荐阅读
  • 命令行工具:搭建好Go语言开发环境之后就提供了功能丰富的命令行工具。
  • Go语言规范:当你编码时遇到语法相关问题时可以参考该文档。
  • Go语言模块参考:当你遇到模块相关问题时参考该文档。
  • Go语言内存模型:带你了解Go语言内存模型。

4. 个人推荐

在工作中时常用到一些诸如并发编程、Web编程、数据库编程等相关功能,在此推荐一些常见的文档和开源库。

部分文档可能与之前章节重复,放在此处是为了更好分类查找。

4.1. 并发编程

Go语言内置并发编程特性,使用Go语言进行并发编程非常方便。

  • Go语言并发编程之旅
  • 高效Go语言并发编程
  • Go语言并发模式:管道和取消
  • Go语言并发模式:上下文

4.2. 面向接口编程

Go语言支持接口类型,标准库中也大量使用了接口。

  • 方法
  • Go语言接口和其他类型

4.3. 错误处理

  • Go语言错误处理

4.4. 反射

Go语言反射功能用于运行时处理任意类型数据。

  • Go语言反射规则
  • reflect标准库

4.5. 常用开源库

  • Gin Web服务框架
  • GORM 数据库访问框架
  • Redis 客户端
  • Kafka 客户端

你可能感兴趣的:(Go,语言,golang)