Go 语言核心 36 讲
郝林
《Go 并发编程实战》作者,前轻松筹大数据负责人
78704 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
Go 语言核心 36 讲
15
15
1.0x
00:00/00:00
登录|注册

导读 | 写给0基础入门的Go语言学习者

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

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

我们发现,订阅本专栏的同学们都在非常积极的学习和讨论,这让我们非常欣慰,并且和你一样干劲十足。不过,我在留言中发现,大家的基础好像都不太一样,大致可以分为这么几类。
零基础的同学:可能正准备入行或者刚刚对编程感兴趣,可以熟练操作电脑,但是对计算机、操作系统以及网络方面的知识不太了解。
无编程经验或者编程经验较少的同学:可能正在从事其他的技术相关工作,也许可以熟练编写脚本,但是对程序设计的通用知识和技巧还不太了解。
有其他语言编程经验的同学:可能已成为程序员或软件工程师,可以用其他的编程语言熟练编写程序,但是对 Go 语言还不太了解。
有一定 Go 语言编程经验的同学:已有 Go 语言编程基础,写过一些 Go 语言程序,但是急需进阶却看不清途径。
基于以上分类,我为大家制定了一份 Go 语言学习路径。不论你属于上面的哪一类,都可以按照此路径去学习深造。具体请看下面的思维导图。
(长按保存大图)

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

