Skip to content

网上有一些Go的学习路线,但通常会有如下问题:

1、只有资料,没有罗列学习掌握的知识点,学习路线固然需要说明学什么,去哪里学

2、资料太多,不知道应该看哪个,从哪开始看

3、有的只有视频,有的只有书籍,有的只有在线网站,但每个人喜好的学习方式不一样

所以,我整理了一份 Go 学习路线,这份学习路线会罗列出每个阶段应该重点掌握的知识点,并且包含视频/书籍/在线网站 三种学习资料地址,不以数量取胜,努力做到精简,从入门到进阶,从理论到实战。

知识体系大纲:

熟练掌握Go相关知识点,了解Go相关应用

学习路线大纲:

针对知识体系,制定相关的学习路线

(ps: 文中提到的网站及视频链接已给出,书籍汇总: https://www.aliyundrive.com/s/UXNyrpuVXP1

1. 基础篇

在线网站

1. 菜鸟教程 - Go 语言教程

网站链接: https://www.runoob.com/go/go-tutorial.html

很多编程语言的入门教程都可以在这里找到。平时写代码过程中,某个知识点忘了,也可以到这里查

2. Go 语言中文网 - Go 语言入门教程

网站链接: http://c.biancheng.net/golang/

这套 Go 语言教程通俗易懂,深入浅出,既适合没有基础的读者快速入门,也适合工作多年的程序员查阅知识点。

3. W3Cshcool - Go 教程

网站链接: https://www.w3cschool.cn/go/

img

也是一个综合性的编程入门教程网站,资料很多,也都很基础。

4. Go by Example

网站链接:https://gobyexample.com/

img

很多代码示例,学习基础知识的时候很实用。可以一边看理论,一边参考这个网站写代码,效果会更好

书籍

如果你是语言小白,没学过其余语言,那就去看《Go程序设计语言》;

img

如果你有其它语言基础,比如Java或者C++,那就去看《Go 语言学习笔记》即可。

img

视频

看视频入门也是ok的,推荐黑马的20小时入门系列视频,一共分为上中下三个部分。

上:https://www.bilibili.com/video/BV1UW411x7v2

中:https://www.bilibili.com/video/BV1UW411x7Ve

下:https://www.bilibili.com/video/BV17W411W7hm

2. 进阶篇

在线网站

煎鱼 - Go 语言设计哲学

网站链接: https://golang3.eddycjy.com/

煎鱼大佬的博客,结合官方资料和作者自己的理解,梳理出的一系列 Go 语言设计相关的理念和哲学的文章

img

Go 语言问题集

网站链接:https://www.bookstack.cn/read/qcrao-Go-Questions/README.md

img

面向信仰编程 - Go 语言设计与实现

网站链接:https://draveness.me/golang/

左神的博客,内容很深,想要成为大神的话,绝对要来看

img

书籍

推荐的《Go语言高级编程》和《Go 语言底层原理剖析》

img

涵盖 CGO、Go 汇编、RPC 实现、Web 框架、分布式系统等高阶主题。书中章节之间没有很强的关联性,每个章节都是独立的知识,完全可以按需阅读。

img

本书使用浅显易懂的语言与大量图片深入介绍了 Go 语言编译时、类型系统、语法特性、函数调用规范、并发编程、内存管理与垃圾回收、运行状态监控等模块的使用方法和底层原理。

视频

推荐talkgo的youtube视频,这是一个由众多资深 Gopher 组织的开源项目,主要是对 Go 源码进行解读

https://www.youtube.com/c/talkgo_night/videos

3. 实战篇

id-maker

项目地址: https://github.com/yongxinz/id-maker

Go 开发的一款分布式唯一 ID 生成系统。

代码量少,项目整体难度小,通过这个项目可以学习到 httpServer,gRPC 相关知识。

cache2go

项目地址: https://github.com/muesli/cache2go

比较简单的一个缓存库,代码量很少,通过这个项目可以学习到锁、goroutine 等知识。

7days-golang

https://github.com/geektutu/7days-golang

7 天使用 Go 从零实现 web 框架、分布式缓存、ORM 框架,、RPC 框架,代码量不多,但是质量挺不错的

Goim

项目地址: https://github.com/Terry-Mao/goim

了解Go语言中Tcp Server的基础库和性能优化方案

gin-vue-admin

项目地址:https://github.com/flipped-aurora/gin-vue-admin

gin-vue-admin 是一个使用 gin + vue 进行极速开发的全栈后台管理系统,后台使用 gin 框架,前端主要使用 vue。

项目的目录结构非常清晰,包名语义化,能够帮助你快速上手学习。

这个项目还使用到了一些流行的 Go 开源库及中间件,例如:

  • gin:最流行的 Go 语言 Web 框架

  • gorm:数据库操作中间件

  • zap:uber 开源的 Go 语言日志库

  • redis:k-v 缓存

除此之外,这个项目还有详细的中文文档,并且配套教学视频,值得学习。

4. 技术社区

Go语言学习之路

网站链接:https://golangroadmap.com/

提供各种学习资料及面试题库

地鼠文档

网站链接:https://www.topgoer.cn/

可以说是 Go 编程的导航网站了,收藏了很多 Go 学习资料。包括网站,书籍,开源库,开源项目等。

Go语言学习社区

网站链接:https://learnku.com/go

Go 夜读

网站链接:https://talkgo.org/

这是一个由众多资深 Gopher 组织的开源项目,主要是对 Go 源码进行解读。并且坚持开源,将相关资源都上传到了 GitHub

5. 实用工具

plantUML

网站链接:https://www.dumels.com/

这个网站可以分析一个 Go 项目,然后生成接口和结构体的 UML 图。有了这个图之后,基本上也就对项目整体关系有了一个基本概念,再读源码的话,相对来说会容易一些。

json-to-go

网站链接:https://mholt.github.io/json-to-go/

json自动生成golang struct

yaml-to-go

网站链接:https://zhwt.github.io/yaml-to-go/

yaml自动生成golang struct

table-to-go

仓库地址:https://github.com/gohouse/converter

mysql表结构自动生成golang struct,可以通过命令行调用和写 Go 代码生成

cast

https://github.com/spf13/cast

万能转换,将 xxx 转化成各种类型

木川工作室 (微信:mcmc2024)