网上有一些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/
也是一个综合性的编程入门教程网站,资料很多,也都很基础。
4. Go by Example
很多代码示例,学习基础知识的时候很实用。可以一边看理论,一边参考这个网站写代码,效果会更好
书籍
如果你是语言小白,没学过其余语言,那就去看《Go程序设计语言》;
如果你有其它语言基础,比如Java或者C++,那就去看《Go 语言学习笔记》即可。
视频
看视频入门也是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 语言设计相关的理念和哲学的文章
Go 语言问题集
网站链接:https://www.bookstack.cn/read/qcrao-Go-Questions/README.md
面向信仰编程 - Go 语言设计与实现
网站链接:https://draveness.me/golang/
左神的博客,内容很深,想要成为大神的话,绝对要来看
书籍
推荐的《Go语言高级编程》和《Go 语言底层原理剖析》
涵盖 CGO、Go 汇编、RPC 实现、Web 框架、分布式系统等高阶主题。书中章节之间没有很强的关联性,每个章节都是独立的知识,完全可以按需阅读。
本书使用浅显易懂的语言与大量图片深入介绍了 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/
提供各种学习资料及面试题库
地鼠文档
可以说是 Go 编程的导航网站了,收藏了很多 Go 学习资料。包括网站,书籍,开源库,开源项目等。
Go语言学习社区
Go 夜读
网站链接:https://talkgo.org/
这是一个由众多资深 Gopher 组织的开源项目,主要是对 Go 源码进行解读。并且坚持开源,将相关资源都上传到了 GitHub
5. 实用工具
plantUML
这个网站可以分析一个 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
万能转换,将 xxx 转化成各种类型