Tony Bai · Go语言第一课--极客时间课程推荐/优惠
版权声明
本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
你将获得:
- 完整的Go语言入门路径;
- 保姆级的基础语法教学;
- 4个实战小项目带你落地Go语言;
- Go语言常见坑点和避坑指南。
课程介绍
作为从事云原生必备的语言、腾讯、字节跳动等大厂的“高薪”宠儿,Go在这些年真是吸引了不少开发者的目光。它简洁而高效,兼具“速度感”和“力量感”,相信你也曾在某个瞬间为它的魅力折服。
不过,很多刚开始学习Go语言的开发者,很难一下子找到高效的学习路径。或者说,经过一段时间学习后,对Go的理解也只是不上不下的“半桶水”。究其原因,无外乎这几点:
- 缺乏认真的评估,从“入门”到“放弃”,平白浪费自己的精力;
- 不会动手甚至不敢动手,学习只是“纸上谈兵”;
- 用其他语言的思维学Go,最后“捡了芝麻,丢了西瓜”;
- 缺乏设计意识,永远停在“hello, world”的世界里。
到最后,基础没打牢,项目上不去,这怎么行?因此,我们请来了资深架构师、技术博客tonybai.com的博主Tony Bai老师。他从2011年就开始关注Go语言了,对语言的理解非常深刻。
在这个课程中,Tony Bai老师会用“三个诀窍和五个阶段”,带给你一条系统、完整的Go语言入门路径。你会了解到Go语言一些独特的创新,快速掌握Go的各类语法特性。同时,这门课“语法+实战”的结合能让你快速上手开发Go程序,其中的高手洞见也能让你提前“闪避”坑点。
课程设计
课程总共分为五个阶段,分别是前置篇、入门篇、基础篇、核心篇,以及实战篇。
第一个阶段:前置篇,“心定”建立认同感。在这一部分,Tony Bai老师会带你了解Go的前世今生和设计哲学。这部分会让你从设计目标、设计哲学,以及演化进程等方面,全面建立起你对Go语言的认同感,避免出现“Hello-and-Bye”的情况,这是学好Go的前提。
第二个阶段:入门篇,“手勤”多动手实践。在这一部分中,Tony Bai老师会让你的第一个Go程序跑起来,看看一些实用Go程序都有哪些语法元素和结构。这部分会建立你“照猫画虎”的能力,让你可以随心所欲地进行实践。
第三个阶段:基础篇,“脑勤”多理解,夯实基础。这一部分,Tony Bai老师会围绕着“程序=数据+算法”的逻辑,从变量、常量等基本概念,到数据类型,再到广义的算法,让你可以用Go建立对现实世界的抽象认知,也能明白Go程序运行的基本逻辑。
第四个阶段:核心篇,“脑勤+”建立自己的Go应用设计意识。在这一部分,Tony Bai老师会跟你介绍Go语言独有的,或者是有比较大创新的接口类型与goroutine等并发原语类型,这些语法元素是Go语言的核心。从这部分开始,你会树立自己的Go应用“设计意识”。
第五个阶段:实战篇,攻克Go开发的“最后一公里”。在这一部分,Tony Bai老师会通过一个实战的例子,展示怎么做好学习与使用之间的衔接,帮助你走完“使用Go进行生产级开发”这“最后一公里”。
课程目录
开篇词
- 开篇词|这样入门Go,才能少走弯路
前置篇:心定之旅
- 01|前世今生:你不得不了解的Go的历史和现状
- 02|拒绝“Hello and Bye”:Go语言的设计哲学是怎么一回事?
入门篇:勤加练手
- 03|配好环境:选择一种最适合你的Go安装方法
- 04|初窥门径:一个Go程序的结构是怎样的?
- 05|标准先行:Go项目的布局标准是什么?
- 06|构建模式:Go是怎么解决包依赖管理问题的?
- 07|构建模式:Go Module的6类常规操作
- 08|入口函数与包初始化:搞清Go程序的执行次序
- 09|即学即练:构建一个Web服务就是这么简单
基础篇:“脑勤”多理解
- 10|变量声明:静态语言有别于动态语言的重要特征
- 11|代码块与作用域:如何保证变量不会被遮蔽?
- 12|基本数据类型:Go原生支持的数值类型有哪些?
- 13|基本数据类型:为什么Go要原生支持字符串类型?
- 14|常量:Go在“常量”设计上的创新有哪些?
- 15|同构复合类型:从定长数组到变长切片
- 16|复合数据类型:原生map类型的实现机制是怎样的?
- 17|复合数据类型:用结构体建立对真实世界的抽象
- 18|控制结构:if的“快乐路径”原则
- 19|控制结构:Go的for循环,仅此一种
- 20|控制结构:Go中的switch语句有哪些变化?
- 21|函数:请叫我“一等公民”
- 22|函数:怎么结合多返回值进行错误处理?
- 期中测试|一起检验下你的学习成果吧
- 23|函数:怎么让函数更简洁健壮?
- 24|方法:理解“方法”的本质
- 25|方法:方法集合与如何选择receiver类型?
- 26|方法:如何用类型嵌入模拟实现“继承”?
- 27|即学即练:跟踪函数调用链,理解代码更直观
- 用户故事|罗杰:我的Go语言学习之路
核心篇:“脑勤+”洞彻核心
- 28|接口:接口即契约
- 29|接口:为什么nil接口不等于nil?
- 30|接口:Go中最强大的魔法
- 元旦快乐|这是一份暂时停更的声明
- 31|并发:Go的并发方案实现方案是怎样的?
- 32|并发:聊聊Goroutine调度器的原理
- 33|并发:小channel中蕴含大智慧
- 34|并发:如何使用共享变量?
- 35|即学即练:如何实现一个轻量级线程池?
实战篇:打通“最后一公里”
- 36|打稳根基:怎么实现一个TCP服务器?(上)
- 37|代码操练:怎么实现一个TCP服务器?(中)
- 38|成果优化:怎么实现一个TCP服务器?(下)
- 结课测试|快来检验下你的学习成果吧!
加餐篇
- 加餐|我“私藏”的那些优质且权威的Go语言学习资料
- 加餐|聊聊Go 1.17版本的那些新特性
- 加餐|如何拉取私有的Go Module?
- 加餐|作为Go Module的作者,你应该知道的几件事
- 加餐|聊聊Go语言的指针
结束语
- 结束语|和你一起迎接Go的黄金十年
大咖助阵
- 大咖助阵|孔令飞:从小白到“老鸟”,我的Go语言进阶之路
- 大咖助阵|叶剑峰:Go语言中常用的那些代码优化点
- 大咖助阵|徐祥曦:从销售到分布式存储工程师,我与 Go 的故事
- 大咖助阵|曹春晖:聊聊 Go 语言的 GC 实现
- 大咖助阵|大明:Go泛型,泛了,但没有完全泛
- 大咖助阵|海纳:聊聊语言中的类型系统与泛型
泛型篇
- 加餐|聊聊最近大热的Go泛型
- 39 | 驯服泛型:了解类型参数
- 40|驯服泛型:定义泛型约束
- 41 | 驯服泛型:明确使用时机