随着云原生时代的到来,拥有高并发性、语法易学等特点的 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 邮箱

重要说明

  • 作者需要拥有所投文章的所有权,不能将别人的文章拿过来投递。
  • 投递的文章需要经过审核,如果开源中国编辑觉得需要的话,将与作者一起进一步完善文章,意在使文章更佳、传播更广。
  • 文章版权归作者所有,开源中国获得文章的传播权,可在开源中国各个平台进行文章传播,同时保留文章原始出处和作者信息,可在官方博客中标原创标签。

Go 开发者平均年薪 46 万?爬数据展示国内 Go 的市场行情到底如何的更多相关文章

  1. 本科毕业平均年薪 30 万!经济寒冬挡不住 AI 人才的火热!

    互联网行业遭遇寒冬,企业纷纷裁员缩招,而 BAT 和硅谷明星公司对 AI 人才的投入却并不见放缓.为争夺相关人才,给应届毕业生开出的平均年薪高达 30 万. 而 TensorFlow 作为当下最流行的 ...

  2. (转)Python网络爬虫实战:世纪佳缘爬取近6万条数据

    又是一年双十一了,不知道从什么时候开始,双十一从“光棍节”变成了“双十一购物狂欢节”,最后一个属于单身狗的节日也成功被攻陷,成为了情侣们送礼物秀恩爱的节日. 翻着安静到死寂的聊天列表,我忽然惊醒,不行 ...

  3. python是什么?工作前景如何?怎么算有基础?爬数据违法嘛......

    随着python越来越火爆并在2021年10月,语言流行指数的编译器Tiobe将Python加冕为最受欢迎的编程语言,且置于Java.C和JavaScript之上,于是越来越多的人开始了解python ...

  4. Mvc+Dapper+存储过程分页10万条数据

    10万条数据采用存储过程分页实现(Mvc+Dapper+存储过程) 有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下: 技术:Mvc ...

  5. 小白年薪26万,为什么Python岗位薪资越来越高?

    人工智能和大数据概念的兴起,带动了Python的快速增长——Python语言逻辑简洁.入门简单.生态丰富,几乎成为几个新兴领域的不二选择.而除了这两个领域,Python还有更多的适用领域:爬虫.web ...

  6. 插入1000万条数据到mysql数据库表

    转自:https://www.cnblogs.com/fanwencong/p/5765136.html 我用到的数据库为,mysql数据库5.7版本的 1.首先自己准备好数据库表 其实我在插入100 ...

  7. (转载) 据说年薪30万的Android程序员必须知道的

    据说年薪30万的Android程序员必须知道的帖子 标签: android 2015-03-12 16:52 28705人阅读 评论(14) 收藏 举报 Android中国开发精英 目前包括: And ...

  8. [Python] 通过采集两万条数据,对《无名之辈》影评分析

    一.说明 本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论. 运行环境:Win10/Python3.5. 分析工具:jieba.wordcloud.pyecharts.m ...

  9. 如何成为一名成功的iOS程序员,挑战年薪50万?

    编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域.你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识.只是对编程感兴趣还不足以功成名就——众所周知,我们工作起来像疯子. 编程是一个没有极限的职业,所 ...

随机推荐

  1. dockerfile的编写参数

    注意细节 “#”号开头是注释 ,指令不区分大小写,顺序执行 FROM 指定基础镜像:注意必须是文件里第一个非注释行 ENV name 值 设置变量,注意没有=号 变量引用 ${name:-chenxi ...

  2. 页面布局 Wrap 组件 和 RaisedButton按钮

    一.RaisedButton 定义一个按钮 Flutter 中通过 RaisedButton 定义一个按钮.RaisedButton 里面有很多的参数,只讲简单的进行使用. return Raised ...

  3. java中4种常用线程池

    一.线程池 线程池:说白了,就是一种线程使用模式.线程过多会带来调度开销,进而影响整体性能.而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,这避免了在处理短时间任务时创建与销毁线程的代价 ...

  4. 强化学习-Q-learning学习笔记

    Q学习动作探索策略中的ep-greepy,以ep的概率进行随机探索,以1-ep的概率以最大值策略进行开发,因为设定的迭代次数比较多,所以肯定存在一定的次数去搜索不同的动作. 1)Python版本 b站 ...

  5. ABC156E

    题目链接 也是简单的组合数学问题,每个位置可以移动走,也可以移动来,那么我们就需要找最终的状态,也就是最终的0的个数 假设有m个0,就有n-m个非0空位,选择0的组合数为\(\textrm{C}_{n ...

  6. CodeBlocks17.12配置GNU GCC + 汉化

    Codeblocks17.12以及Gcc和汉化包链接: 链接:https://pan.baidu.com/s/1F23fjvi8xRpQ9xR14ILpEA 提取码:90d6 一.TDM-GCC 的安 ...

  7. mac下Red Hat 7.4服务器初始化

    物料:VMware Fusion for Mac版     rhel-server-7.4-x86_64-dvd.iso 通过VMware安装好虚拟机,打开终端: 1.通过ifconfig查看ip和网 ...

  8. TCP网络调试助手上提示错误:“1035 未知错误”的有效解决方法,本人实测确实可行

    转:https://blog.csdn.net/jacket_/article/details/97415651 图片转载:https://blog.csdn.net/Alice_YCR/articl ...

  9. 吴裕雄--天生自然Python Matplotlib库学习笔记:matplotlib绘图(2)

    import numpy as np import matplotlib.pyplot as plt fig = plt.figure() fig.subplots_adjust(bottom=0.0 ...

  10. CSS shapes布局教程

    文章参考至 一.前言&索引 CSS Shapes布局可以实现不规则的文字环绕效果,需要和浮动配合使用. 兼容性如下图: 还是很不错的,移动端可用,内部中后台项目可用. CSS shapes布局 ...