我为什么要学习Go?
我是一个从事了9年php开发的程序猿,多年的php开发经验已经形成了固定的肌肉记忆,遇到需要编写的脚本很自然都会用php来实现,当然这并不是一件坏事,恰恰相反在要求快速开发,高效迭代的团队里这个尤为重要,真正坏的事是慢慢的会形成一种固步自封的状态,这个很好理解,我们把语言范围缩小,在你习惯所用的范围内,如果你对一个框架非常熟悉,源码都“倒背如流”的时候也会很自然地排斥其他框架,长期下去你会形成框架型程序猿,离开这个框架就像失恋一样。但是正如框架的百家争鸣一样,语言也是蓬勃发展的,接触另一门正快速发展的新语言除了能掌握一项新技能外,对当前已经掌握的语言也是一个很好类比总结,Go语言从诞生之初就因为种种亮点备受追捧,社区壮大,最直观的感受就是翻一下拉勾,就能看到很多大厂都在招Go语言工程师,所以现在去学习一个版本号仅为1.11却蓬勃发展备受诸多大牛推崇的语言肯定是一个不错的时机
我打算怎么写笔记?
在写这一篇笔记之前,我已经看了一些Go语言编程实践的书,老实讲作为有编程基础的人来说不算太难理解,我经常在学习的过程中问一个问题:Go是这么实现的如果是PHP的话怎么实现?所以我在笔记里会经常拿php来和Go来做一些类比,所以如果你是一个phper可能会更能理解我的意思,我在笔记里也会尽量用一些有趣的例子来说明一个翻译过来很难懂的文字,此时此刻我正在用一台4年前的mac敲下这段文字,所以我的笔记里的例子也大多数是基于mac的开发环境,不过这个其实是无所谓的
在学习之前都需要准备什么?
因为我只记录Go语言编程,在笔记里就不记录如何安装Go,配置环境变量等问题,事实上这些事情已经变得和你在windows上安装一个应用一样简单了,这一点不同于php的开发环境配置,如果你像我一样经历过初学php时的环境编译你一定理解那种痛,用Go哪怕你是一个没有编程基础的人可能10分钟就能写出“你好,世界”,如果是php的话可能一天过去了还在解决某个编译error(当然我说的是源码安装)。除了要安装配置好Go之外你还需要准备一个自己得心应手的IDE,IDE是你上阵的武器,千万不要在武器上凑合,如果你php的时候用了sublime,那么很容易安装一个Go的插件就可以完美支持,你也可以用GoLand这种工具,随便你,像我说的只要得心应手就OK
希望你和我一样能把学习Go这件事坚持下去,如果我的笔记里有错误,而你恰巧看到了也希望你能指正
GoGoGo!
回复删除