Go语言是我大学毕业开始接触的一门编程语言,在此记录下我学习Go语言的历程和感受。

一刷

2018年7月-8月,入职游戏服务端开发,负责人给我扔了两本书,一本是机械工业出版社的《Go程序设计语言》,另一本叫《代码整洁之道》。

第一次接触一门新语言,给我的感受是,Go的语法很简洁,有Python和C的影子,不过最让我着迷的还是它的并发机制:协程和管道。

不过第一遍看完后,我只记住了概念,运用还不熟练。

二刷

2018年12月-2019年2月,从零开始写一个定时删除的服务,和学习一个流媒体适配服务,体会了把看到的理论用程序写出来兴奋,同时也经历了出现内存泄露和CPU占满的解决bug的过程。

二刷总是觉得哪地方不理解翻回去通过概念和原理找解决方案,查漏补缺。

三刷

2019年-3月-2019年7月,印象最深的是,一个服务遇到了协程泄露和Mysql链接过多的bug,而这些看似神奇的bug,通过查看日志,dlv调试,上stackoverflow找答案,看Go圣经概念做推断后解决,让我再一次体会到基础的重要性。

三刷,快速的把圣经的概念和例子过了一遍。

感受和收获

1,做“T”字型人才,先在一个领域上做精做深,再拓展其他领域会很容易。

2,工程思维:发现问题 -> 解决问题。有时候学会发现问题的关键,解决问题往往很容易。

3,找一本合适的书作为Go语言的入门书籍,会为以后做项目和深入学习节省大量的查漏补缺时间。

另外,如果觉得自己基础过关了,可以尝试去刷下A Tour of Go上的练习题,以下是我提供的一些参考答案

Go语言进阶书籍推荐

  • 《Go并发编程实战》
    本书有三个demo,分别是载荷发生器并发安全的字典和一个网络爬虫框架,可以在学完基础后将这上面的demo理解实现,加强技能。但是这本书没有Web服务方面的实践,它是着重并发编程
    另外我已经将三个项目的代码编译通过上传至github

  • 《Go语言实战》

  • 《Go Web编程》
    这本书将完整地介绍使用 Go 语言开发 Web 应用所需的全部基本概念,从零开始搭建起一个简易的论坛,在这个论坛里面,用户可以注册账号,并在登录之后发表新帖子又或者回复已有的帖子; 未注册用户可以查看帖子,但是无法发表帖子或是回复帖子 。

另外还有一本同名,作者是谢孟军的《Go Web编程》也不错。

  • 《Go高级编程》
    由曹大和柴大共同编写的一本书,涉及cgo编程,go汇编语言,RPCProtobuf和分布式系统,属于更深层次学习Go语言的书籍。
    另外,在书上市的时候,很荣幸获得两位大佬的双签名书籍。
    enter image description here

  • 《Go语言101》
    这本书可以当作参考,上面很多细节点,可以查阅自己感兴趣的部分。

  • 《Concurrency in Go》
    着重讲解Go的并发原理。

  • 《Go in Practice》
    列举出了70种工作中写代码可能会碰到的问题,并对每个问题带有详细的讨论过程和解决方案。

  • 《Data Structures & Algorithms In Go》
    侧重数据结构算法,Go程序设计和找工作方面的,书中分别给出了使用本书准备1个月/3个月/5个月后面试的计划;

以上内容,希望能对正在学习Go和准备学习Go的朋友提供一些参考价值^_^