解决方案
在当前环境下,多数以业务为核心,所以学习什么技术并不是我们能决定的,而是业务、市场决定的。基于此,如果想知道我们该学习什么技术,直接去招聘网站看招聘需求即可 —— 即「用什么学什么」;
我们需要关注的技术点(20191025)
作为一名运维工程师,我们有着大堆的技术要研究。除了需要熟练数据库、网络、虚拟化、监控、服务器、备份等等常见技术,还要略懂 PHP、JVM、AWS、JIRA 等等这些环境以及调优、问题排查。总之,各种技术一大堆,都需要我们研究;
可是我们的时间和精力是有限的。有些技术,对于运维工程师来说,并不是十分重要的。这些技术的 ROI(投入产出比)是非常低的。例如 PowerShell 脚本,对于运维工程师来说,花费时间研究 PowerShell 脚本,不如花费时间研究 Linux Shell 脚本。因此,我们应该把精力放在那些,对于运维工程师,更广、更常见、更经久不衰的技术上;
我们试图从技术的海洋中,找到运维工程师更应该关注的技术;
解决方案
为了找到“那些技术”,我们从招聘网站中爬…………哦,不…………整理了所有“运维工程师”职位数据;
我们尝试从所有企业的招聘信息中,找到那些出现频率最高的技术关键词。这些技术也一定是大多数企业所需要的;
这些技术的收入不一定是最高的,关于薪资我们也会进行分析。我们也会找到各个薪资段中,对技术方向的要求;
如何处理数据呢?
首先,我们只过滤了职位描述中的英文及数字。为什么?(1)大多数中文描述内容都类似于“掌握容器技术”、“监控服务器的运行状态、系统性能”、“熟悉各云平台产品”等等,太过于笼统,没有指出具体技术要求。(2)某些任职描述偏向于品质,比如“有较强的抗压能力、沟通能力”、“较好的服务意识”等等,这些内容会影响到我们数据分析,因为我们分析的重点是技术。(3)还有一些描述,形如“高可用”、“监控”、“日志”等等,没有涉及具体技术的,都可视为干扰。例如高可用,当我们谈论它的时候,一定是某个服务的高可用,而不会说“如何搭建高可用”;
其他,我们将英文转为小写,并去除单个技术术语中的空格。比如 SQL Server 则转化为 sqlserver 形式,防止它被分解成 SQL 与 Server 两个词;
技术关键词的词云
首先让我们来看看词云图:
借助上面的词云图,我们“大致”可以得到以下几点结论:
(2)而 Linux 则是运维工程师永恒的话题,当然这就要提一下 CentOS 发行版了;
(3)最显眼的几个词:Linux Python Shell MySQL Zabbix Jenkins Redis Nginx ELK Docker Kubernetes 等等吧
(4)令人以外,但是情理之中的是 Ansible 居然比 SaltStack 的比重高,而 Puppet 是最少的;
当然这只是表面上,我们还要分析它们各自的比重;
技术关键词的饼图
下面是关键词的饼图,我们只取了前 20 名(这前 20 名足够我们喝一壶的了):
当然,要掌握的技术除了这 Top 20 外,还有与其周边技术(这一有一点小失误,图中 TCP、IP 部分,实际上是 TCP/IP,没有单独进行处理);
!!!明年三、四月份,我们还会进行一次统计,将结果与此次的饼图对比,找到这其中的技术变化趋势;