为什么值得学
如果你做后端,大概率听过 Go 的名字。它语法简洁、并发模型好用,部署起来也省心,很多中小团队拿它写 API 服务和中间件。但真正想上手时,不少人卡在第一步:环境装好了,不知道代码该放哪;照着教程敲,一跑就报错;看懂了语法,却不知道怎么组织一个能跑起来的 Web 服务。
这门课就是冲着这个缺口来的。它不打算把你变成语言专家,而是先带你走完从零到能写项目的过程。课程前半段花在基础语法上,包括变量、常量、数据类型、字符串处理、包管理这些绕不开的东西;后半段进入 Web 开发,让你把语法用到真实场景里。对上班族来说,这意味着不用自己东拼西凑教程,跟着一条线走下来,就能摸清 Go 后端开发的门路。
适合什么基础,怎么开始
这门课适合完全没有 Go 基础、但想快速入门的人。如果你之前学过一点 Python、Java 或 JavaScript,学起来会更顺,因为编程概念是相通的;如果你连编程都没碰过,只要愿意跟着敲,也能走通,但需要多一点耐心。
建议你按这个顺序看:先别急着写代码,把前几节环境安装认真过一遍,尤其是 Windows 和 Linux 的差异,照着在你自己电脑上装好 Go 和 VS Code。装好后,跟着“第一个应用程序”那几节,亲手打出你的第一个 Hello World,把运行流程跑通。这一步比多看十节理论都重要。
之后进入语法部分,不要跳着看。变量声明、值类型和引用类型的区别、局部变量和全局变量、包之间的调用,这些是后面写 Web 代码的基础。字符串反转那节看似是练习,其实能让你理解切片和循环的配合,值得动手做一遍。每学完一个小节,就关掉视频,凭记忆把代码重写一遍,写不出来再回去看,这样比一直看视频有效得多。
学完能独立做什么,怎么练
学完这门课,你能独立完成一个简单的 Go Web 后端服务:接收 HTTP 请求,处理参数,返回 JSON 数据,处理基本的错误。你能看懂别人写的 Go 项目结构,知道包怎么拆、变量怎么放,也能自己动手写一个带路由的小接口,跑在本地给前端联调。
练习时,别只是把课程里的项目代码抄一遍。每学完一个功能点,试着改改它的输入输出,或者加一个小需求。比如课程里做了某个接口,你就自己加一个参数校验,或者换一种数据结构返回。遇到报错,先自己读错误信息,再回头看课程怎么处理;实在卡住,就对比你的代码和老师写的差异。这样练完,你记住的不只是代码,而是解决问题的思路。等基础扎实了,再回头把整个项目从头到尾独立实现一遍,那才是真正的“学完”。
课程目录
课程目录146 集
- 1-1 [Go语言day1] 01-go的简单介绍 (07:13).mp4
- 1-2 [Go语言day1] 02-go的语言特点 (05:58).mp4
- 1-3 [Go语言day1] 03-go的代码演示 (04:38).mp4
- 1-4 [Go语言day1] 04-go课程安排 (02:48).mp4
- 1-5 [Go语言day1] 05-go语言的安装介绍 (04:31).mp4
- 1-6 [Go语言day1] 06-go语言的windows和linux的安装 (09:47).mp4
- 1-7 [Go语言day1] 07.go语言第一个应用程序的介绍 (15:05).mp4
- 1-8 [Go语言day1] 08.vscode的安装 (06:44).mp4
- 1-9 [Go语言day1] 09.通过同学电脑进行操作演示vscode的安装 (07:54).mp4
- 1-10 [Go语言day1] 10.go语言的文件名&关键字&标识符 (05:40).mp4
- 1-11 [Go语言day1] 11-go语言实战方法以及包名的讲解 (16:43).mp4
- 1-12 [Go语言day1] 12-go语言实战不同包内变量之间的调用 (11:43).mp4
- 1-13 [Go语言day1] 13-go语言实战包里面的注意点 (08:43).mp4
- 1-14 [Go语言day1] 14-go语言常量的讲解 (11:04).mp4
- 1-15 [Go语言day1] 15-go语言变量的声明和定义 (11:59).mp4
- 1-16 [Go语言day1] 16-go语言变量的值类型和引用类型 (14:16).mp4
- 1-17 [Go语言day1] 17-go语言局部变量和全局变量 (09:12).mp4
- 1-18 [Go语言day1] 18-go语言数据类型和操作符和生产随机数 (15:51).mp4
- 1-19 [Go语言day1] 19-go语言数据字符串类型和字符串反转俩种方式 (15:31).mp4
- 1-20 [Go语言day1] 20-go语言fmt的格式输出介绍 (10:10).mp4
- 1-21 [Go语言day1] 21-go语言判断101-200 之间有多少个素数,并输出所 (05:59).mp4
- 1-22 [Go语言day1] 22-go语言100-999中所有的水仙花数 (05:56).mp4
- 1-23 [Go语言day1] 23-go语言求n的阶乘之和 (06:04).mp4
- 2-1 [Go语言day2] 01.实战-利用字符串实现水仙花 (11:21).mp4
- 2-2 [Go语言day2] 02.实战-利用字符处理方法判断前缀和后缀 (13:36).mp4
- 2-3 [Go语言day2] 04.go语言时间处理方法以及时间格式化 (13:54).mp4
- 2-4 [Go语言day2] 03.go语言字符串常用的方法 (03:25).mp4
- 2-5 [Go语言day2] 05.go语言时间实战-处理方法消耗时间 (06:24).mp4
- 2-6 [Go语言day2] 06.go语言指针的讲解和实战 (14:40).mp4
- 2-7 [Go语言day2] 07.go语言流程控制if语句 (03:32).mp4
- 2-8 [Go语言day2] 08.go语言流程控制switch的5种写法 (10:06).mp4
- 2-9 [Go语言day2] 09.go语言流程控制switch实战猜数字随机生成一个0到 (09:33).mp4
- 2-10 [Go语言day2] 10.go语言循环控制语句for以及常用的几种方法 (13:15).mp4
- 2-11 [Go语言day2] 11.go语言循环控制语句for的实战 (08:04).mp4
- 2-12 [Go语言day2] 12.go语言函数的介绍以及函数一等公民的实战 (12:31).mp4
- 2-13 [Go语言day2] 13.go语言函数的传递和多个返回值注意点 (05:49).mp4
- 2-14 [Go语言day2] 14.go语言可变类型和实战 (07:27).mp4
- 2-15 [Go语言day2] 15.go语言defer用途 (09:27).mp4
- 2-16 [Go语言day2] 16.go语言字符编码以及中文为何用rune转换 (18:53).mp4
- 2-17 [Go语言day2] 17.go语言rune回文实战 (08:20).mp4
- 2-18 [Go语言day2] 18.go语言panic和recover错误处理和内置函数 (09:31).mp4
- 2-19 [Go语言day2] 19.go语言make和new的区别 (15:23).mp4
- 2-20 [Go语言day2] 20.go语言递归函数 (04:25).mp4
- 2-21 [Go语言day2] 21.go语言闭包的使用和实战案例 (14:47).mp4
- 2-22 [Go语言day2] 22.go语言数组的介绍 (09:44).mp4
- 2-23 [Go语言day2] 23.go语言二维数组的遍历 (11:22).mp4
- 2-24 [Go语言day2] 24.go语言切片的介绍和使用 (17:24).mp4
- 3-1 [Go语言day3] 01.go基础语言切片的基础知识 (18:12).mp4
- 3-2 [Go语言day3] 02.go切片的原理和数组之间的关系 (19:17).mp4
- 3-3 [Go语言day3] 03.go切片resize (07:19).mp4
- 3-4 [Go语言day3] 04.go切片的拷贝 (05:15).mp4
- 3-5 [Go语言day3] 05.go切片如何改变string中的字符值 (12:20).mp4
- 3-6 [Go语言day3] 06.go切片排序问题 (07:26).mp4
- 3-7 [Go语言day3] 07.go切片排序和查询 (02:35).mp4
- 3-8 [Go语言day3] 08.go语言map的基本操作 (15:05).mp4
- 3-9 [Go语言day3] 09.go语言map的复杂操作map里面嵌套map (12:47).mp4
- 3-10 [Go语言day3] 10.go语言map的打印方式 (02:20).mp4
- 3-11 [Go语言day3] 11.go语言map排序 (08:28).mp4
- 3-12 [Go语言day3] 12.go语言map的反转 (03:36).mp4
- 3-13 [Go语言day3] 13.go语言包和锁 (17:59).mp4
- 3-14 [Go语言day3] 14.go语言冒泡和选择排序 (06:23).mp4
- 3-15 [Go语言day3] 15.go语言指针和地址区别 (03:54).mp4
- 3-16 [Go语言day3] 16.go语言结构体的定义 (10:27).mp4
- 3-17 [Go语言day3] 17.go语言结构体作为函数的值传递和地址传递 (07:28).mp4
- 3-18 [Go语言day3] 18.go语言定义和内存存储 (15:04).mp4
- 3-19 [Go语言day3] 19.go语言结构体不能和其他类型进行强制转换 (06:44).mp4
- 3-20 [Go语言day3] 20.go语言结构体转换成json和json转换成结构体 (11:34).mp4
- 3-21 [Go语言day3] 21.go语言结构体中的方法定义 (13:28).mp4
- 3-22 [Go语言day3] 22.go语言结构体中的方法实战 (05:25).mp4
- 3-23 [Go语言day3] 23.go语言结构体中的继承和组合 (06:05).mp4
- 3-24 [Go语言day3] 24.go语言结构体中的toString重写 (02:32).mp4
- 3-25 [Go语言day3] 25.go语言接口的定义 (12:38).mp4
- 3-26 [Go语言day3] 26.go接口的实战和实现所有接口 (05:26).mp4
- 3-27 [Go语言day3] 27.go接口的实战断言 (08:42).mp4
- 4-1 [Go语言day4] 01.go语言断言介绍 (10:34).mp4
- 4-2 [Go语言day4] 02.go语言反射的基本语法讲解 (12:20).mp4
- 4-3 [Go语言day4] 03.go语言反射kind和value取值 (09:10).mp4
- 4-4 [Go语言day4] 04.go语言通过Elem修改值 (11:37).mp4
- 4-5 [Go语言day4] 05.go语言反射结构体 (13:27).mp4
- 4-6 [Go语言day4] 06.go语言文件的写入操作和终端输入问题 (07:28).mp4
- 4-7 [Go语言day4] 07.go语言fmt常用的打印方法 (04:22).mp4
- 4-8 [Go语言day4] 08.go语言缓冲的读数据 (05:23).mp4
- 4-9 [Go语言day4] 09.go语言文件的读和写操作 (04:52).mp4
- 4-10 [Go语言day4] 10.go语言从终端读取一行字符串并统计 (12:47).mp4
- 4-11 [Go语言day4] 11.go语言拷贝和复制以及gz压缩文件的读写 (07:38).mp4
- 4-12 [Go语言day4] 12.go语言文件的写入和拷贝文件 (09:21).mp4
- 4-13 [Go语言day4] 13.go语言命令行操作符flag (09:24).mp4
- 5-1 [Go语言day5] 01.go语言协程的概念 (08:50).mp4
- 5-2 [Go语言day5] 02.go语言chan的声明和初始化 (13:11).mp4
- 5-3 [Go语言day5] 03.go语言chan中的读取和写入数据 (11:38).mp4
- 5-4 [Go语言day5] 04.go语言chan带缓冲区的管道 (09:16).mp4
- 5-5 [Go语言day5] 05.go语言chan的close关闭 (06:10).mp4
- 5-6 [Go语言day5] 06.go语言channal退出机制 (09:26).mp4
- 5-7 [Go语言day5] 07.go语言中的select语句 (05:20).mp4
- 5-8 [Go语言day5] 08.go语言中的chan关闭案例 (20:44).mp4
- 5-9 [Go语言day5] 09.go语言中的定时器任务 (10:00).mp4
- 5-10 [Go语言day5] 10.go语言中的超时控制 (08:15).mp4
- 5-11 [Go语言day5] 11.go语言的调试方法 (07:37).mp4
- 6-1 [Go语言day6] 01.go语言的tcp介绍 (10:19).mp4
- 6-2 [Go语言day6] 02.go语言的tcp客户端连接服务器端实战 (08:01).mp4
- 6-3 [Go语言day6] 03.go语言的tcp模仿tcp的课程实战 (04:33).mp4
- 6-4 [Go语言day6] 04.go语言的http协议 (07:20).mp4
- 6-5 [Go语言day6] 05.go语言的httpclient端请求百度 (03:53).mp4
- 6-6 [Go语言day6] 06.go语言的http头信息和状态码 (04:10).mp4
- 6-7 [Go语言day6] 07.go语言的页面在代码里面嵌入form (15:18).mp4
- 6-8 [Go语言day6] 08.go语言的模板的渲染html (06:54).mp4
- 6-9 [Go语言day6] 09.go语言的html和业务绑定的小项目 (12:49).mp4
- 6-10 [Go语言day6] 10.go语言操作mysql的介绍和对应的依赖下载 (06:43).mp4
- 6-11 [Go语言day6] 11.go语言mysql的插入 (07:07).mp4
- 6-12 [Go语言day6] 12.go语言mysql的查询功能 (08:38).mp4
- 6-13 [Go语言day6] 13.go语言mysql的更新和删除功能 (04:15).mp4
- 6-14 [Go语言day6] 14.go语言爬虫的讲解 (21:41).mp4
- 7-1 [Go语言day07天项目] 01.日志系统介绍 (11:39).mp4
- 7-2 [Go语言day07天项目] 02.zk和kafka的配置信息 (08:21).mp4
- 7-3 [Go语言day07天项目] 03.go语言实现kafka和tail的功能 (26:37).mp4
- 7-4 [Go语言day07天项目] 04.go语言实现读取config文件中的配置信息 (13:53).mp4
- 7-5 [Go语言day07天项目] 05.go语言实现log日志的打印 (08:52).mp4
- 7-6 [Go语言day07天项目] 06.go项目日志收集系统整合之--配置文件读取 (23:34).mp4
- 7-7 [Go语言day07天项目] 07.go项目日志收集系统整合之--日志文件的操作 (14:23).mp4
- 7-8 [Go语言day07天项目] 08.go项目日志收集系统整合之--tail日志监听 (17:47).mp4
- 8-1 [Go语言day08天项目] 01.go语言日志收集系统整合--tail,配置文件,Log (15:51).mp4
- 8-2 [Go语言day08天项目] 02.go语言日志收集系统整合--tail收集kafkasp (17:51).mp4
- 8-3 [Go语言day08天项目] 03.go语言利用context实现超时 (09:31).mp4
- 8-4 [Go语言day08天项目] 04.go语言利用context关闭子线程方法 (13:50).mp4
- 8-5 [Go语言day08天项目] 05.go语言利用context之deadline (02:55).mp4
- 8-6 [Go语言day08天项目] 06.go的etcd的使用 (11:19).mp4
- 8-7 [Go语言day08天项目] 07.go的etcd的linux配置 (34:18).mp4
- 8-8 [Go语言day08天项目] 08.go的etcd添加和删除功能 (03:49).mp4
- 8-9 [Go语言day08天项目] 09.go的解决谷歌被墙自己从github拼凑 (10:19).mp4
- 8-10 [Go语言day08天项目] 10.go语言etcd的增删该查 (14:35).mp4
- 8-11 [Go语言day08天项目] 11.go语言日志收集器的架构 (04:45).mp4
- 9-1 [Go语言day09天项目] 01.日志收集器继承etcd (23:49).mp4
- 9-2 [Go语言day09天项目] 02.日志收集器监听文件变化 (07:46).mp4
- 9-3 [Go语言day09天项目] 03.日志收集器监听文件动态的添加和修改 (18:51).mp4
- 9-4 [Go语言day09天项目] 04.日志收集器总体介绍 (09:06).mp4
- 9-5 [Go语言day09天项目] 05.beego的简单入门 (16:22).mp4
- 9-6 [Go语言day09天项目] 06.beego的快速入门 (14:50).mp4
- 9-7 [Go语言day09天项目] 07.beego的快速配置文件的介绍 (07:37).mp4
- 9-8 [Go语言day09天项目] 08.beego的mysql控制 (21:21).mp4
- 9-9 [Go语言day09天项目] 09.beego的博客系统 (12:34).mp4
- 10-1 [Go语言day10天博客系统] 01.博客系统的下载安装和使用 (04:45).mp4
- 10-2 [Go语言day10天博客系统] 02.数据库的安装和运行方法 (03:10).mp4
- 10-3 [Go语言day10天博客系统] 03.数据库的初始化 (09:02).mp4
- 10-4 [Go语言day10天博客系统] 04.博客系统首页的代码分析 (12:41).mp4
- 10-5 [Go语言day10天博客系统] 05.博客系统用户端的代码分析 (10:18).mp4
- 10-6 [Go语言day10天博客系统] 06.博客系统用户后端的管理业务 (11:57).mp4






