From ed9b69d3fae104c89c2f22691ae226e52e70a7db Mon Sep 17 00:00:00 2001 From: Xuezhe Jin Date: Wed, 24 Nov 2021 14:07:36 +0800 Subject: [PATCH] programmer roadmap --- translation/chinese/01-安装与介绍/学习路线.md | 145 ++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 translation/chinese/01-安装与介绍/学习路线.md diff --git a/translation/chinese/01-安装与介绍/学习路线.md b/translation/chinese/01-安装与介绍/学习路线.md new file mode 100644 index 0000000..cc3081d --- /dev/null +++ b/translation/chinese/01-安装与介绍/学习路线.md @@ -0,0 +1,145 @@ +# 学习路线 + +大家好! + +如果您是有经验的开发者, 您只需要跟着课程学习50个小节即可,完整的课程是180节。 + +本课程从Go基础内容开始,逐渐递进。我们希望让尽量多的Go学习者可以轻松入门。 +如果您觉得某些小节的内容您已掌握,可以跳过这部分直接做课后题。当然,您也可以 +回过头来复习本小节。 + + +## 课程 + +* **写下第一个Go程序** + * 请看所有的课程. + * Go文档是什么? + * "写一个库"之前的准备课程 + +* **掌握Go的类型系统** + * 每个Go类型都有一个零值 + * blank标识符是什么? + * 让我们定义一组变量! + * 类型引用是什么? + * 怎样声明短变量? + * 为何不能在包中声明短变量? + * 重复声明是什么? + * 什么情况可以适合使用短变量声明? + * 学习从命令行获取输入和切片 + * 学习 os.Args 基本用法 + * 使用 os.Args 实现欢迎新人 + * 使用Printf 进行格式化输出的准备工作 + * 将摄氏度转换为华氏度 + * 将换英尺转换为米 + * 原始字符串是什么? + * 怎样获得字符串长度? + * 什么是预定义的类型之后的课程. + * 理解为定义类型的常量的后续课程, 章节的结束 + * 学习常量的规则 + * 复习: 常量 + * 未定义类型的常量是怎样在钩子下运行的? + * 默认类型是什么? + * 例子: time.Duration + * iota 是什么? + * 推荐的命名法 + +* **控制Go的错误处理流程** + * 观看所有 "认证通过: 创建密码保护程序"之前的课程 + * 观看所有 "理解Go的错误处理"之前的课程 + * case 条件语句中使用多个值 + * 回滚语句是怎样工作的? + * 解决方案: 一天的部分 + * 复习: Switch 语句 + * 怎样继续一个循环? (+奖励: 调试) + * 创建一个乘法表 + * 怎样循环一个切片 + * 范围: 轻巧地统计方法! + +* **项目: 针对初学者** + * 请观看完整课程. + +* **余下章节** + * 到目前为止,Go的基础部分已经结束。您可以观看余下的所有课程,余下课程覆盖了Go的高级特性. + +## That's all! Enjoy! 🤩 + +--- + +# 奖励: 我们为什么要学Go? + +**总结:** Go犹如Python和Javascript一样简单,C/C++一样快.使用Go作为工作语言会比C/C++更有趣。我们既可以使用Go的low-level API也可以使用high-level API。 + +## Go能用在哪些场景? + +Go在互联网公司经常被应用,例如: Google, Facebook, Twitter, Uber, Apple, Dropbox, Soundcloud, Medium, Mozilla Firefox, Github, Docker, Kubernetes, 和 Heroku. + +**Go 非常适合:** 跨平台命令行工具, 分布式网络系统, 微服务 和 Serverless, 网站APIs, 数据库引擎, 大数据处理流水线, 嵌入式开发, 等等. + +**Go 不是特别适合 (但是可以使用):** 桌面应用, 操作系统, 内核驱动, 游戏开发, etc. + +## Go的设计者是谁? + +Go的设计者在工业界非常有影响力, 他们是: + +* Unix: Ken Thompson +* UTF-8, Plan 9: Rob Pike +* Hotspot JVM (Java Virtual Machine): Robert Griesemer + +## Go的市场薪资待遇 + +* [Go 薪资](https://www.payscale.com/research/US/Skill=Go_(Golang)_Programming_Language/Salary) + +## [Go的前8年](https://blog.golang.org/8years): + +> 如今, **每个云厂商的关键基础组件都可以看到Go语言的影子** 包括 Google Cloud, AWS, Microsoft Azure, Heroku, 等等. Go 是云厂商的重要部分.例如,Alibaba, Cloudflare, 和 Dropbox 都在使用Go. Go也是公共基础设施的重要组成部分。例如, Kubernetes, Cloud Foundry, Openshift, NATS, Docker, Istio, Etcd, Consul, Juju, 等都在使用Go. Companies are increasingly choosing Go,云基础设施方案选型中越来越多的公司开始采用Go. + +## 我们可以用Go做哪些事情? + +* [网络驱动程序](https://www.net.in.tum.de/fileadmin/bibtex/publications/theses/2018-ixy-go.pdf) (_与C驱动相比只有10%的性能差距_) +* [Google gVisor](https://cloud.google.com/blog/products/gcp/open-sourcing-gvisor-a-sandboxed-container-runtime) (_Go实现用户空间内核_) +* [多平台任天堂模拟器](https://humpheh.github.io/goboy/) +* [Docker: 容器](https://github.com/moby/moby) +* [Kubernetes: 容器编排管理](https://github.com/kubernetes/kubernetes) +* 虚拟机镜像处理工具 +* 聊天服务器 +* RUM beacon收集器 +* 时间序列数据库引擎, 客户端, 命令行工具, 等等. +* Map-reduce依赖包 +* 支持动态内容重写,图片放大缩放,缓存,Lua事件处理器功能的反向代理集群 +* 基于地理位置的反向代理CDN节点 +* 健康管理应用(时间处理&点对点报告) +* Go DNS 服务器 +* 接入MySQL的API后台服务 +* Linux 进程处理工具 +* 作为反向代理隐藏后台服务器. +* HTML -> PDF 转换器. +* 短链接服务 类似 tinyurl.com 和 goo.gl +* SMS 消息服务. +* 信用卡支付网关 +* JSON Web Token工具包 +* 动态图像处理服务 +* 第三方内容渲染工作流(十分庞大的项目) +* lxc 容器部署 +* 自动化测试框架 + +参考: [This Reddit post](https://www.reddit.com/r/golang/comments/5nac2b/what_have_you_used_go_for_in_your_professional/). + +## 更多Go相关请参考: + +* [关于 Go: 概览](https://blog.learngoprogramming.com/about-go-language-an-overview-f0bee143597c) +* [为什么要学习Go?](https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65) +* [云基础设施的新兴语言](https://redmonk.com/dberkholz/2014/03/18/go-the-emerging-language-of-cloud-infrastructure/) +* [使用Go的公司](https://github.com/golang/go/wiki/GoUsers) +* [Go的8年](https://blog.golang.org/8years) +* [Twitter: 使用Go一天处理50 亿会话](https://blog.twitter.com/engineering/en_us/a/2015/handling-five-billion-sessions-a-day-in-real-time.html) +* [C++工程师眼里的Go](https://www.murrayc.com/permalink/2017/06/26/a-c-developer-looks-at-go-the-programming-language-part-1-simple-features/) + +
+ +> 更多内容: [https://blog.learngoprogramming.com](https://blog.learngoprogramming.com) +> +> Copyright © 2019 Inanc Gumus +> +> 学习Go编程课程 +> +> [点击查看认证许可.](https://creativecommons.org/licenses/by-nc-sa/4.0/)