缘由
一直以来都在慢慢悠悠地关注各种go的相关主题,因为本职还是做c/c++相关的工作,所以一致以来都没有系统的对go进行系统的学习,仅局限于对相关的知识点进行进行简单的了解和学习。最近由于工作变动原因,稍息赋闲,打算对go做一个系统的学习,所以开此主题,希望能详细记录下学习的细节,能对后来的新人有个引路的作用
为什么学习go
这个应该是最先要回答的问题,也是群里经常争论的问题,为什么要选go,而不是php,java。
首先说下go的几个特点
- 静态语言
- 有高级语法,又不是非常复杂晦涩
- 高并发,非常小的协程开销,非常适合服务器场景
- 其他的网友自行google,这里不详细展开
我自己的观点是,如果你是c,c++的背景,要提高后台开发的效率,go是不二的选择,go的语法复杂度,介于c和c++之间,功能上长于后端开发,也有完备的库,开发效率上会有很大提高。
如果你原来就是php,java,node的背景,你所做的工作都是基于接口的数据开发,也建议尝试go。go天生适合做后台接口,开发效率高,性能也不错。
但如果你想要做一个web系统,其实go就目前的情况看,并不比php,java,node更合适,不必盲目跟风。
最后,建议初学者读一下这篇
Donovan/Kernighan大神们关于go语言的问答,
其中关于go的特点,潜力,为什要选go等都有涉及。
其他的问题参见go的FAQ
环境
mac air
go version go1.5.1 darwin/amd64
主要学习材料
- google go官网教程
- 谢大的书籍:
go web编程
go实践开发 - 无闻的<<go编程基础>>视频教程
- 雨痕的笔记
- 其他:go学习资料链接汇总
最后,由于本人在go方面也是小白,难免水平有限,如果有大牛路过,一定不要怜惜您的键盘,狠狠的拍吧