国外的老师是怎么教Golang的?
今天给大家介绍一个Go培训的课程资料仓库gotraining[1],官网在这ardanlabs[2],想必很多gopher也知道这个网站。ardanlabs-blog[3]也有很多优质的教学文章和系列教程。文章列表在这儿https://www.ardanlabs.com/all-posts/,大家感兴趣的话可以订阅学习,强烈建议大家过一下这里的知识点。
由于内容较多,限于篇幅,这里主要给大家介绍下仓库的主要目录介绍。后续会针对某些章节做一些翻译和输出。
├── algorithms
├── concurrency
├── design
├── exercises
├── generics
├── language
├── packages
├── profiling
└── testing
algorithms
https://github.com/ardanlabs/gotraining/tree/master/topics/go/algorithms
algorithms目录的话主要介绍的是算法数据结构相关的例子,比如:
go/algorithms/fun
包含一些设计的代码,比如pub/sub的简单设计代码go/algorithms/simulations
模拟解决日常一些问题的代码go/algorithms/data
主要是hash、链表、队列、栈、树的一些例子go/algorithms/strings
包括字符串反转、回文、对比的简单例子
concurrency
https://github.com/ardanlabs/gotraining/tree/master/topics/go/concurrency
这里主要介绍并发相关的知识点,包括channel、goroutine的运用。
channels主要介绍了channel的设计原则、一些练习,
goroutines主要讲解了Go调度原理、并发设计和一些例子使用
data race主要介绍了数据竞争的一些case,包括原子增量、互斥锁、读写锁和map数据竞争的例子
concurrency Patterns 这个目录主要讲Go并发模式。还有chat、logger、task、pooling、kit等优秀代码的review
Concurrency patterns:https://github.com/gobridge/concurrency-patterns
Functional Options:代码可见https://github.com/grpc/grpc-go/blob/master/clientconn.go
design
https://github.com/ardanlabs/gotraining/tree/master/topics/go/design
composition:主要讲解了接口与组合的设计,还有一些关于解耦、分组、 mock数据、接口污染转换和断言的代码review。
error_handling:这个目录包括了错误处理设计的讲解,有很多好的error处理的案例,比如:如何使用
github.com/pkg/errors
和标准库去wrap 错误,packaging:主要讲述了Go中的包如何去设计,遵循哪些设计哲学。工程项目结构应该是什么样的。
exercises
https://github.com/ardanlabs/gotraining/tree/master/topics/go/exercises
这个目录主要编写一些程序来锻炼你的Go技能。这些练习的目的是涵盖各种各样的主题,每一个都是一个完整的程序与实际应用。
generics
https://github.com/ardanlabs/gotraining/tree/master/topics/go/generics
这是用于展示关于Go泛型的一些例子。随着提案变动和泛型实现的变动,这块代码可能会停更和更新。
language
https://github.com/ardanlabs/gotraining/tree/master/topics/go/language
这里主要是学习Go语言的基础部分。包括常量、变量、方法、接口、数组、切片、接口、Map、指针、流程控制。各个章节都有很详细的介绍和参考案例。
packages
https://github.com/ardanlabs/gotraining/tree/master/topics/go/packages
packages主要讲述了标准库context、encoding、io、log、reflect的一些注意事项、文章和例子。
profiling
https://github.com/ardanlabs/gotraining/tree/master/topics/go/profiling
这里主要列举了使用 go 工具来检查和分析我们的程序。有开启GODEBUG跟踪调度和GC的例子分析、HTTP跟踪、benchmark的内存和CPU分析、Mutex和block案例分析、go tool pprof和trace的使用。
testing
https://github.com/ardanlabs/gotraining/tree/master/topics/go/testing
主要内容包括是基准测试的例子分析、模糊测试的案例、内建Testing包的使用。
小结
上面就是几个培训资料的大概介绍。土拨鼠认为这个培训资料很值得大家去学习,仓库中例子和指导文章视频较多,实战性很强。有语言基础、标准库的讲解、代码设计、并发编程、算法练习、性能分析、代码测试等内容。相信学了这套教程,你就是Go高级工程师。
如果你有推荐的Go系列教程,欢迎留言推荐。
参考资料
[1]
gotraining: https://github.com/ardanlabs/gotraining
[2]
ardanlabs: https://www.ardanlabs.com/
[3]
ardanlabs-blog: https://www.ardanlabs.com/blog/
欢迎关注Go招聘公众号,获取更多精彩内容。
国外的老师是怎么教Golang的?相关推荐
- 读书感受 之 《跟美国幼儿园老师学早教》
作者:Zoe 转自:https://www.zhenxiangsimple.com/2019/04/29/books-跟美国幼儿园老师学早教/ 红字部分其实我觉得是教育父母的,大家可以看一下,其实 ...
- 为什么大学普遍都教C/C++、Java,而不教Golang、Python、Rust?
教C/C++.JAVA是肯定没问题的,不教Go.Python.Rust绝对没有好处,不过我认为学生可以自学,这是长期以来形成的历史原因.缺少好的教材,老一辈的教授大部分也都没接触过这些新的语言,他们又 ...
- c语言学生对老师的评教系统,学生对老师的评价
学生对老师的评价 1.老师授课的方式十分适合我们,他根据本课程知识结构的特点,重点突出,层次分明.理论和实际相结合,透过例题使知识更条理化.但授课速度有点快,来不及记录. 2.老师在生活工作中给人的感 ...
- 数学老师从没这么教过,乘法竖式中进位可以是多位(附Python实现与测试源码)...
大概十五年前,曾经写过一个C语言版本的类似代码.核心思想是:在乘法竖式计算过程中,每次的进位实际上是可以超过一位的,虽然老师从来没有这么教过. 这样的操作在Python中是没有必要的,因为Python ...
- 国外大学老师用Prof.还是Dr.称呼?
套磁的时候,小虎看了500+个Faculties的简介,发现他们的titles都遵循一般性规律,这里我分享一下,顺便解答各位对于如何称呼国外老师的疑惑.其实这跟教师所在的职位有主要关系.一般有两种Ti ...
- c语言编程学生对老师的评教系统,记王宇颖教授和她的“C语言”教学团队
哈工大报讯(刘培香/文) 在计算机学院举行的"我身边的马祖光"征文中,有好几位同学不约而同地写到了同一位老师,字里行间流露的是深深的尊敬和爱戴――"她的每一节课都讲得十分 ...
- 老师应该如何教少儿编程课
1.一个通俗易懂的课程教材是给孩子学习建立信心的基础 少儿编程是一个强调寓教于乐,发散思维的课程,在编写课程教材时,切记不要长篇大论,尤其是一些编程的理论知识,孩子在一开始是不感冒的,听多了反而厌学, ...
- qchart画完以后删除_冬天的夜晚很难画?老师分步骤教你画,简单易学,收藏起来临摹...
今日绘画主题:冬天的夜晚 冬天是美好的,也是很多画家喜欢创作的题材之一,但是,冬天的夜晚却是很难画,今天分步骤图解教大家画冬天的夜晚,快收藏起来临摹吧. >>>[第一步]:先来画线稿 ...
- 沐风老师3dsMax手把手教系列:椅子建模(款式001)
沐风老师3dsMax椅子建模教程 1.创建一个球体,然后删除大半球,留下球体的少半部分: 2.应用"壳"修改器,设置厚度,勾选"选择内部面"复选框: 3.应用& ...
最新文章
- 数据可视化完美指南-R-Python
- html盒子移动动画代码,HTML5/Canvas 盒子追踪动画
- ps4修改服务器地区,ps4怎么修改服务器地址
- mega x_[MEGA DEAL]通过Hadoop Bundle掌握大数据(91%的折扣)
- linux python 信号,Python模块之信号(signal)
- 推荐系统 | 引用量超过1000的52篇经典论文
- 凡人和神学习和使用软件的七个层次
- 效率低下的原因--开发者说
- [Angular2 Animation] Control Undefined Angular 2 States with void State
- Docker 学习笔记(四)-- Docker 可视化界面
- 调用接口获得地区,再根据地区判断对应编号
- fft 重叠加法_信号分析之:FFT计算中的“重叠”处理 (Overlap Processing)
- 通过CocoCut插件和m3u8下载器下载网页视频并转换成mp4格式
- RGMII2GMII 分析
- mysql身份证号性别_mysql中身份证号判断男女人数
- 前端vue后台管理系统项目优化
- 【NLP】第6章 使用 Transformer 进行机器翻译
- Linux系统安装,教你安装一个属于自己的Linux系统
- Uncle Sam 山姆大叔
- 知乎视频下载(爬虫)
热门文章
- web端功能自动化定位元素(暂不更新)
- 看看30万码农怎么评论:培训出来的程序员真的很渣吗?
- AngularJs angular.equals
- eclipse/MyEclipse 日期格式、注释日期格式、时区问题[转]
- NHibernate从入门到精通系列(5)——持久对象的生命周期(下)
- VC++ 使用CreateProcess创建新进程
- hdu 2089 不要62【数位dp】
- wemall app商城源码Android之支付宝通知处理类
- RPC Over HTTPS 访问Exchange 邮箱
- 汇编分析golang循环