今天给大家介绍一个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的?相关推荐

  1. 读书感受 之 《跟美国幼儿园老师学早教》

    作者:Zoe 转自:https://www.zhenxiangsimple.com/2019/04/29/books-跟美国幼儿园老师学早教/   红字部分其实我觉得是教育父母的,大家可以看一下,其实 ...

  2. 为什么大学普遍都教C/C++、Java,而不教Golang、Python、Rust?

    教C/C++.JAVA是肯定没问题的,不教Go.Python.Rust绝对没有好处,不过我认为学生可以自学,这是长期以来形成的历史原因.缺少好的教材,老一辈的教授大部分也都没接触过这些新的语言,他们又 ...

  3. c语言学生对老师的评教系统,学生对老师的评价

    学生对老师的评价 1.老师授课的方式十分适合我们,他根据本课程知识结构的特点,重点突出,层次分明.理论和实际相结合,透过例题使知识更条理化.但授课速度有点快,来不及记录. 2.老师在生活工作中给人的感 ...

  4. 数学老师从没这么教过,乘法竖式中进位可以是多位(附Python实现与测试源码)...

    大概十五年前,曾经写过一个C语言版本的类似代码.核心思想是:在乘法竖式计算过程中,每次的进位实际上是可以超过一位的,虽然老师从来没有这么教过. 这样的操作在Python中是没有必要的,因为Python ...

  5. 国外大学老师用Prof.还是Dr.称呼?

    套磁的时候,小虎看了500+个Faculties的简介,发现他们的titles都遵循一般性规律,这里我分享一下,顺便解答各位对于如何称呼国外老师的疑惑.其实这跟教师所在的职位有主要关系.一般有两种Ti ...

  6. c语言编程学生对老师的评教系统,记王宇颖教授和她的“C语言”教学团队

    哈工大报讯(刘培香/文) 在计算机学院举行的"我身边的马祖光"征文中,有好几位同学不约而同地写到了同一位老师,字里行间流露的是深深的尊敬和爱戴――"她的每一节课都讲得十分 ...

  7. 老师应该如何教少儿编程课

    1.一个通俗易懂的课程教材是给孩子学习建立信心的基础 少儿编程是一个强调寓教于乐,发散思维的课程,在编写课程教材时,切记不要长篇大论,尤其是一些编程的理论知识,孩子在一开始是不感冒的,听多了反而厌学, ...

  8. qchart画完以后删除_冬天的夜晚很难画?老师分步骤教你画,简单易学,收藏起来临摹...

    今日绘画主题:冬天的夜晚 冬天是美好的,也是很多画家喜欢创作的题材之一,但是,冬天的夜晚却是很难画,今天分步骤图解教大家画冬天的夜晚,快收藏起来临摹吧. >>>[第一步]:先来画线稿 ...

  9. 沐风老师3dsMax手把手教系列:椅子建模(款式001)

    沐风老师3dsMax椅子建模教程 1.创建一个球体,然后删除大半球,留下球体的少半部分: 2.应用"壳"修改器,设置厚度,勾选"选择内部面"复选框: 3.应用& ...

最新文章

  1. 数据可视化完美指南-R-Python
  2. html盒子移动动画代码,HTML5/Canvas 盒子追踪动画
  3. ps4修改服务器地区,ps4怎么修改服务器地址
  4. mega x_[MEGA DEAL]通过Hadoop Bundle掌握大数据(91%的折扣)
  5. linux python 信号,Python模块之信号(signal)
  6. 推荐系统 | 引用量超过1000的52篇经典论文
  7. 凡人和神学习和使用软件的七个层次
  8. 效率低下的原因--开发者说
  9. [Angular2 Animation] Control Undefined Angular 2 States with void State
  10. Docker 学习笔记(四)-- Docker 可视化界面
  11. 调用接口获得地区,再根据地区判断对应编号
  12. fft 重叠加法_信号分析之:FFT计算中的“重叠”处理 (Overlap Processing)
  13. 通过CocoCut插件和m3u8下载器下载网页视频并转换成mp4格式
  14. RGMII2GMII 分析
  15. mysql身份证号性别_mysql中身份证号判断男女人数
  16. 前端vue后台管理系统项目优化
  17. 【NLP】第6章 使用 Transformer 进行机器翻译
  18. Linux系统安装,教你安装一个属于自己的Linux系统
  19. Uncle Sam 山姆大叔
  20. 知乎视频下载(爬虫)

热门文章

  1. web端功能自动化定位元素(暂不更新)
  2. 看看30万码农怎么评论:培训出来的程序员真的很渣吗?
  3. AngularJs angular.equals
  4. eclipse/MyEclipse 日期格式、注释日期格式、时区问题[转]
  5. NHibernate从入门到精通系列(5)——持久对象的生命周期(下)
  6. VC++ 使用CreateProcess创建新进程
  7. hdu 2089 不要62【数位dp】
  8. wemall app商城源码Android之支付宝通知处理类
  9. RPC Over HTTPS 访问Exchange 邮箱
  10. 汇编分析golang循环