本文首发于公众号「5分钟学Go」,一个让你每次花 5 分钟就能掌握一个技能点的公众号。目前在博主连更 5 分钟学Go系列,大家可以关注下,第一时间掌握Go技能。如果想要加群交流,可以在公众号后台回复「加群」,回复「gogogo」,还有博主精心整理的一份Go语言从入门、进阶到高阶的学习宝典。欢迎你的关注。

最近几年,随着云计算、区块链等技术的发展,有一门语言逐渐成为大家热衷讨论的对象,成为了继 Python 之后的另一块香饽饽,那就是 Go 语言。

其实如果要追溯历史的话,Go 语言诞生于 Google,从 2007 年便开始设计,并于 2009 年 11 月 10 日正式发布第一版,此后便开始在 Google 内部使用。

正如 Python 借助 AI 的东风大火一样,Go 语言大范围的使用和普及也是借助了云计算、区块链等技术的东风,特别是云计算,以 Google 开源的 Kubernetes 为代表,Go 逐渐成为了云计算领域的第一首选语言,目前还没有竞争对手。

国内最早全面使用 Go 语言的公司要属七牛云了,其创始人许式伟说过一句话:“Go 语言是互联网时代的 C 语言”。可想它如今的地位是不言而喻的。

下图是 2020 StackOverflow 的调查,左边是最流行的语言排行榜,右边是最热门的语言。流行看的是历史地位和应用程度,而热门更多看的是近来的关注程度。

最流行的语言 最热门的语言

可以看到,Go 语言应用范围具有一定的局限性,所以流行程度并不高,但关注程度是相对较高的,特别是对比前几年的数据你会发现,它是一直增长的。

接下来再来看下大家比较关心的一个问题:哪种语言的薪资较高?毕竟程序员这个行业,回归到现实,都是“面对薪资编程”。如下图所示,左边是 2019 年的数据,右边是 2020 年的数据。

2019编程语言薪水排名 2020编程语言薪水排名

可以看到,Go 语言的薪水排名都稳居前三甲。所以,综合来看,Go 语言是今后最值得学的一门语言。

那 Go 语言到底有哪些优势呢?为何能成为云计算领域的第一大语言?下面简单说说,更多内容在后面的文章中我们会逐一展开。

首先它是一种静态、强一致类型、编译型的系统级编程语言。这几个关键字可能不那么好理解,但是看完下面这幅图相信你能理解个大概:

从类型来看,Go 语言和 Java 语言同处于第一象限,但它编译型、系统级的特性又让它具备 C/C++ 语言的高性能的特性。

其次一个比较重要的优势是 Go 天然支持高并发,小白也能轻松写出高并发代码。

最后值得一提的是 Go 语言的语法简单,学习曲线平坦,开发效率可以和 Python 媲美。

此外,还有很多的优秀特性,后面会带大家逐一领略(大家可以关注下公众号,每天第一时间收到推送,花 5 分钟就可以掌握一个 Go 技能点)。

看到这里大家一定很好奇,有哪些开源项目是使用 Go 语言开发的?

Go 生态系统有众多明星开源软件:Docker、Kubernetes、Rancher、istio、Drone、Lantern、Hyperledger、Caddy、Prometheus、InfluxDB、etcd、CockroachDB、TiDB、Gogs ...

(这里有一份开源的关于 Go 优秀的软件、库和框架:Awesome Go

极客时间的郝林在他的专栏里也整理过一张使用 Go 语言开发的开源项目大图,非常全。

OK,今天就到这里,本文是 5 分钟学 Go 语言的第一篇,先让大家对 Go 有个大概的印象,后面会展开更多的内容,没关注的朋友可以关注下,一起抱团学习。就像一句话说的:

学习 Go 语言,最好的时间是 10 年前,其次是现在。

5分钟学Go 基础01:初识 Go 的第一印象是薪水可观的更多相关文章

  1. 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学

    076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...

  2. 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字

    081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...

  3. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  4. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  5. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  6. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  7. 30分钟学玩转RabbitMQ

    最近在学习RabbitMQ,在网上找了不少资料发现都特高端.动辄集群部署,分布式架构什么的,对于一个初学者实在不够友好.心想求人不如求自己,为什么不自己整理一套资料呢?于是<30分钟学玩转Rab ...

  8. LibreOJ 2003. 「SDOI2017」新生舞会 基础01分数规划 最大权匹配

    #2003. 「SDOI2017」新生舞会 内存限制:256 MiB时间限制:1500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: 匿名 提交提交记录统计讨论测试数据   题目描述 ...

  9. 316python 基础之计算机基础、Python简介、变量、注释、基础数据类型初识、if、while、语句

    一.计算机基础. cpu:相当于人的大脑,运算与控制中心. 速度 飞机 内存:4G,8G,16G....暂时存储,供给cpu数据. 速度 高铁.成本高,断电即消失. 硬盘:相当于你电脑的数据库,存储着 ...

随机推荐

  1. 大数据系列2:Hdfs的读写操作

    在前文大数据系列1:一文初识Hdfs中,我们对Hdfs有了简单的认识. 在本文中,我们将会简单的介绍一下Hdfs文件的读写流程,为后续追踪读写流程的源码做准备. Hdfs 架构 首先来个Hdfs的架构 ...

  2. 使用git上传代码到github远程仓库

    一.新建代码库注册好github登录后,首先先在网页上新建代码库. 点击右上角"+"→New repository 进入如下页面:按照要求填写完成后,点击按钮创建代码库创建成功. ...

  3. null调整为not null default xxx,不得不注意的坑

    最近碰到一个case,值得分享一下. 现象 一个DDL,将列的属性从null调整为not null default xxx, alter table slowtech.t1 modify name v ...

  4. 小麦苗数据库巡检脚本,支持Oracle、MySQL、SQL Server和PG等数据库

    目录 一.巡检脚本简介 二.巡检脚本特点 三.巡检结果展示 1.Oracle数据库 2.MySQL数据库 3.SQL Server数据库 4.PG数据库 5.OS信息 四.脚本运行方式 1.Oracl ...

  5. loj10003加工生产调度

    题目描述 某工厂收到了 n个产品的订单,这  个产品分别在 A.B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工. 某个产品 i 在 A,B 两车间加工的时间分别为 A_i,B_i ...

  6. MongoTemplate聚合(一)$lookup

    mongodb   最近入职了新的公司,新公司统一使用的mongodb,es等非关系型数据库.以前对es有一些了解,其实就是灵活的文档类型结构,不受限于关系型数据库的那种字段唯一确定的"死板 ...

  7. Dubbo官网实战使用技巧

    原文链接:Dubbo官网实战使用技巧 1.启动时检查: 我们检查依赖的服务是否启动,可利用下面三个属性,优先级从左到右逐渐降低. 如果服务不是强依赖,或者说服务之间可能存在死循环依赖,我们应该将 ch ...

  8. Redis 实战 —— 14. Redis 的 Lua 脚本编程

    简介 Redis 从 2.6 版本开始引入使用 Lua 编程语言进行的服务器端脚本编程功能,这个功能可以让用户直接在 Redis 内部执行各种操作,从而达到简化代码并提高性能的作用. P248 在不编 ...

  9. Linux 查找文件的正确方式

    Linux 系统中查找文件的命令有 which.whereis.locate 和 find 等,本文对这四条命令进行简单的介绍.列举了一些简单的使用方式. which 在 PATH 变量中定义的全部路 ...

  10. Pytest(12)pytest缓存

    前言 pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例. 方便我们在运行用例的时候加上--lf 和 --ff 参数,快速运行上一 ...