结合自己的经历谈谈怎么更好地学习Go语言

9,929 阅读5分钟

原创作者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。

之所以会写这篇文章,是因为在自学Go语言的过程,总会有些困惑和迷茫,总希望更好地学习下去,因此有了一些想法,在这里梳理一下,以便日后回过头来也可以看看此时此刻的想法。

关于基础

基础,除了学习Go语言的基础外,也应该加强计算机基础的学习。

对于Go语言的基础,很多从其他语言转过来的人,会觉得Go的基础就是简单的语法知识,因此没有注重这块知识的学习,其实,我觉得对于Go语言的基础除了基础语法之外,还有Go语言的使用规范编程思维CSP模型等,都需要深入学习和研究。

另外一个就是计算机基础,这方面的基础比较枯燥,包括数据结构算法计算机原理计算机操作系统计算机网络等,我觉得计算机基础知识是一个程序员能走多远的关键因素,没有这些基础知识的加持,对于Go语言的学习与使用,只会停留很基础的层面,无法入使用。

所以,基础很枯燥,但对于基础的学习,很有必要。

关于看书

很多关于Go语言的书籍内容都是千篇一律的,大概是因为这些书籍只是简单地罗列出一些很基础的知识,其内容跟Go语言的官方文档所列出的差不多,因此,如果是刚入门的新手想学Go语言的基础,建议还是多看Go语言的官方文档,特别建议看《Effective Go》,这里面有官方提供的Go语言最权威高效和的基础知识与使用方式。

当然也不是说所有的书籍都不值得看,像《Go程序设计语言》《Go语言实战》这些经典的书籍,还是应该多看看。

除了官方文档与经典书籍,我觉得一些实战的书籍也不错,比如掘金小册《基于 Go 语言构建企业级的 RESTful API 服务》,一般偏实战的书籍或课程,我们可以学习如何应用GO语言开发程序,学习Go语言最重要的一点就是使用Go语言的思维开发应用程序,而不用其他编程语言的思维来写Go程序。

另外一个要说的是,英语真的很重要,很多的技术官方文档都是用英文写的,所以需要一定的英语基础才阅读,很多人会说看翻译的中文文档不就行了,对于一些中文文档,一个是翻译得不全,一个是有时候也翻译得不准,还真不如直接看英文文档。

除了埋头苦学,还应该干什么?

阅读优秀开源项目代码

阅读别人优秀的项目源代码,是提升自己写代码能力的一个很好的方式,我们可以从那些优秀的开源项目中学到别人的代码组织方式,设计模式和代码分层,解决问题思路,优秀的算法和数据结构,甚至可以学习一些代码命名风格等。

尤其是从别的开发语言转到Go语言的同学,更应该多阅读Go语言的一些开源项目,因为Go语言的很多设计和开发思想,跟其他编程语言真的很大的区别,所以,当我们转到Go开发时,应该学习使用Go的思维去解决问题,而不是用其他编程语言的思维来使用Go语言。

Go语言的开源项目有很多,最有名的像大家都知道的DockerKubernetes,下面的网址,是别人维护的Go语言优秀开源项目列表,建议大家收藏。

awesome-go.com

多动手,维护一个自己的开源项目

除了阅读别人优秀的项目源代码,其实,我们也可以维护一个自己的开源项目,这样的做好处是什么呢?

维护一个自己的项目,可以综合地运用自己所觉得的知识,看书看视频看文档去做代码练习,得到的只是一些简单的代码片段,不是一个综合性成果,真正体现自己学习所得的东西,应该是一个完整的项目。

加入技术社区

每一种编程语言或技术都属于自己的社区或圈子,Go语言也一样有自己的社区,当然,那些英文的社区虽然有更丰富的资料和讯息,但我们可能由于自己的英文水平,而无法与外国的技术大牛沟通,那也没关系,Go语言也有一样非常优秀的中文社区,如Go语言中文网

除此之外,很多技术圈都会建很多的微信群或QQ群,我觉得加入一两个这样的群,跟群里的人讨论技术,遇到不懂的问题,也可以发问,如果自己懂的,也可以帮别人解决,让自己更加有学习的动力。

最好的学习方式:写作

为什么说写作是最好的学习方式呢?因为写作是一个教别人的过程,我们希望写的东西别人能看懂,这就会逼着我们主动去学习,而主动学习是最高效的学习方式。

这里有个概念,叫费曼技巧,讲就是通过教授别人来达到主动学习的目的,而主动学习金字塔中学习效率最高的学习方式。

因此,在Go语言的学习过程中,最好的学习方式还是在学习的过程,学会总结并记录所学的知识碰到的问题。

小结

对所学的知识进行简单的整理,或许这样有助于更加清晰地认识自己的学习,也能更好地调整学习方向与目标。


你的关注,是我写作路上最大的鼓励!