防止断更 请务必加首发微信:1716143665
关闭
讲堂
客户端下载
兑换中心
企业版
渠道合作
推荐作者

预习篇 | 写给0基础入门的Go语言学习者

2018-08-09 郝林(加微信:642945106 发送“赠送”领取赠送精品课程 发数字“2”获取众筹列表。)
Go语言核心36讲
进入课程

讲述:黄洲君

时长04:48大小6.60M

你好,我是郝林,今天我分享的内容是:0 基础的你,如何开始入门学习 Go 语言。

1. 你需要遵循怎样的学习路径来学习 Go 语言?

我们发现,订阅本专栏的同学们都在非常积极的学习和讨论,这让我们非常欣慰,并且和你一样干劲十足。不过,我在留言中发现,大家的基础好像都不太一样,大致可以分为这么几类。

  • 零基础的同学:可能正准备入行或者刚刚对编程感兴趣,可以熟练操作电脑,但是对计算机、操作系统以及网络方面的知识不太了解。
  • 无编程经验或者编程经验较少的同学:可能正在从事其他的技术相关工作,也许可以熟练编写脚本,但是对程序设计的通用知识和技巧还不太了解。
  • 有其他语言编程经验的同学:可能已成为程序员或软件工程师,可以用其他的编程语言熟练编写程序,但是对 Go 语言还不太了解。
  • 有一定 Go 语言编程经验的同学:已有 Go 语言编程基础,写过一些 Go 语言程序,但是急需进阶却看不清途径。

基于以上分类,我为大家制定了一份 Go 语言学习路径。不论你属于上面的哪一类,都可以按照此路径去学习深造。具体请看下面的思维导图。

(长按保存大图)

2. 学习本专栏前,你需要有哪些基础知识储备?

在这个专栏里,我会假设你有一定的计算机基础,比如,知道操作系统是什么、环境变量怎么设置、命令行怎样使用,等等。

另外,我还会假定你具备一点点编程知识,比如,知道程序是什么、程序通常会以怎样的形式存在,以及程序与操作系统和计算机有哪些关系,等等。

对了,还有在这个早已成熟的移动互联网时代,想学编程的你,一定也应该知道那些最最基本的网络知识。

我在本专栏里只会讨论 Go 语言的代码和程序,而不会提及太多计算机体系结构或软件工程方面的事情。所以你即使没有专门学过计算机系统或者软件工程也没有关系,我会尽量连带讲一些必要的基础概念和知识。

从 2018 年开始,随着 Google 逐渐重回中国,Go 语言的官方网站在 Google 中国的域名下也有了镜像,毕竟中国是 Go 语言爱好者最多的国家,同时也是 Go 语言使用最广泛的一片土地。如果你在国内,可以敲入这个网址来访问 Go 语言的官网。

这个专栏专注于 Go 语言的核心知识,因此我并不会深入说明所有关于语法和命令的细枝末节。如果你想去全面了解 Go 语言的所有语法,那么可以去 Go 语言官网的语言规范页面仔细查阅。

当然了,这里的语言规范是全英文的,如果你想看汉化的内容也是有选择的,我记得先后有几拨国内的 Go 语言爱好者自发组织翻译过。不过我都没有仔细看过,不知道质量如何,所以在这里就不特别推荐了。

对于从事计算机和软件开发相关工作的同学,我强烈建议你们要有意地训练快速阅读英文文档的能力,不论是否借助字典和翻译工具。

不过,如果你想专门学习一下 Go 命令方面的知识和技巧,那么我推荐你看看我之前写的免费开源教程《Go 命令教程》。这份教程的内容虽然稍显陈旧,但是帮助你学会使用 Go 语言自带的常用命令和工具肯定是没问题的。

好了,其实即使你是个编程小白也不用过于担心,我们会一起帮助你的。至于我刚刚说的 Go 语言规范和 Go 命令教程,你也可以在学习本专栏的过程中根据实际需要去有针对性的阅读。

3. 这里有一份基础知识列表,请查收

如果你阅读本专栏的第一个模块时感觉有些吃力,那可能是你还没有熟悉 Go 语言的一些基础概念和知识。我为你精心制作了一张 Go 语言基础知识的导图,里面几乎包含了入门 Go 语言所需的所有知识点。


(长按保存大图)

有了这些,你是否已经感觉学习本专栏会更加轻松了呢?

总之,教程、资料和助推就交给我和极客时间的编辑、运营们来共同负责。而你需要做的,就是保存好这一份对 Go 语言学习的决心,你可以自己去尝试整理一份 Go 语言的学习笔记,遇见不懂的地方,你也可以在文章下面留言,我们一起讨论。

好了,感谢你的收听,我们下期再见。

戳此查看 Go 语言专栏文章配套详细代码。

