未来 5 年将是 Go 语言的天下 | 极客大学
不吹不捧,也不想挑起语言争论地说,如果你是一名后端工程师,那我建议你一定要深入学习下 Go 语言。因为,在未来几年内,Go 语言的市场份额会越来越大,它的前途无可限量。
为什么能有这样的判断呢?我就谈谈我的两个观察。
第一,现在有个特别流行的词就是云原生,如果你在小公司,可能听说得比较少。但大公司内部,这东西基本已经成为口头禅了。而云原生体系的那些开源项目,大部分都是用 Go 语言编写的,比如我们熟知的 Docker、Kubernetes、Istio。
别的不说,就说 Kubernetes,现在他已经成为了大型分布式系统的标配。如果你说你想掌握 Kubernetes 的原理,那连 Go 语言都看不懂,这个有点说不过吧?
第二,Go 语言的优势明显。它出身高贵,背后是 Google 这样的顶级公司。另外,相比于 Java 这样的老牌语言,它不仅简单,上手快,而且在并行和异步编程几乎无痛点。
像 C、C++、Java、Python 和 JavaScript 这些语言的并发和异步的编程方式控制起来就比较复杂了,并且容易出错,但 Go 语言却用非常优雅和流畅的方式解决了这个问题(Goroutine 和 Channel)。
知名技术专家左耳朵耗子曾经说过,他认为 Go 语言在未来会吞食一些用 C、C++、Java 写的中间层的项目,比如消息缓存中间件、服务发现、服务代理、控制系统、Agent、日志收集等。
这话一点都不假,你随便打开招聘网站就能看到,像阿里云、字节跳动、腾讯、百度、蚂蚁金服这样的一线互联网公司,他们都在大规模招聘有 Go 语言经验的工程师,并且薪资也不低,因为他们做的事情都很底层,比如可能是公司的基础平台、基础设施。
如果你是一名 PHP,或者 .NET 工程师,那我建议你从今天开始,果断利用业务时间学习下 Go 语言,跟上时代的潮流走。如果你是一名 Java 工程师,但在 Java 的能力提升方面遇到了瓶颈,那你可以考虑下 Go 语言。
因为 Go 的市场刚刚起来,人才还没有那么多,竞争也没有 Java 那样激烈。前段时间,我就和一个 CTO 聊,他说现在市场上 Go 的人特别难找,如果候选人能够有 Go 语言的项目经验,或者熟悉 Go 语言,那面试肯定是大大加分项。这其实也是错位竞争。
在这里,我也不害臊地给你推荐我和极客时间合作的 Go 进阶训练营,这个课程的设计对标字节跳动 2-2 级职位模型,目标是让你在 3 个月时间内,快速掌握、吃透 Go 语言,并胜任一线互联网公司的高级或者资深 Golang 工程师等职位。
你好,我是毛剑,目前在一家大型互联网视频内容公司担任资深总监和技术专家的职位。
在这里,我参与了大型巨石架构到微服务的完整转型,我们使用 Go 语言作为主要的开发语言,构建了微服务的框架,同时,围绕分布式服务的可用性和数据一致性进行了大量的设计,并结合开源生态补齐了 Go 在微服务可视化上的功能。在演进架构的同时,我们还使用 Go 语言开发了配套的中间件,比如:消息队列、缓存代理、对象存储等等。
在 DevOps 领域,我们也使用 Go 语言做了大量的实践,结合 GitLab、Bazel、Kubernetes Prow 实现了完整的 CI/CD Pipeline,包括分布式增量编译、可靠的持续构建和发布系统,以及在线运行时平台(PaaS)等系统。
这十多年来,我主要专注于服务端研发以及高性能、高可用的系统架构设计这些领域,对 Go 语言算得上是相当熟悉,我开源的行业内比较有影响力的 Go 项目有:goim 分布式 IM 长连接广播服务、bfs 分布式小文件存储以及 Kratos Go 微服务框架。
我是忠实的 Go 语言粉丝,也是一名 Go 语言老手,我曾在 GitHub 上开源了几个基于 Go 语言的项目,如果你想了解我的技术实力,可以点进去看看,毕竟,Talk is cheap,Show you the code。我的 GitHub 主页:https://github.com/Terry-Mao
作为 Go 语言的布道师,我也经常参加和 Go 有关的社区分享和演讲,包括 QCon、ArchSummit、Gopher China,GITC 等等这些业界知名的会议。
作为公司的技术专家,我还负责公司的 Go 工程师招聘,所以我非常了解一线互联网公司对于 Go 工程师的能力要求,以及 Go 工程师在成长过程中,可能会遇到的问题。
整个训练营的内容,可以分为三大模块,先是 Go 语言编程实践、再到工程实践、最后是架构实践。
每个模块下面又可以分为 4 到 5 个子模块,当然,每个子模块又会细分出篇幅不等的更小的模块,总体算下来,差不多会有四五十个细分模块。
我们先说第一个大模块,Go 语言编程实践,我会先从语言本身来讲 Runtime 的原理,包括 Goroutine、Channel 和 GC 等等,只有了解了这几个最关键的 Go 语言特性,才能让我们更好地开展,如:并发编程、网络编程以及异常处理等这些子模块。
讲完 Go 语言本身的重点和难点之后,我们会开始讲 Go 语言的工程化实践,工程化意味着我们需要大规模落地到业务开发上,好的项目规范也更利于长期的迭代。这里面呢就包括如何设计项目结构,如何进行 API 设计和包设计,还有配置文件和单元测试等等工程化环节需要解决的重点问题。
最后一个大模块,就是架构设计了,我们会讲到当前最流行的分布式架构和微服务架构,当然,也少不了相关的中间件的讲解。
我们从 Go 语言实践到工程实践,最后到一个完整的大型分布式系统的实践,由浅到深,从语言到工程,从工程到架构,每个子模块我都会结合我这近 10 年的项目经验和积累来进行案例讲解,而不仅仅是单纯讲述理论知识。因为从实践中出理论,从理论践行实践,一直是我学习成长的模式。
滑动查看课程大纲👆
Go 进阶训练营将全程直播授课的形式进行教学,每周四晚上 8:00-10:00、周六晚上 7:00-10:00 进行直播,共 13 周。期间有任何问题可以随时与讲师互动,同时我们会通过助教答疑、随堂自测、阶段考试、不定期分享等帮你巩固学习。
考虑到大家在学习过程中经常遇到的障碍,比如“遇到问题无法及时解决、拖延症、缺乏实战”等等,我在训练营中也专门设计了相关的学习服务:
欢迎你加入这个关注长期成长的社区,让终身学习成为成长过程中的一种好习惯。
在「Go 进阶训练营」,学员、老师、助教、平台组成了一个有机整体,我不希望加入这个有机体的个人,学到一半走散了,还没有成功就走散了,所以我和极客时间会努力建设一个让学员能够长期发展和终身学习的“社区”。在这个社区里,大家可以长期互动,资源和信息充分交流共享,最终实现共同成功。
Go 进阶训练营课程设计对标字节跳动 2-2 级胜任力模型,教学贴近大厂真实场景。课程中的实践驱动,不仅可以系统提升你的代码硬实力,同时也会培养你进入一线互联网大厂必备的思维能力。
我们的课程培养目标是大厂的资深 Go 工程师、高级 Go 开发工程师、Go 技术专家。按照老师系统性的规划,用心学习,可以帮你摆脱低效和痛苦的自学,事半功倍,学完后可以达到一线互联网大厂中高级 Go 开发工程师的水平。
当然有,极客时间团队会给每位毕业之后有跳槽需求的同学,一年内提供两次互联网大厂、600+ 鲲鹏会企业的内推服务。这项服务不局限北上广深,任何地区都可以。帮助打通你到一线大厂的最后一公里,拿到心仪的工作机会,到更好的公司拿更高的薪水。
「Go 进阶训练营」第 0 期,采用全程直播授课的形式,将用 13 周时间,带你掌握云计算时代首选编程语言,成为未来 3 年抢手的后端开发人才。
扫描下方二维码,进入报名入口,现在参与双 11 秒杀享受¥200 优惠,加赠¥100 京东卡 + ¥100 极客时间充值卡,报名立减。
扫码添加运营小姐姐悠悠,可以了解更多课程详情。
同时我们还准备了一些见面礼,大家可以免费领取,里面有:
毛剑老师精选 Go 预习资料
Golang 高清技术图谱
Linux 基础知识体系图
100+ 大厂软件开发案例
可以帮助你建立完整的知识体系,规划具体的学习路线,同时夯实你的 Linux 基础;还可获得阿里、美团等一线互联网公司独家案例拆解。
免费领取 Go 技术图谱等资料👆
一起成为未来 5 年抢手的后端开发人才👇