Kodewick
开始学 →
Go 课程 · 入门

Go 入门

从第一个 fmt.Println 学到切片、接口和错误处理,再到 goroutine 和 channel。每段代码都在页面里跑,单步时每个 goroutine 一条泳道,看清楚谁在等谁。

从第 1 课开始 →24 课 · 约 6 小时 · 免费 · 在浏览器里运行
  1. 第 1 部分起步fmt.Println、变量和零值、if、for、函数。5 课 · 约 1.5 小时
    1. 第 1 课你好,世界!15 分钟开始
    2. 第 2 课变量、类型和零值15 分钟开始
    3. 第 3 课if 和 switch15 分钟开始
    4. 第 4 课for 循环15 分钟开始
    5. 第 5 课函数和多个返回值15 分钟开始
  2. 第 2 部分数据数组和切片、切片怎么长大、map、字符串和 rune。4 课 · 约 1 小时
    1. 第 6 课数组和切片15 分钟开始
    2. 第 7 课切片怎么长大15 分钟开始
    3. 第 8 课map15 分钟开始
    4. 第 9 课字符串和 rune15 分钟开始
  3. 第 3 部分类型结构体、指针、方法、接口。4 课 · 约 1 小时
    1. 第 10 课结构体15 分钟开始
    2. 第 11 课指针15 分钟开始
    3. 第 12 课方法15 分钟开始
    4. 第 13 课接口20 分钟开始
  4. 第 4 部分出错和函数error、defer / panic / recover、闭包、泛型。4 课 · 约 1 小时
    1. 第 14 课错误:error20 分钟开始
    2. 第 15 课defer、panic 和 recover15 分钟开始
    3. 第 16 课闭包15 分钟开始
    4. 第 17 课泛型函数15 分钟开始
  5. 第 5 部分并发goroutine、channel、select、WaitGroup 和 Mutex,还有死锁。6 课 · 约 1.5 小时
    1. 第 18 课goroutine15 分钟开始
    2. 第 19 课channel15 分钟开始
    3. 第 20 课带缓冲的 channel 和 close15 分钟开始
    4. 第 21 课select15 分钟开始
    5. 第 22 课WaitGroup 和 Mutex15 分钟开始
    6. 第 23 课死锁和常见错误15 分钟开始
  6. 第 6 部分小项目用 goroutine 和 channel 搭一条流水线。1 课 · 约 0.5 小时
    1. 第 24 课小项目:流水线和一群工人20 分钟开始

常见问题

真的免费吗?

是的。每一课、每段代码、每道练习都免费,也不用注册。

要先安装 Go 吗?

不用。代码在你的浏览器里运行,结果和 Go 1.24 一样,还能一步一步地看变量和每个 goroutine。

这是真的 Go 吗?

是 Go 1.24 的写法。课里每段代码都和真的 Go 对过,输出和报错都一样。读写文件、网络、真实时间这些在浏览器里用不了,课里也不用。

goroutine 每次跑的顺序一样吗?

在这里一样:我们的调度每次都按同一个顺序,所以练习能自动判对。真的 Go 每次可能不一样,课里会说清楚哪些顺序靠得住、哪些靠不住。

没学过编程能学 Go 吗?

能,第 1 课从 fmt.Println 开始,每一课只用前面学过的东西。完全没学过的话,先学 Python 会轻松一点。

学 Go 要多久?

一课 15 到 20 分钟。一天一两课,三四周能学完。并发那一部分慢一点,多点几次「单步」。

手机上能学吗?

能。讲解、运行、单步和练习在手机上都能用;长一点的练习用键盘会更顺手。

进度存在哪里?

存在这个浏览器里,不用账号。换了设备或者清了浏览器数据,进度就不在了。