随着云原生时代的到来,拥有高并发性、语法易学等特点的 Golang 地位逐渐凸显,在云原生编程中占据了主导地位。在近期出炉的 TIOBE 10 月编程语言排行榜中,Golang 从前一个月的 16 位一跃来到了 12 位,并且被认为是即将冲进 Top 10 的有力候选;另一方面,Stack Overflow 2018 年度薪资计算器显示 Golang 成为了最受开发者欢迎的编程语言第 5 名、最受雇主青睐语言第 20 名与开发者最想尝试语言第 3 名,同时其开发者群体平均薪资达到了 $66000(458950.8 元人民币),排到了第 9 位,明显处于较高水平。
因为平时工作中,我也是使用 Golang,看到这些榜单数据之后,我就想了解一下国内目前 Golang 的市场行情如何,于是进行了一次数据抓取与分析,本文是对此次操作和数据分析的总结,分享出来让大家也对 Golang 的情况有所了解。
目标站点是某招聘网站的职位数据抓取和分析,爬取城市分别为北京、上海、广州、深圳、杭州与成都。
项目地址:https://github.com/go-crawler/lagou_jobs
页面分析
首先需要进行页面分析,找到我们的抓取方向:
搜索 golang 关键字,打开页面 F12 就能看到它发送了四个请求,留意 positionAjax.json 这个请求:
我们仔细研判这个接口的入参和出参:
入参
1、Query String Param
-
city:请求的城市
-
needAddtionalResult:是否需要补充额外的参数,这里默认 false
2、Form Data
- first:是否首页
- pn:页码
- kd:关键字
出参
就是它了,从返回结果可得出许多有用的信息:
- companyFullName:公司全称
- companyLabelList:公司标签
- companyShortName:公司简称
- companySize:公司规模
- education:学历要求
- financeStage:融资阶段
- ……
分页
在上面两张图中,可以发现在 content 节点中包含 pageNo、pageSize 字段,content.positionResult 节点有 totalCount 字段,可以得知当前是第几页、每页显示多少条、当前的职位总条数。需要注意一下,分页的计算是要向上取整的。
数据分析
在上面找到相关数据切入点后,我们就可以获取到相应的各类数据,继而进行数据分析,再以图表等形式呈现出来。相关数据获取代码托管在 GitHub 中,需要的可以自行查看:https://github.com/go-crawler/lagou_jobs。
下面来看看此次抓取数据后分析出来的 Golang 市场行情。
一、分布图
不同工作、工种,自然也会遍布在不同的工作区域,我们先了解一下各个城市的 Golang 工程师都主要在哪个区上班,心里留个底。
北京
上海
广州
深圳
杭州
成都
二、招聘与职位数量对比
通过分析图中的数据,我们可以得知各城市的招聘职位数量:
- 北京:348
- 上海:145
- 广州:37
- 成都:49
- 杭州:45
- 深圳:108
总共招聘的职位数量为 732 个,数量顺序分别为:北京 > 上海 > 深圳 > 成都 > 杭州 > 广州
还有另外一个关注点,就是招聘公司数量与职位的数量对比,可以看到北京招聘的职位数量为 348 个,而招聘的公司数量为 191 个,约为 1.82 的比例,也就是一家公司能提供两个 Golang 职位,它可能类别不同、级别不同(中级、中高级、高级)。
可以得出结论:Golang 在市场上具有一定的伸缩空间,也就是具有上升空间,一家公司会将 Golang 应用在多个不同的应用场景,也就是方向不同,需要的级别人才也就不同了。
但是需要注意的是,Golang 的市场招聘人数目前份额还是较低,六个城市总数仅为 732 个,与其他大热语言相差有一定距离,需要谨慎。
同时,面试 Golang 的人与其他大热语言相比会少些,职位的争夺是否小点呢?
三、招聘公司规模
通过查看招聘 Golang 工程师的公司规模,可以很直观地发现,微型公司使用 Golang 较少,其他类别的规模都有一定程度的应用,且差距不大。Golang 在 2000 人以上、50-150 人的公司规模中最受青睐。
为什么呢,我认为有以下可能:
- 大型公司结合场景,想通过 Golang 的特性来解决一些痛点问题
- 在小型公司 Golang 这颗新星实施起来更便捷,有一定的应用场景
四、学历要求
在招聘市场上,Golang 的招聘者更希望你是本科学历,大专和不限也有一定的份额,但相对小很多。
硕士学历要求的为两个,可以得出,在市场上 Golang 招聘者们对高学历的需求并不高。
五、行业领域
这里重点关注 Golang 工程师的招聘公司都分别在什么行业领域。大头移动互联网是不容置疑的了,还可以惊喜地发现 Golang 在以下几个方面都有不错的应用:
- 数据服务
- 电子商务
- 金融
- 企业服务
- 游戏
这说明在市场上,Golang 的路子是比较广阔的,前景不错。
六、职位诱惑
职位诱惑是投简历时必看的一点了,可以看到高频词条基本都是 IT 从业者关心的话题了,这里你懂的...
数据中我看到了一个 “免费三餐” 的词条命中 7 次,分别来自北京的海淀区、东城区、朝阳区和上海黄浦区的七家不同公司,辛苦了。
七、行业、职位标签
在招聘 JD 中,描述和标签常用于给求职者了解这一职业的具体工作内容和其关联性,图中可以看到 Golang 常常和以下这些内容搭上边,这点很有意义哦:
1、语言
- Java
- Python
- C/C++
- PHP
从图中可以看出,Golang 与以上四种语言有一定关联性,而 Java 和 Python 分别第一、第二名,说明市场上对复合型人才的渴望度更高,也许你不懂也行,但你懂了就最好(加分项)。需要你自身有多语言的经验,也便于和其他人对接。同时 Golang 目前存在许多内部转语言的情况,所以这一点可以参考。
2、职称
- 高级
- 资深
- 中级
特意将职称放在第二位。可以发现在市场上 Golang 标签的需求是高级 > 资深 > 中级,联系上边第一项 “语言关联” 不难得出这个结论,因为语言只是解决问题的工具,到了中级及以上的工程师都是懂多门语言的居多,再采取不同的方案去解决应用场景上的问题。
可得出结论:市场目前对 Golang 更期望是中高、高级、资深的人才,而中级的反而少一点点。
3、组件
- Linux
- Redis
- Mysql
4、行业
- 云计算
- 信息安全
- 大数据
- 金融
- 软件开发
八、薪资与工作年限
薪资这一部分,相信是很多人关注的地方。在有的文章中会看到,薪资部分是以平均值来展示的,我就很纳闷,因为对平均值并不是很关心,重点是无法体现薪资幅度,因此这里我会尽可能的把数据展现给大家看:
1、1-3年
一个特殊(成长)的阶段,有个位数也有双位数的,大头可以到 15-30k、20-40k,而初级的也有 8-16k。
2、3-5年
厚积待发的阶段,薪酬跨度较大,10-60k 的薪酬都有,这充分说明能力决定你的上下。
3、5-10年
核心,招聘网站上的招聘数量反而少,都会走内推或猎头,不需要特别介绍了。
小结
从图表来看,Golang 当前的薪酬水平还是很不错的,市场能根据不同阶段(水平)的人给出一个好的价位。
看完之后希望你能思考以下内容:
- 你当前工作年限的最高、最低薪资范畴
- 你的下一阶段的薪资范畴
- 为什么有的人高,有的人低
- 在大头部队还是小头,为什么
- 不要满足于平均值
九、融资阶段
选用 Golang 的公司大多数都较为稳定,有一部分比较刺激 :)
融资阶段与薪资范畴对比
不需要融资
上市公司
A 轮
B 轮
C 轮
D 轮以上
十、附近的地铁
最后八卦一下 Golang 工程师都扎堆在什么地铁站附近。
北京
上海
广州
深圳
杭州
成都
结论
如同官方所说 "Go has been on an amazing journey over the last 8+ years",作为一门新生语言,Golang 一直在不断地发展,缺点肯定是有的,你要去识别它。
总的来说,Golang 处于一个发展的阶段,市场行情也还行、应用场景较广,虽然招聘数量不多,但是工资水平还算不错。希望这对你找相关工作有所帮助。
作者介绍
EDDYCJY(煎鱼),个人博客:https://github.com/EDDYCJY/blog
本文系作者投稿文章。欢迎投稿。
投稿内容要求
- 互联网技术相关,包括但不限于开发语言、网络、数据库、架构、运维、前端、DevOps(DevXXX)、AI、区块链、存储、移动、安全、技术团队管理等内容。
- 文章不需要首发,可以是已经在开源中国博客或网上其它平台发布过的。但是鼓励首发,首发内容被收录可能性较大。
- 如果你是记录某一次解决了某一个问题(这在博客中占绝大比例),那么需要将问题的前因后果描述清楚,最直接的就是结合图文等方式将问题复现,同时完整地说明解决思路与最终成功的方案。
- 如果你是分析某一技术理论知识,请从定义、应用场景、实际案例、关键技术细节、观点等方面,对其进行较为全面地介绍。
- 如果你是以实际案例分享自己或者公司对诸如某一架构模型、通用技术、编程语言、运维工具的实践,那么请将事件相关背景、具体技术细节、演进过程、思考、应用效果等方面描述清楚。
- 其它未尽 case 具体情况具体分析,不虚的,文章投过来试试先,比如我们并不拒绝就某个热点事件对其进行的报导、深入解析。
投稿方式
- 以 Word 或者 Markdown 文档的形式将稿件投递到 oscbianji@oschina.cn 邮箱
重要说明
- 作者需要拥有所投文章的所有权,不能将别人的文章拿过来投递。
- 投递的文章需要经过审核,如果开源中国编辑觉得需要的话,将与作者一起进一步完善文章,意在使文章更佳、传播更广。
- 文章版权归作者所有,开源中国获得文章的传播权,可在开源中国各个平台进行文章传播,同时保留文章原始出处和作者信息,可在官方博客中标原创标签。