2022 年这样学习 Go
一门语言的入门方式,每个人可能不一样,但基础的知识都是必须掌握的。这里整理了一个 Go 语言 6 步入门法,希望对你有帮助。
Go 是一门开源语言,目前被许多大公司使用,例如 Uber,Dropbox,Netflix,IBM 和 Twitter,国内的腾讯、字节跳动、阿里等大厂。
对于所有级别的求职者来说,Go 是一个不错的选择。但是如何开始?你需要了解什么?今天,我们将讨论学习 Go 和建立可靠的产品组合的最佳途径。
本教程包括:
Go 开发人员 步骤 1:了解 Go 的基础知识 步骤 2:Master Go 库和其他工具 第 3 步:学习使用 Go 进行测试 步骤 4:了解 Go 模式 步骤 5:开始建立您的投资组合 步骤 6:练习 Go 编码面试题 接下来要学什么
Go 开发人员
Go 是 Google 在 2009 年开发的一种静态类型的,编译型编程语言。该语言结合了 C++ 的效率和 Python 的可读性。
Go 开发人员使用 Go 语言来构建网站和软件产品。Go 开发人员的一般职责包括使用 Go 并使用其全套工具和框架。大多数 Go 开发人员也进行测试和调试。
Go 开发人员的大多数职位要求也需要多种其他技能,最常见的是:
脚本编写经验(Shell / PERL) 使用设计模式进行应用程序设计的经验 JAVASCRIPT,SOAP,REST Web 服务,或微服务 使用 Git 的经验 DevOps 实践知识
Go 的入门门槛相对较低。这是一种易于学习的语言,并附带详细的技术文档。对于具有 C 语言经验的人来说,转到 Go 相对容易。因此,如果学习 Go 很容易,那么你实际上如何获得 Go 语言开发的工作?让我们分解一下。
步骤 1:了解 Go 的基础知识
要成为 Go 开发人员,你需要对语言和语法有深入的了解。你可以先安装语言并自学,也可以学习在线课程。学习 Go 的良好途径如下所示:
关键字,标识符 运算符,类型,函数和常量 指针,结构,方法 map,数组,切片 CLI interface 错误处理 Goroutine,channel,缓冲 channel defer、panic Go 设计模式
你的学习路径将在很大程度上取决于你的背景。如果你是编程的新手,那么 Go 是一个不错的选择。它易于学习并且借鉴其他流行的语言,例如 Python 和 C++。对于新手,最好从关键字和标识符之类的基础知识开始。然后,你可以使用数据类型,运算符和字符串来夯实基础。
如果你已经有一定的编程经验,则建议从 Go 的独特特性开始,从头开始学习 Go。Go 建立在不同的模型上,并且对面向对象的编程的处理方式也有所不同。
Go 的目标是使用最少的关键字来减少类型输入和复杂性,因此相比 Java 等其他语言 Go 需要更少的代码。可以在没有符号表的情况下解析关键字,因为其语法为 LALR(1)。Go 的行为就像是一种混合的命令式语言,但在构建时考虑了并发性。以下是 Go 的一些独特功能:
没有函数和操作符重载 没有隐式转换 没有 class 或类型的继承 静态/强类型 没有动态代码加载或动态库 没有 assertions 或不可变变量
package main
import "fmt"
func main() {
fmt.Printf("Hello World")
}
步骤 2:标准库和其他工具
一旦掌握了该语言的基础知识,就应该使用它的库和工具。大多数公司都希望你具有以下经验:
Go 依赖管理工具 语义版本控制 脚本和存储库 Go 标准库 SQL 基础 Git 基本认证 HTTP/HTTPS Web 框架和路由器 关系数据库(MySQL/PostgreSQL)
如果你已经有一些编程经验,那么你可能已经在以上工具中拥有了其中一些经验。如果没有,不要惊慌!在学习如何使用 Go 和相关技术进行构建时,你将学习其中的大多数技能。
要学习的最重要的内容是框架,Go 库和数据库。其他技能可以在工作中学习。
在框架方面,建议从 Web 框架 Echo,Beego,Gin,Fiber、Revel 和 Chi 等开始。
其他库,最受欢迎的有 Go Kit,GORM,Gen 和 CLI。使用优质库和包将使 Go 的使用变得更加容易。每个都有自己独特的功能,因此最好选择一个与你的目标相符的功能。
在数据库方面,拥有一些有关关系数据库(例如PostgreSQL或MySQL)的经验很重要。除此之外,日志框架的知识可能会很有用,比如 Zap。
步骤 3:学习使用 Go 进行测试
测试是大多数公司都会寻找的一项重要技能。软件测试是我们检查实际软件产品是否符合要求并在分发后实际正常运行的方式。
作为 Go 开发人员,你将为现实世界构建产品,因此你需要测试产品的可用性和可靠性。这包括:
单元测试 集成测试 行为测试 端到端测试
对于新手来说,单元测试无疑是最重要的。Go 的标准库中有一个内置包 testing
。但是,Go 偏向于极简主义,因此你可能需要其他工具来进行更强大的测试,例如流行的框架 Ginkgo 和 GoCheck。Ginkgo 还可以用于行为测试和集成测试。
步骤 4:了解 Go 模式
大多数公司希望看到你是了解 Go 设计模式的。在软件设计中针对一些常见问题,可以用设计模式来解决,它是可重复、通用的解决方案。不同的设计模式有助于划分业务逻辑或定义结构。
结构性 创建性 行为性 并发 稳定
最重要的是创建性的(例如构建器,工厂,单例),行为性的(例如迭代器,观察者,命令)和结构性的(例如适配器,桥接器,装饰器)。
如果你已经是程序员,那么你可能熟悉设计模式,并可以在 Go 上下文中开始学习它们。如果你不熟悉编程,最好的学习方法是开始使用它们进行编码。借用一些示例实现并围绕它们进行构建。
步骤 5:开始建立你的技能组合
一旦你完成了这些步骤,就可以开始为你的技能组合构建东西了。这样公司就会看到你具有使用 Golang 的实际经验。此外,事实证明,掌握一种语言的最佳方法是用它来构建功能强大的产品,因此,构建的越多,你就会学到越多。
建立技能组合包括:
在 Go 上完成在线课程 为开源 Go 项目做贡献 从头开始构建 Go 项目 在现有项目中实施 Go 使用 Go 编码经典算法问题 完成相关技术(如 SQL)的课程
你实际上可以构建任何想将自己的技能付诸实践的东西,例如列出满足个人需求,演示网站,难题,游戏和编码挑战的清单。
专注于 GitHub 上的开源贡献。这表明你可以构建真实的项目,并且知道如何使用流行的版本控制系统。
步骤 6:练习 Go 编码面试题
一旦有了上面的储备,就可以开始练习 Go 面试问题。这将帮助你准备面试,并更多地了解你刚刚学到的语言。编码面试问题并不是一成不变的,因为它们往往是抽象的,但它们确实可以改善你的代码并帮助你在压力下工作。
当 Go 开发人员面试你时,你将能顺心应手的回答,因此尽早进行练习很有必要!它还将帮助你发现你的知识差距。
一些常见的问题包括:
什么是 goroutine?你如何停止它? 如何在运行时检查变量类型? 如何在不打印的情况下格式化字符串? 如何在 Go 中连接字符串? 如何在 Go 中初始化结构? 。。。
接下来要学什么
恭喜成功!学完以上内容,你应该已经是一位 Go 开发人员了。但还有很多事情要做,比如深入 Go 实现等,学无止境!
原文链接:https://dev.to/educative/how-to-become-a-golang-developer-6-step-career-guide-476n
我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。
坚持输出技术(包括 Go、Rust 等技术)、职场心得和创业感悟!欢迎关注「polarisxu」一起成长!也欢迎加我微信好友交流:gopherstudio