Go 语言学习路线指南

不知道是不是有同学打算开始学习 Golang,确不知道如何开始,至少我开始学习的时候就是这种感觉,为了这个,我查询了很多的帖子和问答。网上的 Golang 资料虽然不多,但是也不少,这个我的一个学习路线,从简单内容开始,可以作为参考。

第一步 Go 语言之旅

这个是一个官方的入门教程,或者说只是一个大概了解的教程,只介绍了一些简单的东西,并且没有太多的说明。不过这个教程支持在线执行代码,还是很不错的,这个时候你都不需要有本地的开发环境。不用想太多,现在就开始,把这个教程从头到尾看一遍,练习一遍,遇到不明白的地方也不要纠结,继续向后看就行了。

官方: https://tour.golang.org

中文网: http://go-tour-zh.appspot.com

第二步 开发环境

这里也可以忽略不看,因为每一个教程都会介绍怎么配置环境

操作系统

个人推荐使用 Linux,可以使用 Ubuntu 或者 Fedora ,如果条件允许(不差钱) 也可以使用 Mac,当然使用 Windows 也是可以的,慢慢的就会知道 Windows 下做开发的纠结了。

开发环境

Go 的安装非常的简单,没有太多的依赖,如果是 Linux 下安装基本上下载一个二进制包,解压配置上一个环境变量、GOROOT 既可以了,具体的可以查看官方的安装方法: 官网安装文档中文安装文档

开发工具

可以选择一个自己喜欢的,个人建议要用个 IDE,我使用过 vim 、Sublime、Intellji idea ,最后发现还是 IDE 比较方便,尤其是代码追踪断点等。这个不纠结那种好,有人和我说 Sublime 和 vim 安装上插件也都可以,但是个人不推荐(我以前是 Sublime 重度用户,PHP 一直都在 Sublime 下开发)。

主流的文本编辑器及 IDE 的配置 官方 都有介绍,选一个自己喜欢的就可以了。

第三步 看一套视频

有人可能喜欢看视频,有人可能喜欢看文档,这个根据个人爱好去选择,个人建议要看一套视频并且只看一套就够了,毕竟看视频的效率还是比较低的,看完视频一些基础的知识点就可以掌握,并且会知道一些专有名字的读法。我以前学 PHP 的时候就从来没看过视频,导致很多名词的发音都是错的,经常被人嘲笑……,当然如果英文非常的好的同学就不用纠结了。

网上 Golang 的视频不是很多,不过也有好多套,推荐 无闻的Go编程基础,这个是被 go.learnku.comSummer
整理优化过的,看起来的效果会比一些其他网站好一些。

第四步 看一篇教程

教程也有很多,看个人的喜好吧,推荐看 Go 入门指南 ,这个也是由 无闻 翻译The Way to Go ,不过社区的版本对排版进行了优化并加入了后面没有翻译完的部分。

第五步 将标准库全部都过一遍

至少要叫常用的全都看一遍,如 strings / strconv / http 等,如果有能力可以将它们都记住,如果记忆力不太好(像我这样)至少也要知道有什么,用到的时候通过手册可以快速找到。

官方标准库: https://golang.org/pkg/

中文版的标准库: https://studygolang.com/static/pkgdoc/main...

极力推荐 https://github.com/astaxie/gopkg ,可以在学习的时候看这个,有关于标准库的详细说明和示例,学习起来会容易一些,等全都明白了要使用的时候可以去查看上面的文档。

更新:

又发现了一个不错的学习标准库的资料: 《Go语言标准库》The Golang Standard Library by Example ,有点小遗憾就是不是很全,个别的包没有完成,不过 astaxie 的那个也不全,可以互相参考着看。

完成

到这个时候,你肯定已经入门了,剩下就开始写自己的东西吧,比如写一个博客,或者去学习一个框架,不知道怎么继续去深造的话就去招聘网站上看看自己喜欢的企业都要求什么,招聘要求会什么就去学什么。

2019-05-21 追加

一直没看这篇文档,也就忘了更新了, 今天更新一下

因为我原来是 PHP 程序员, 所以就从 web 开发入手的。

后来我又翻译了官方的: Writing Web Applications 这篇文档, 翻译: Go 编写 Web 应用

看了下 httprouter 的源码, 模仿它自己做了下路由的实现, httprouter源码分析

看了下 gin 的源码, 并基于 gin 做了个博客 broqiang.com ,源码 https://github.com/BroQiang/mdblog

最近有空就会刷下 https://leetcode-cn.com/ ,用 go 做一遍实现,不过才刚刚刷了几十道题。

我也只能算是刚刚入门, 不是高手, 这是我学习的一个路线, 给新手一个借鉴。

本文来自 https://broqiang.com 没有版权限制,随意转载

本帖已被设为精华帖!
讨论数量: 16

hhhhh牛逼,受益匪浅,新手路过,膜拜大牛

5年前 评论

问下 go 有类似 python php 那样的命令行测试的工具吗?

5年前 评论

@lovecn Go 是编译语言,PHP 和 Python 是解释语言,所以不可以直接执行,不过 Go 可以使用 go run main.go 来执行代码,也可以自己直接写命令行

5年前 评论
阿麦

支持支持

4年前 评论

厉害了,也是PHPer,正在着手准备学习下go语言

4年前 评论

学了一个星期感觉还不错!

4年前 评论

Golang学了不算久,想要走微服务架构,确实在这方面来说比较优秀,其实我倒是觉得学习语言的话,看源码很重要很重要,看书也要动手写,有些事,永远不是你简单地看看就能明白的,指针这里一个很基础的概念但还是有人分不清,确实是这样的。其实倒是推荐大家可以去买一些剖析源码并且带你实战的书,比如最近我自己刚买的《自己动手写Docker》,从源码,到工具,直到带你一起完成一个虚拟化容器项目。

4年前 评论

一个中年大叔学习还算晚吗

4年前 评论
kdkd 4年前

我的基础语法都敲了一个遍, 是不是应该学框架了? 有什么比较适合新手的框架推荐吗

3年前 评论
阿麦 3年前

@海阔天空 楼上说的对,做东西,框架无所谓,用到再去看就好了,不要把精力太多放在框架上,我做 web api 比较多,项目不大的时候基本上都不会用框架

3年前 评论

这个网站 https://github.com/astaxie/gopkg 确实很不错,有了示例就显得很直观了,感谢分享

3年前 评论
面试权威指南 3年前

PHP转go的还挺多的,学习了~

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!