在这个专栏里,我会假设你有一定的计算机基础,比如,知道操作系统是什么、环境变量怎么设置、命令行怎样使用,等等。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言核心 36 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(45)

  • 最新
  • 精选
  • kanxiaojie
    置顶
    这些年看了那么多教程,感觉极客这些课程真的是实在的干货😄
    1
    38
  • 会哭的鱼
    老师还是忍不住询问下,之前是PHP的工作,有好几年了,去年底开始接触GO感觉很喜欢,但是现在公司在转Java,因为Java也要耗费很多精力学习,但是又不想放弃Go,请问有什么好的方式呢?期待您的回答

    作者回复: 这个问题其实问得很好。相信很多技术人都有这样的困惑。咱们在这里先不说是否“为了Go语言而转团队甚至跳槽”的问题。 我们先要从两个方面考虑。第一个,你需要问问自己,目前的公司和团队所做的事情是否是你热爱的? 假设,如果你在金融领域中的一个很不错的互联网公司,那么这个公司必然是以Java为主的。你如果很喜欢在那里工作,那么就应该也以Java为主,把Go语言作为爱好。这其实并不冲突,研究Go语言可以让你深入了解到并发模型、操作系统和网络通讯方面的东西。这些技术到了底层其实都是想通的。Java由于中间有一层体量很庞大的JVM,所以有时反倒不容易看清底层的东西。当然了,如果你潜心研究JVM,那底层的东西也会涉及到一些。 刚才说的是选择“做哪个领域的事”的问题,现在说选择“技术栈”的问题。一些互联网公司只用一种技术栈,这其实是懒惰的表现。每个技术栈都有它的特色和强势领域。一个优秀的互联网公司往往不会只使用一个技术栈,多个技术栈合力以充分发挥它们的最大优势才是王道。 所以,第二个问题就是,你要问一问,你所在的公司是否对技术栈有包容性。如果有,那么很好,你可以建议先用Go语言做一些边缘的并且可以体现其优势的小项目,然后慢慢的再去扩大这种优势。如果万一没有,我也不能说这就是一家烂公司,也许它只是一家非技术驱动的公司。如果对于上面的第一个问题你的回答是否定的,那么就可以考虑动一动了。 另外,我其实会鼓励软件程序员去构建自己的个人项目。这当然是在不耽误现有工作内容的前提下。通过这种方式,你也可以获得很多额外的实践机会和知识。这在你开始工作的前5年是很重要的。有时候,这种额外的实践也可以让你逐渐搞清楚自己真正热爱的是什么。为什么有的程序员2、3年就很牛了?这就是主要原因之一。不过,我在这里只是建议,因为这会以牺牲你的休息时间为代价。 那总结来看,有三点: 1. 你是否喜欢你所在的领域、公司和团队,热爱你现在做的事情?如果是,你就遵从团队的决定;如果不是,你可以结合第三个问题,做自己的项目或者更换职位。 2. 你的公司是否对技术栈有足够的包容性,可以让你去探索和拓展?如果是,你要抓住机会,合力运用Go语言;如果不是,你需要结合第一个问题和第三个问题,做自己的项目或者更换职位。 3. 你是否愿意牺牲个人的自由时间去做额外的实践?如果是,那么很好,赶紧去做吧!如果不是,那么你很可能需要顺从公司和团队的决定,因为这就是打工者应该做的。 以上就是我想给你的答案。

    8
    115
  • javaadu
    c++/c,python,java都学过,目前主力是java,也写一点c++。我学go语言的初衷是前公司使用了很多go开发的中间件(etcd、nsq等等),我希望能了解go语言在并发编程方面的特性,最好在必要的时候可以看懂这些中间件的源码

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

    13
  • 随缘03230323
    会java,学go语言快吗?

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

    5
  • 我来也
    在看这篇文章前,已经订阅了慕课网上的《go语言第一课》,也在看《go并发编程实战》第二版。 题外话,与慕课网上的郝林头像相比,还是这里的帅,虽然那里也是真实的。

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

    5
  • lik0914
    go错误机制,一直搞不太明白,工程实践的好方式呢

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

    4
  • 王小宇丶
    请问下老师,思维导图在字面量->值字面量这个分支中,先说 ”整数字面量本身是无类型的“,但是赋值的时候又说”整数字面量的默认类型是int“ 请问这个改怎么理解呢?

    作者回复: 整数字面量,比如“123”、“456”,它们本身属于无类型的常量。数值字面量、字符字面量和字符串字面量本身都是无类型常量,都是不可变的。当它们被付给某个变量,或者被显式的类型转换之后就成为了有类型的值了。 你可以把这看作是一个客观事物的两种不同状态。打个比方,你刚出生的时候,没有名字、没有国籍,但是你存在于社会中必须要有这两样东西。所以,在你被认可为一个独立且与其他人(比如你父母)有关联的人的时候,这两个外加的属性就会被赋予你。在这之后,你才能在社会中从事各种活动(否则就是黑户了)。 一个整数字面量(或者说表示为整数的常量)在被真正使用之前,Go语言必然会为它设定一些属性。虽然对于每一种常量都存在与之对应的默认类型,但它们本身是无类型的。类型这个属性在常量被真正使用的时候才会生效且具有约束意义。 更详细的说明可以参看官方文档:https://golang.google.cn/ref/spec#Constants 。

    2
    2
  • Dwyane
    老师你好,请问老师还可以看到留言吗?我是iOS的,有几点问题问老师。 1.go的前景如何. 跟java比,老师是怎么看待的? 2.mac电脑可以开发吗?我的是苹果电脑,如果不行,我只能装虚拟机或者双系统。

    作者回复: 你好, 1. 这个问题要详细说的话可能要说很多。简单说,Go语言是一门很简约的编程语言,而Java体系复杂很多。如果你刚开始学一门后端编程语言,我建议学Go。另外这两门语言的适用领域是差不多的。但是由于Go语言更年轻,它本身更适应现代的编程需求。 2. Go语言是跨平台的语言。从应用层面说,相同的程序可以在各种主流的操作系统上编译、安装和运行。所以macOS完全没有问题。

    2
  • chon
    老师,有啥好用的go的开发工具ide推荐?谢谢

    作者回复: vscode或者goland

    3
    2
  • 云学
    有没有关于〃go语言的缺陷和陷阱〃的好资料

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

    2
收起评论
显示
设置
留言
45
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部