我觉得学习一门语言最重要的就是做到三点,第一看基础知识,第二学习抄代码,第三学习写代码

第一点,很多人都觉得上来就动手写,但是你基础的东西都没掌握,怎么写呢?欲速则不达,所以基础的东西还是必须要先掌握好。这里推荐几个基础的入门材料:


https://tour.golang.org/#1

邢星翻译的 https://github.com/mikespook/Learning-Go-zh-cn

Go byExample :https://gobyexample.com/

我觉得你把这几个基础掌握之后就可以开始抄袭代码了, 如果你之前有 PHP 的开发经验, 那么也许我写的这本书对你了解 golang 有帮助, 

https://github.com/astaxie/build-web-application-with-golang

【推荐下,有PHP基础的人适合】

第二点,我们很多时候开始写代码都是没什么思路,也无从下手,但是我们可以模仿别人写代码,上海俗话里面常说"吃大户,用大户,消灭大户",我们就是"看代码,抄代码,最后自己写代码"。这里给你几个入门级别的代码看看学习一下:


https://github.com/hoisie/web 很简单,就是学习他的路由怎么实现的,如何编写自己的路由

https://github.com/icub3d/home/ 这是一个 Go+ AngularJS 的实现,看看如何做 API 应用

最后我列一下你可以自己参考去实现的一些功能:

1、日志分析

2、IP 库分析

3、管理后台查看分析日志

第三点,自己写代码,这个时候就是已经对 golang 有了一定的了解了,那么我们就可以开始做自己的项目了,做项目最想就是快速开发, 那么我就推荐你

https://github.com/astaxie/beego 使用 beego 框架可以很快速的开发你的 Web 或者 API 应用

https://www.docker.com/ 使用 docker 来做虚拟化

https://github.com/nsqio/nsq 学习消息队列,学习 channel 和分布式

https://github.com/coreos/etcd 分布式应用

这个阶段就是找各种东西用 golang 来写,多写就会理解越来越深入。