Python分析在德的中国程序员,告别996?

640x_fmt=jpeg

640x_fmt=jpeg

据2016年数据,欧盟蓝卡签证的所在申请国,84%位于德国,可以说几乎整个欧盟的外国工程师都来德国找工作了。

640x_fmt=jpeg

 

在德国工作的程序员数据

据来自Stack Overflow的德国IT数据分析,2016年全德国有超过120000软件开发人员,2017年暴增超过820000。不过82万这个数字不可信,毕竟德国总人口才八千多万,如果是将近1%的占比,德国不至于一直闹码农荒。可信的十几万程序员中,软件开发方向数据如下:Web开发占比65.51%,系统管理员位居第二,数据库管理员第三。仅仅这三个方向就吃掉了75%的占比,为什么德国程序员看起来很偏科,爆火的机器学习和数据分析才各占4%左右。

这是因为德国IT行业大多为德国的支柱产业服务,如汽车、制药、机械、电子等,这些公司所需的企业内部管理软件如今多为SaaS构架,同时因为传统行业对云服务的怀疑和不信任态度,亦或安全原因,他们又维护着大量的企业私有服务器,和企业级数据库。所以不难理解前三甲总合占比之大。

虽说国内的移动开发趋势这两年有点弱,但德国的iOS和Android移动开发就从来没有强过,因为缺乏B2C土壤,传统企业一般也不重视移动开发(未必需要),相关产业很多都外包于东欧或者印度,中国的团队。

640x_fmt=png

在德中国程序员数据分析

网络上暂时没有发现任何关于这些可能存在的1500名中国程序员的数据,这就尴尬了,没数据怎么分析/span>

—-本文只好结束—- 

等等,平时管理的几个德国的IT行业微信群不就是最好的数据源友加起来也有500多人了,样本虽不大,但毕竟还是遵循正态分布的。不过必须用Python 3开发一套脚本来收集和处理相关数据。

在德中国程序员做什么

专业方向&工作领域&开发语言和框架的数据采集

如果使用匿名调查报告方式,扰民且又费时费力,此类信息只能从群昵称上打主意了,首先是发群公告规范群友昵称标准:

大部分群友按标准改了昵称,但是还有一部分死硬派坚决不改,又不能经常发群消息提醒,只能开发机器人自动提醒了。微信机器人Wxpy是一个包装得非常简洁的微信个人号 API, 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展,一些常见的场景:

  • 运行脚本时自动把日志发送到你的微信

  • 群成员信息获取,邀请或者踢人

  • 跨号或跨群转发消息

  • 监听群聊或者单聊的信息

  • 通过脚本和第三方API交互,比如图灵聊天机器人、智能办公、智能家居

开发需求

  • 获取群聊群成员信息

  • 找出所有群昵称不符合标准的群友

  • 随机抽取5人,在群里发布改昵称提醒消息

  • 同时将这次提醒的5人,存储进数据库

  • 每天早八点晚八点两次定时启动昵称检查脚本

  • 某人在将来被提醒次数超过10次,还不予配合不改昵称时,将自动踢出群

  • 新群友被邀请进入群时,立刻发送群规提示改昵称

开发分解

该任务所需第三方库如下:

1. 建库建表

本文采用的是MySQL,后期可以扩展支持Postgre或者MongoDB。

因为需要存储微信表情字符集,所以表的默认编码采用utf8mb4_unicode_ci。

2. 用户设置

所有用户自定义变量存入conf文件里,如群名、临时存储路径、数据库接入信息,踢人阈值:

3. 监听群消息

初始化群聊对象,并且监听群消息

4. 昵称检查

检查群友昵称,存入数据库并且发送提醒,  具体逻辑代码这里不予累述。

5. 数据库连接池

这里的数据库连接使用了数据库连接池:DBUtils.PersistentDB

DBUtils.PooledDB: 适用于多线程频繁开启关闭数据库连接

DBUtils.PersistentDB:适用于单线程多次频繁连接数据库

如果不采用线程池而是采取直连,那么运行一段时间后,脚本将出现该错误

这里将DBUtils再次封装了一下,写了一个单例模式BotDatabase, 提供了query(select), execute(update, delete) 以及批处理execute等常用接口。

6. 启动定时器

最终成果

640x_fmt=jpeg    640x_fmt=jpeg

已知问题

在消息中输入 @群员昵称 并不能真正让该群友收到@提示(显示推送提示),微信App里是在@群员昵称后自动加上了一个特殊的显示空白的字符u’。但是经测试,加上这个符号也不行,推测是微信Web API基于防范垃圾推送,屏蔽了群提示接口。

wxpy的bot在运行一段时间后会停止工作,出现连接服务器错误,必须重新登录,推测是微信Web API的Session安全机制导致的问题。

数据清洗

一段时间后大部分群友修改了昵称,于是有了在德中国程序员职业和专业方向的数据,经清洗后,导出CSV规格如下。

640x_fmt=jpeg

数据分析


该任务所需第三方库如下:

开发需求

  • 在德程序员男女比例

  • 在德IT软件专业在职和学生比例

  • 分析在德程序员所处行业和专业方向

  • 程序猿和程序媛所处行业和专业方向对比

  • 分析在德程序员常用开发语言和框架

  • 程序猿和程序媛常用开发语言和框架对比

  • 在职和学生常用开发语言和框架对比

开发分解

1. 在德程序员男女比例,输出Pie Chart

640x_fmt=png

分析:

在德中国程序猿和程序媛比率约为2:1,这个比例基本和中国籍蓝卡申请人男女比率持平。但是根据2018年中国程序员数据调查表,中国程序员群体中男女比例接近12:1。德国的各位猿,你们就偷乐吧。 

2. 在德IT软件专业在职人员和学生比例,输出Pie Chart

代码和上面雷同。

640x_fmt=png

分析:

IT信息行业在职工作人员和在读学生比率为9比1,绝大部分人是在职工作的。 

3. 在德程序员所处行业和专业方向,输出词云

640x_fmt=png

分析:

  1. 大数据,数据分析,数据挖掘

  2. 机器学习ML,人工智能AI,深度学习

  3. 汽车,自动驾驶,CV(机器视觉)

这三个大方向占比最大,说明中国码农在德国还是跟得上软件信息时代的变革的,并没有像一般德国码农那样一个技术吃一辈子。基于德系汽车制造业在电动车和自动驾驶领域的研发投入加重,越来越多的程序员也向这几个领域转型。一些传统企业如制造业,也开始用大数据来发现生产中潜在的工艺改进,或提前故障预警。

云计算,和以上三个方向密切相关,从业人员却不多。这可能是因为德国本土鲜有自己的大规模云计算服务商,很多企业没有自己的私有云,而将云服务部署在AWS上,如AWS就和奔驰,大众等汽车厂商达成了云数据等方向的深度合作。

互联网,电商这些领域在我另一篇文章

来源:Python大本营

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月15日
下一篇 2019年5月15日

相关推荐