© 加微信:642945106 发送“赠送”领取赠送精品课程 发数字“2”获取众筹列表。
上一篇
开篇词 | 跟着学,你也能成为Go语言高手
下一篇
01 | 工作区和GOPATH
 写留言

1716143665 拼课微信(29)

  • kanxiaojie 置顶
    2018-12-22
    4
    这些年看了那么多教程,感觉极客这些课程真的是实在的干货😄
  • 咖啡色的羊...
    2018-08-20
    23
    郝老师的学习路线图很棒,进阶之路有方向了。之前《The Go Programming Language》来学习go的,看了好几遍,《go并发编程》第二版今天昨天才开始看,确实查缺补漏了一些基础的点。
  • javaadu
    2018-08-20
    10
    c++/c,python,java都学过,目前主力是java,也写一点c++。我学go语言的初衷是前公司使用了很多go开发的中间件(etcd、nsq等等),我希望能了解go语言在并发编程方面的特性,最好在必要的时候可以看懂这些中间件的源码
    展开

    作者回复: 你要是想深入了解Go并发编程可以买我写的那本《Go并发编程实战》第二版。

  • 天之草
    2018-08-20
    5
    erlang转go,感觉差别不算大,channel和erlang的消息队列mailbox类似,区别比较大的是erlang每个虚拟进程都是独立的内存。而go的是共享内存,要操作和同步这些内存,最好用协程串行化,保证并发安全
  • sting
    2018-08-20
    4
    很全面了,谢谢郝老师,我会努力的ヽ(•̀ω•́ )ゝ
    展开
  • 我来也
    2018-08-20
    4
    在看这篇文章前,已经订阅了慕课网上的《go语言第一课》,也在看《go并发编程实战》第二版。
    题外话,与慕课网上的郝林头像相比,还是这里的帅,虽然那里也是真实的。

    作者回复: 谢谢啊!不是同一个时期的,这里的头像更贴近现在。

  • 灬 黑 礼...
    2018-11-29
    3
    运维出身的学习下,就会shell。 希望有更多的收获!!!
  • 大毛哥
    2018-08-28
    3
    仔细看了第二张图,到这里选这门课已经值了,非常棒
    展开
  • lik0914
    2018-08-20
    3
    go错误机制,一直搞不太明白,工程实践的好方式呢
    展开

    作者回复: 在后面讲错误处理的时候我会深入解析。

  • 梧桐
    2018-08-27
    2
    看完了《Go语言编程》,到新部门正好是用go语言开发,框架初步定了使用国内的beego框架,正需要进阶go,看到这个专栏毫不犹豫的买了,对goroutine并发不是很懂,下一步准备看《Go并发编程实战》
  • 行者
    2018-08-26
    2
    两张图收下了,真的很棒。第一张对即便是工作4年的我也有帮助,温故而知新。
  • 随缘032303...
    2018-08-22
    2
    会java,学go语言快吗?
    展开

    作者回复: 会很快,因为Go更简单。

  • 云学
    2018-08-22
    2
    有没有关于〃go语言的缺陷和陷阱〃的好资料
    展开

    作者回复: 这个专栏的一部分内容说的就是这个。

  • Diviner.
    2018-08-20
    2
    感谢老师的指点,在前进的路上不至于迷茫。
    展开
  • 慢熊胖胖跑
    2018-08-20
    2
    归纳的很全面,万丈高楼平地起。谢谢老师
    展开
  • MC link
    2019-02-20
    1
    phper想自学go,之前学过一些语法基础,但是还没写过真实项目,目标是可以通过go写web接口以及网络编程。希望学完老师的专栏可以帮助我实现目标。
    展开
  • chon
    2018-12-17
    1
    老师,有啥好用的go的开发工具ide推荐?谢谢
    展开

    作者回复: vscode或者goland

  • w
    2018-12-06
    1
    老师,go语言在接收db过来的null的时候会报错。请问针对这一点也没有什么推荐的比简洁舒服的实践方法呢?
    展开
  • Dwyane
    2019-03-29
    老师你好,请问老师还可以看到留言吗?我是iOS的,有几点问题问老师。
    1.go的前景如何. 跟java比,老师是怎么看待的?
    2.mac电脑可以开发吗?我的是苹果电脑,如果不行,我只能装虚拟机或者双系统。
    展开

    作者回复: 你好,

    1. 这个问题要详细说的话可能要说很多。简单说,Go语言是一门很简约的编程语言,而Java体系复杂很多。如果你刚开始学一门后端编程语言,我建议学Go。另外这两门语言的适用领域是差不多的。但是由于Go语言更年轻,它本身更适应现代的编程需求。

    2. Go语言是跨平台的语言。从应用层面说,相同的程序可以在各种主流的操作系统上编译、安装和运行。所以macOS完全没有问题。

  • galian
    2019-03-20
    我知道了。
    https://golang.google.cn/