书单一共包含 10 本书,分为入门 5 本,进阶 5 本。我读过其中 7 本,另外 3 本虽然没读过,但也是网上推荐比较多的。
虽然分了入门和进阶,但是很多书中这两部分内容是都包含了的。大家看的时候可以根据自己的情况,先打好基础,再进行进阶。
有的书是开源的,可以直接在线阅读,有的有电子书,大家可以在这里 GitHub 找到下载方式。如果条件允许的话,买正版是最好的。
入门
《Go语言趣学指南》
本书是一本面向 Go 语言初学者的书,内容也比较浅,非常适合入门。
书中循序渐进地介绍了使用 Go 语言必需知道的知识,展示了非常多生动有趣的例子,并通过提供大量练习来加深读者对书中所述内容的理解。
《Go 入门指南》
这本书的英文名称叫《The Way to Go》,作者利用业余时间来进行翻译工作。在取得原作者 Ivo Balbaert 授权的情况下,将其开源。
在线阅读: https://github.com/Unknwon/the-way-to-go_ZH_CN
《Go 语言编程》
本书以介绍 Go 语言特性为主,示例则尽量采用作者平常的实践,而不是一个没有太大实际意义的语法示范样例。通过与 C++ 和 Java 做一个横向比较,可以更直观看出其设计理念的差别。
作者许式伟为原金山 WPS 首席架构师、曾是盛大创新院研究员,目前是国内 Go 语言实践圈子公认的 Go 语言专家。参与本书写作的几位作者都是实际用 Go 语言开发的项目的开发人员,有较强的实战经验。
《Go 语言 101》
是一本着墨于 Go 语法语义以及运行时相关知识点的编程指导书(Go 1.17 就绪)。 此书旨在尽可能地帮助 Go 程序员更深更全面地理解 Go 语言。
此书也搜集了 Go 语言和 Go 编程中的很多细节,其中有一些在官方文档中从未提及。
此书同时适合 Go 初学者和有一定经验的 Go 程序员阅读。
在线阅读: https://gfw.go101.org/article/101.html
《Go 语言程序设计》
本书由作者 Kernighan 和谷歌公司 Go 团队主管 Alan Donovan 联袂撰写,是学习 Go 语言的指南级书籍。内容翔实全面,涵盖了全部基础内容,值得一读。
进阶
《Go 语言实战》
相比于其他技术书籍,这本书很薄。显然,这不是面面俱到,涵盖所有知识点的一本书,但它直击要点。
我在阅读过程中,最大的感受就是,很多看基础知识过程中碰到的,又很难通过搜索引擎找到答案的问题,在这里获得了解答。
《Go Web 编程》
学语言不是目的,能够使用这门语言来干活并挣到钱,才是目的。因此,不得不学一下 Go 在 Web 编程方面的应用。
这本书是由黄健宏翻译的,这位译者,还著有《Redis 设计与实现》一书,书中深入浅出地分析了 Redis 所用的数据结构和设计思想,属实优秀。
《Go 语言高级编程》
涵盖 CGO、Go 汇编、RPC 实现、Web 框架、分布式系统等高阶主题。书中章节之间没有很强的关联性,每个章节都是独立的知识,完全可以按需阅读。
在线阅读: https://github.com/chai2010/advanced-go-programming-book
《Go 语言学习笔记》
作者是雨痕大佬,2015 年第一届 GopherChina 大会讲师。
本书分上下两卷:
上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。
下卷则对运行时源码做出深度剖析,引导读者透彻了解语言功能背后的支持环境和运行体系,诸如内存分配、垃圾回收和并发调度等。本书不适合编程初学入门,可供有实际编程经验或正在使用 Go 工作的人群参考。
《Go 语言底层原理剖析》
本书使用浅显易懂的语言与大量图片深入介绍了 Go 语言编译时、类型系统、语法特性、函数调用规范、并发编程、内存管理与垃圾回收、运行状态监控等模块的使用方法和底层原理。
对于想要了解 Go 底层原理,阅读源码的同学来说,可以阅读此书,但想要完全理解书中的内容,并不是一件容易的事。
最近,我还整理了一份 Go 学习路线,思维导图如下:
如果感兴趣的话,详情见下面这篇文章:
这个学习路线还会不停维护和更新,大家也可以关注我的 GitHub,这样就可以第一时间获取最新资源。
如果觉得本文还可以的话,欢迎点赞,分享和关注,感谢支持。
推荐阅读: