【Linux系统编程_Go语言系列】杂记篇(一)

博客原文地址

这篇文章我想谈谈关于Go语言学习的思路。

最近一直在看书,没怎么写博客,换个新号,重新整理下思路,开始记录这一段时间以来的学习成果。

日常开发以Golang为主,市面上关于Golang的书基本都看过了,有几本印象深刻,《Go语言圣经》、《Go高级编程》、《Go源码剖析》,至于其他的书籍,也不是说不好,只是内容上雷同点较多,可能是因为先看了《Go语言圣经》的原因,后面看其他的书籍感觉基本上没有太大的区别。这也说明了Go语言本身足够简单,没有花里胡哨的东西。但事实上Go语言并没有你想象中的那么简单,使用一门系统级编程语言,你需要掌握的并不只是语言语法之类的花里胡哨的东西,也不止逻辑算法这样的硬核技能,同时也需要去学习如何更好地通过这门语言去最大化地使用操作系统。

常说程序员三大浪漫:图形学、编译原理、操作系统。这绝对是一个误区。对于不是游戏开发的程序员,图形学确实是一种浪漫。但其他两者,对于工作的帮助还是巨大的(编译原理从某种程度上来说都没有那么重要)。

对于后端开发人员来说,对操作系统理解水平基本等同于专业技能水平(业务水平另说)。如kafka的实现就充分利用Linux操作系统的特性(页缓存和零拷贝),实现了高可靠和高吞吐。换而言之,程序能到达的性能等同于程序从操作系统中榨取到的性能。

那按照这个思路,其实Go语言并不缺乏好书,只不过这些书都不是用Go语言来写。Go语言被称为21世纪的C语言,那么跟C语言有关的好书都有可能适合一名gopher去学习,虽然cgo实际上并不是特别好,但是这两门语言及其相近的设计思路可以让我们得以去继承学习C/C++庞大的资料库。最近在看的一本书《Linux/Unix系统编程手册》,虽然代码都是C语言写的,但是通过这本书可以学习到很多关于Linux系统编程的内容,在后续的文章中我会使用Go语言来实现书中的代码或者提供一些实际工作中的使用案例。

你可能感兴趣的:(【Linux系统编程_Go语言系列】杂记篇(一))