如何学习Go语言?
对于这个问题,我想我应该有资格回答你。
学习 golang ,个人建议选择两种途径学习:
- 学习优质开源项目
- 查阅书籍
开源君的学习方式主要是通过开源项目+书籍,学习新的技术,当然开源君是有其他语言基础的。
好了,废话不多,直接上干货项目,如果觉得有价值,记得三连支持开源君。
学习路线:

开源项目推荐:
1. golang-ebook
项目地址:golang-ebook/preface.md at master · Agzs/golang-ebook
推荐理由:这是一本 Go 在线电子书类的开源项目,包含了 Go 的基础知识,特别适合零基础小白学习,也是入门教程,这是上述学习路线图中的 Go 基础知识,特别适合小白学习。



2. 7days-golang
项目地址:GitHub – geektutu/7days-golang
推荐理由:这个项目也是学习路线图中的知识,多数也进阶内容,比起基础来讲会有一些难度,包含的 Web框架 – Gee、分布式缓存 GeeCache、ORM框架 GeeORM、RPC框架 GeeRPC、Web Framework – Gee 等知识点。





3. advanced-go-programming-book
项目地址:advanced-go-programming-book
推荐理由:这是一本《Go语言高级编程》项目,涉及的知识点也很多,这是对前面两个项目的加强,不适合小白学习,适合有 Go 语言基础的编程爱好者学习。



4. golang-design-pattern
项目地址:github.com/senghoo/golang-design-pattern
推荐理由:Go 语言设计模式也是学习路线中应该学习的内容,作为一名编程爱好者,学习 Go 语言各种设计模式是非常有价值的。
创建型模式
- 简单工厂模式(Simple Factory)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
- 创建者模式(Builder)
- 原型模式(Prototype)
- 单例模式(Singleton)
结构型模式
行为型模式
- 中介者模式(Mediator)
- 观察者模式(Observer)
- 命令模式(Command)
- 迭代器模式(Iterator)
- 模板方法模式(Template Method)
- 策略模式(Strategy)
- 状态模式(State)
- 备忘录模式(Memento)
- 解释器模式(Interpreter)
- 职责链模式(Chain of Responsibility)
- 访问者模式(Visitor)
5. Go 语言中文文档
中文文档地址:https://studygolang.com/pkgdoc
这个文档是学习 Go 语言必备的文档,开发和学习的过程中一直会用到,就像 Java、Vue 文档一样具有权威性,不会的知识点或者忘记的知识点来这里查就可以了。

6. go-admin-team/go-admin
项目地址:GitHub – go-admin-team/go-admin
推荐理由:前面基础知识学习完毕了,如果有前端基础的朋友建议学习这个开源项目,巩固自己的知识,这也是个前后端实战项目,基于Gin + Vue + Element UI的前后端分离权限管理系统脚手架。
功能:
- 多租户:系统默认支持多租户,按库分离,一个库一个租户。
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
- 岗位管理:配置系统用户所属担任职务。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识,接口权限等。
- 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
- 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
- 参数管理:对系统动态配置常用参数。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 接口文档:根据业务代码自动生成相关的api接口文档。
- 代码生成:根据数据表结构生成对应的增删改查相对应业务,全程可视化操作,让基本业务可以零代码实现。
- 表单构建:自定义页面样式,拖拉拽实现页面布局。
- 服务监控:查看一些服务器的基本信息。
- 内容管理:demo功能,下设分类管理、内容管理。可以参考使用方便快速入门。
- 定时任务:自动化任务,目前支持接口调用和函数调用。
7.LeetCode-Go
项目地址:GitHub – halfrost/LeetCode-Go:
推荐理由:这个项目主要是 leetCode- Go 算法开源项目,上述的开源项目是帮助你学习 Go 基础功夫,这个项目是帮助你打造内功的,也是检测你学习 Go 的情况。

8. interview-go
项目地址:https://github.com/lifei6671/interview-go
推荐理由:相信通过前面的开源项目,你已经掌握了Go语言开发,接下来就是大神出征的时刻了,刷一些面试题 Go 相关的类型,也是助力你进入大厂的必备开源项目。
Golang 常见面试题目解析
- 交替打印数字和字母
- 判断字符串中字符是否全都不同
- 翻转字符串
- 判断两个给定的字符串排序后是否一致
- 字符串替换问题
- 机器人坐标计算
- 语法题目一
- 语法题目二
- goroutine和channel使用一
- 实现阻塞读的并发安全Map
- 高并发下的锁与map读写问题
- 定时与 panic 恢复
- 为 sync.WaitGroup 中Wait函数支持 WaitTimeout 功能.
- 七道语法找错题目
- golang 并发题目测试
- 记一道字节跳动的算法面试题
- 多协程查询切片问题
- 对已经关闭的的chan进行读写,会怎么样?为什么?
- 简单聊聊内存逃逸?
- 字符串转成byte数组,会发生内存拷贝吗?
- http包的内存泄漏
- sync.Map 的用法
Golang 理论
Redis基础
MySQL相关
面试必备算法
排序算法
书籍推荐:
关于书籍开源君收藏了 300 本计算机相关的电子书,涉及各个领域,这里开源君一次性全部推荐给你,也是助力开源君进入大厂的法宝,希望能帮助到你。

扫描下方二维码识别,回复「1024」即可打包获取 300 本必读计算机电子书资源。