Go语言的一些特点:
- 年轻的语言,没有历史包袱,因此非常简洁。
- 类C语言,但同时可以实现面向对象的特点,兼顾开发效率和执行效率。
- 编译语言,执行效率高,比java略高,低于C和C++,是 js 的5-10倍。
- 自动垃圾回收,开发效率高。
- 标准库强大,基础开发上手快。(当然流行语言基本都有这个特点)
- 运行时依赖少,跨平台非常简单。
- 高效的协程机制,类似于异步编程,支持高并发。
Go相关应用场景
- Go语言作为web项目后端语言,或者叫做“网络编程”,可用于替代php、python、java、nodejs等项目,主要优势为性能优势,因此,对于一些需要高性能和高并发场景时就非常有用。 例如,日志服务、高并发api等等。这也是当前市场上需要的最多的应用场景。从框架的角度看,可以使用gin、beego等web服务框架。
- Go语言开发区块链项目。 在区块链持续发展的当下,这类工作岗位也在人才市场上占有一席之地,例如各种币的开发、各种跟币相关的智能合约类项目、各种跟区块链相关的银行等金融机构项目。
- Go语言开发云平台、容器技术。Go语言作为Docker容器和各大云平台开发采用的最主要技术,因此,各类以容器技术为依托的项目以及和云平台相关的项目,均需要大量的Go技术人员。
- Go语言在云原生的应用。所谓云原生,大致可以理解为基于云平台,采用容器化技术,将研发和运维融为一体(devops)的微服务项目的整体架构。Go语言在网络编程领域有很强的优势,再加上具有非常高的易维护性,因此,在云原生框架下,Go语言的项目会很有优势。
Go语言的市场情况
- Go语言时一门比较新的语言,生态相对于老牌的 Java 和 C++ 来说,还非常薄弱,因此,在市场上的应用是很受限的,当前市场上后端开发中,最最最主要的还是 Java,在另一些后端开发以及系统开发中,主要的还是 C++,一些有些年限的项目,后端还有大量的 php ,因此,就就业岗位数量而言,Go是非常没有优势的。当前在市场上对于Go技术人员的需求,基本还是部分web后端开发,一部分云平台,一部分区块链项目。基本要的都是对后端有一些经验的人,对研发新人的不大友好。
- 由于市场上Go开发人员数量相对 Java 、php、C++ 来说,还是很少的,因此,绝大多数中小企业,从快速实现和人才储备两点考虑都不会选择Go作为主要开发语言。从招聘平台了解到的信息也是如此,除了云开发和区块链这种特定领域外,中小企业采用Go作为主要开发语言的非常少,在大企业中,Go的应用也比较受限,例如运维开发岗(云原生开发,devops),例如对性能要求较高的各类算法岗(推荐算法、数据分析处理等),例如对性能要求较高的一些基础设施搭建岗(例如日志系统)。
Go对我而言
(⊙o⊙)…,越分析越觉得现阶段学Go有点坑自己,一个非科班的从前端转后端的人员,上来就拿着Go,市场岗位匹配度略低啊啊啊啊。
算了,没关系,把重心先放到devops上吧,掌握微服务开发、docker服务编排的基础+稍中级知识,然后重点提升高性能和高并发场景下的api服务开发能力。加上自己稍微掌握一些的python和掌握稍微好一些的js,可以从“全栈开发工程师”这个角度去寻找对应的工作。
毕竟,“全栈”才是我最后的追求,若能在这个阶段直接去冲击这个岗位,也是值得一试的。