自从了解到GO,发现这门语言太棒了,每次写demo都一种爱不释手的感觉。最近和身边的小伙伴聊天,发现他们也想学习go,但是不知道从何入手,在这里把自己学习的思路整理出来,以供大家参考。其实我也是golang菜鸟,以下不正确的地方欢迎大家一起指正讨论。
个人觉得学习一门编程语言需要以下几个过程:
a. 从整体上了解这门语言的产生背景和主要特征,如:google工程师无法忍受c++的缺点,因而重新设计一门编程语言改进这些缺点;现在的软件要求高效优雅地并发编程,所以go默认地支持协程;同时需要深入理解这门语言的演进过程,从现在看go比c++优雅的多,但是并不能说C++不好,因为任何东西都有其历史背景,如果你处在C到C++的演进年代并且使用了多年C,C++的出现也会让你眼前一亮。
b. 快速的上手并参与到商业级项目,个人认为学习任何东西不能把所有理论研究透彻再去动手,应该学会基本理论马上动手,然后在实践中验证理论。可以花上一到两个月学习基本理论,动手写一些demo,然后快速地切入到商业级项目。
c. 要用语言特有的思维模式去设计项目,比如用GO设计并发程序应该用go routine,不要再使用传统的同步锁机制。这就好比《天龙八部》的鸠摩智,用道家的内功心法去催动佛家少林72绝技,落得个走火入魔的下场。编程设计就像练武功,你不能拿C/C++的内功心法练GO的招式。
d. 从大量的实践中总结经验,多整理经验教训,避开常见坑,多年之后就可以如火纯青地使用一门语言。
以上就是我对学习编程语言的理解,如果有疑问,欢迎大家一起讨论。说得有点多了,下面来点干货了,简单罗列一下go学习书籍,这些书籍都是来自于下面两个链接,在这里非常感谢作者的分享。
1. 快速入门
Go指南:https://tour.go-zh.org/welcome/1
《The Way to GO 》中文版: https://github.com/Unknwon/the-way-to-go_ZH_CN
第一个链接是go官方快速入门的教程,之前看过gopl(go programming language,go圣经,go之父写的,就像c programming language, c++ programming language一样,是最权威的),所以没有看过第一个链接内容,这个链接是需要翻墙的。
第二个链接中文版电子书翻译的太好了,正在拜读,这本书基本覆盖好了GO所有的特征,还包含很好的demo,建议看完go tour之后细读这本书。
2. 系统学习书籍
如果有很深的编程语言内功,这个时候应该可以上项目了,建议看一下开源项目,比如 go ethereum源代码。个人认为还需要深入了解go内部机制,可以参考如下书籍:
这三本我只读过GO 圣经,其他两本今年肯定读完,哈哈。
3. 大量的实践
大家看到这会很奇怪,为什么把“大量的实践”单独列出来?个人认为程序设计就需要大量的实践,多踩坑,不断总结,即使刚开始写不出很优秀的设计,也要不断动手模仿demo。要坚持不断学习,千万不要相信那些“21天学会C++”之类的广告语,要脚踏实地把每一个基本概念搞清楚,若干年之后你会慢慢成为大牛。
以上就是我总结的学习编程语言的基本思路和go语言学习书籍,欢迎大家加入学习GOLang的大家庭,谢谢!
网友评论