想要更系统地学习编程语言,看书是比较有效的途径之一。最近又学习了下 Go 语言,为什么是又,因为 2013 年买过许式伟大佬翻译的一本 Go 语言书籍,但没有系统学下去,现在想想原因可能是这本书过于严肃,没那么有趣,还有就是当时对编程语言的理解也没那么深。
所以说看书虽然系统,还是要选择能够看的进去的书。之前看过一句话:写作需要阅读作为基础,阅读也需要阅读作为基础,我觉得很有道理。所以在看书之前,可以先将这个领域的相关概念大概了解下,不同的文章做下横向比较,再去阅读书籍,会有不错的效果,这就像学生时代的课前预习一样。
Go 目前最新的版本到了 1.19 ,出版的书籍肯定是更不上版本迭代的速度,但建议还是尽可能找比较新的书。
2022 年出版的《Go 语言精进之路》个人感觉还不错,作者 Tony Bai(白明),资深架构师、tonybai.com 博主,是 Gopher 部落技术社群发起人。2015 年就在自己博客上开始分享 Go 相关的知识,有非常丰富的实战经验。
在出版这本书之前,Tony Bai 还在极客时间开设了一个关于 Go 的入门级专栏 《Tony Bai · Go 语言第一课》,有兴趣可以去看看:
notion image
再来说说《Go 语言精进之路》这本书吧。
全书分为十个部分,上下两册,上册包含 1~7 ,下册包含 8~10 ,我很喜欢第一部分和第二部分。
第一部分:
  • Go 语言的诞生和演进:了解语言诞生的故事和发展历程,可以增强我们学习编程语言的兴趣;
  • Go 语言的各个版本的变化:这个对我来说非常有用,能够知道每个版本中的新增了什么功能,添加了什么特性。之前看《C# 本质论》的时候就非常喜欢,因为在一些特性的地方都标注了是在哪个版本中添加;
  • Go 语言设计哲学:作为一门年轻的语言,在设计之初肯定是有很多的考量,要规避什么问题、解决什么问题,而且了解语言的设计哲学,对我们学习 Go 编程思维、编写高质量 Go 代码是很有帮助的;
  • Go 编程思维:原生的并发支持。
第二部分:
每个技术团队应该都有自己的编码规范,我认为规范,在一个团队中保持统一就好,比如你在团队中要求 C# 的方法名使用小写字母开头,也不是不行,大家就都按照这个标准,但问题是,这不符合业界的标准,如果有新来的同事,有可能会产生冲突。
除了代码风格,命名规范,还有项目结构也是初学者非常头疼的问题。10 年前,博客园的弦哥发起了一个 .NET 中搭架子大赛,各路大佬纷纷献计,非常热闹,可见程序员对项目结构是非常关注的。当时大赛的链接如下:
在这本书的第二部分就涉及了项目结构相关内容,给新手解决了一大难题。
其他部分:
后面的一些章节通过条目的方式讲解了 Go 语言的方方面面,示例代码中的结构和变量的命名和非常严谨。在网上看到有些评价说有的地方比较啰嗦,这个就见仁见智了,我个人比较喜欢把一个点讲的比较透彻的,有时内容过于精简,我还需要去找些同类的书籍对比着看,来帮助理解。
目前,我自己感觉对 Go 语言已经入门了,相信在学习完这本书之后,可以熟练掌握 Go 了。
Hexo
如何健康地跑步?Go 学习:那些不一样的知识点(下)