书单一共包含 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 学习路线,思维导图如下:

如果感兴趣的话,详情见下面这篇文章:

Go 学习路线(2022)

文中涉及到的全部资源,包括电子书,脑图等都会开源到 GitHub。并且,这个学习路线还会不停维护和更新,大家也可以关注我的 GitHub,这样就可以第一时间获取最新资源。

如果觉得本文还可以的话,欢迎点赞分享关注,感谢支持。


推荐阅读:

  • 计算机经典书籍(含下载方式)
  • 技术博客 硬核后端开发技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
  • Go 程序员 Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。
  • 面试题汇总 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

推荐 10 本 Go 经典书籍,从入门到进阶(含下载方式)的更多相关文章

  1. 推荐10个适合初学者的 HTML5 入门教程

    HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...

  2. ArcGIS Desktop 10.1+ArcEngine10.1完全破解安装教程(含下载地址+亲测可用!)

    最近在二次开发中用到了VS2010+ArcGIS的二次开发模式,因为之前的某些原因,对ArcGIS的接触甚少.初次安装也遇到了很多问题,这里做一个总结. 系统环境 win732位操作系统 需要文件 ( ...

  3. 大牛推荐的30本经典编程书籍,从Python到前端全系列。

    注:为了方便阅读与收藏,我们也制作了30本书籍完整清单的Markdown.PDF版以及思维导图版,大家可以在实验楼公众号后台回复关键字"书籍推荐"获取. Python 系列(10本 ...

  4. MAC Objective-C 开发经典书籍推荐

    MAC Objective-C 开发经典书籍推荐 闻道有先后,术业有专攻,这句话放到计算机科学领域的理解可能每个人都会不同. 有些人选择一个操作系统,一个体系的编程语言,作一个领域的开发. 有些人选择 ...

  5. oracle经典书籍推荐 转

    很多网友询问如何选择入门书籍,学Oracle有什么好书,这里给出一些常见书籍的介 绍.首先声明,本文只涉及国外作品,因为国内的作品好的极少,大多是拼凑之作. 提到入门学习,我又得搬Tom(Thomas ...

  6. 强烈推荐visual c++ 2012入门经典适合初学者入门

    强烈推荐visual c++ 2012入门经典适合初学者入门 此书循序渐进,用其独特.易于理解的教程风格来介绍各个主题,无论是编程新手,还是经验丰富的编程人员,都很容易理解. 此书的目录基本覆盖了Wi ...

  7. Oracle经典书籍推荐

    转自:http://www.cnblogs.com/fjfzhkb/archive/2007/12/05/983381.html 很多网友询问如何选择入门书籍,学Oracle有什么好书,这里给出一些常 ...

  8. Linux好书、经典书籍推荐

    Linux好书.经典书籍推荐 思想篇 <Linux/Unix设计思想> 图书将Unix与Linux的原理有效地结合起来,总结了Unix/Linux软件开发中的原则.在保留了第1版中Unix ...

  9. Linux网络编程经典书籍推荐

    UNIX环境高级编程<高级unix环境编程><unix网络编程><深入理解计算机系统>比较好 =====================Linux网络编程经典书籍推 ...

随机推荐

  1. Ajax的IE缓存问题

    Ajax之IE缓存问题 <!-- IE浏览器会对ajax的结果进行一个缓存,这样就会导致一个缓存问题 浏览器会读取缓存 而不会去使用一个新的数据 这样对一个时效性比较强的场景 ajax的缓存会影 ...

  2. JavaCV的摄像头实战之一:基础

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于<JavaCV的摄像头实战>系列 &l ...

  3. WebGPU图形编程(2):构建一个单色的三角形<学习引自徐博士教程>

    非常兴奋,我坚持了下来,开始更新我的第二篇博客,还是关于WebGPU的,我在学习过程中,对这项技术非常感兴趣,即使它非常抽象,难以理解,因为我看到未来Web3D的发展,WebGPU会成为主流技术,学习 ...

  4. IDEA构建Maven项目过慢的解决方法

    创建Maven项目时在此页面添加 archetypeCatalog internal 即可

  5. APC 篇——备用 APC 队列

    写在前面   此系列是本人一个字一个字码出来的,包括示例和实验截图.由于系统内核的复杂性,故可能有错误或者不全面的地方,如有错误,欢迎批评指正,本教程将会长期更新. 如有好的建议,欢迎反馈.码字不易, ...

  6. k8s对接jenkins通用pipeline

    pipeline { agent any tools { //工具必须预先在jenkins中预配置 maven 'mvn' jdk 'jdk' } stages { stage('Env') { st ...

  7. vue之keep-alive的使用

    keep-alive:是vue内置的一个组件,可以使被包含的组件保留状态或避免重新渲染.有两个生命周期函数:activated.deachtivated.在vue 2.1.0版本后新增了两个属性:in ...

  8. java代码实现调用短信接口,发送短信验证。

    一.代码示例 package com.aaa.zxf.login; import org.apache.commons.httpclient.HttpClient; import org.apache ...

  9. 技术管理进阶——Leader应该关注成长慢的同学吗?

    原创不易,求分享.求一键三连 两个故事 我该怎么办? ​在大学毕业的时候,恩师跟我说了一个故事: 有一个女同学跟他说,不知道毕业了该干撒,不知道该怎么办. 正处于「低谷期」的恩师突然一怔,想到貌似自己 ...

  10. 统信UOS系统部署.Net Core 5.0

    平时很少用Linux,需要的时候才查资料,记录下遇到的问题和解决办法.这次部署的系统是统信UOS,arm64位CPU 第一步:安装.Net Core 5.0运行环境 统信UOS是基于Debian 10 ...