蓝卡和德国程序员数据
先在 上找了一圈,没有找到特别针对中国籍程序员的数据分析,只找到关于蓝卡和在德国工作的程序员的数据分析。
蓝卡数据
2013-2018年,超过76000外籍人员持蓝卡在德国工作。2017年德国共有21727外国人申请蓝卡工作签证,其中中国国籍申请者占了近10%。这说明仅2017年,就有二千多中国籍雇员申请了蓝卡,这其中IT从业者占比未知。假设IT软件信息领域的中国雇员只占比其中10%,那么过去五年中就有约800名中国籍程序员拿到蓝卡。实际上根据生活和工作的接触,我保守估计在德中国籍程序员数量超过1500人。
据2016年数据,欧盟蓝卡签证的所在申请国,84%位于德国,可以说几乎整个欧盟的外国工程师都来德国找工作了。
在德国工作的程序员数据
据来自Stack Overflow的德国IT数据分析,2016年全德国有超过120000软件开发人员,2017年暴增超过820000。不过82万这个数字不可信,毕竟德国总人口才八千多万,如果是将近1%的占比,德国不至于一直闹码农荒。可信的十几万程序员中,软件开发方向数据如下:Web开发占比65.51%,系统管理员位居第二,数据库管理员第三。仅仅这三个方向就吃掉了75%的占比,为什么德国程序员看起来很偏科,爆火的机器学习和数据分析才各占4%左右。
这是因为德国IT行业大多为德国的支柱产业服务,如汽车,制药,机械,电子等,这些公司所需的企业内部管理软件如今多为SAAS构架,同时因为传统行业对云服务的怀疑和不信任态度,亦或安全原因,他们又维护着大量的企业私有服务器,和企业级数据库。所以不难理解前三甲总合占比之大。
虽说国内的移动开发趋势这两年有点弱,但德国的iOS和Android移动开发就从来没有强过,因为缺乏B2C土壤,传统企业一般也不重视移动开发(未必需要),相关产业很多都外包于东欧或者印度,中国的团队。
在德中国程序员数据分析
络上暂时没有发现任何关于这些可能存在的1500名中国程序员的数据,这就尴尬了,没数据怎么分析/span>
等等,平时管理的几个德国的IT行业微信群不就是最好的数据源友加起来也有500多人了,样本虽不大,但毕竟还是遵循正态分布的。不过必须用Python 3开发一套脚本来收集和处理相关数据。
在德中国程序员做什么
专业方向&工作领域&开发语言和框架的数据采集
如果使用匿名调查 告方式,扰民且又费时费力,此类信息只能从群昵称上打主意了,首先是发群公告规范群友昵称标准:
大部分群友按标准改了昵称,但是还有一部分死硬派坚决不改,又不能经常发群消息提醒,只能开发机器人自动提醒了。微信机器人wxpy是一个包装得非常简洁的微信个人 API, 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展,一些常见的场景:
-
运行脚本时自动把日志发送到你的微信
-
群成员信息获取,邀请或者踢人
-
跨 或跨群转发消息
-
监听群聊或者单聊的信息
-
通过脚本和第三方API交互,比如图灵聊天机器人,智能办公,智能家居
开发需求
-
获取群聊群成员信息
-
找出所有群昵称不符合标准的群友
-
随机抽取5人,在群里发布改昵称提醒消息
-
同时将这次提醒的5人,存储进数据库
-
每天早八点晚八点两次定时启动昵称检查脚本
-
某人在将来被提醒次数超过10次,还不予配合不改昵称时,将自动踢出群
-
新群友被邀请进入群时,立刻发送群规提示改昵称
开发分解
该任务所需第三方库如下:
pip3 install wxpy
pip3 install apscheduler
pip3 install pymysql
pip3 install DBUtils
1. 建库建表
因为需要存储微信表情字符集,所以表的默认编码采用utf8mb4_unicode_ci。
DROP TABLE IF EXISTS `wx_chat_group`;
CREATE TABLE `wx_chat_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
PRIMARY KEY `id` (`id`)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_unicode_ci;
INSERT INTO `wx_chat_group` (`id`, `name`) VALUES (1, ‘德国IT职业信息分享群’);
— 每次抽取的不合规格的昵称将存储如表以供计数
DROP TABLE IF EXISTS `wx_chat_nickname_check`;
CREATE TABLE `wx_chat_nickname_check` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`group_id` int(9) UNSIGNED NOT NULL,
`wx_puid` VARCHAR(16) COLLATE utf8_unicode_ci NOT NULL DEFAULT ”,
`nickname` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘Create time’,
PRIMARY KEY `id` (`id`),
INDEX `idx_group_id` (`group_id`),
INDEX `idx_create_time` (`create_time`)
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_unicode_ci;
2. 用户设置
所有用户自定义变量存入conf文件里,如群名,临时存储路径,数据库接入信息,踢人阈值:
[wechat]
group_name_1=德国IT职业信息分享群
group_id_1=1
path_tmp=/opt/tmp/
notice_random=5
kick_max=10
tuling_api_key=xxxxx
[mysql]
mysql_host=localhost
mysql_port=3306
mysql_user=root
mysql_pwd=xxxx
mysql_database=wechat_group_ibot
3. 监听群消息
初始化群聊对象,并且监听群消息
# 查找群聊,并且设置附加属性,以备后用
def init_group(group_name, group_id):
group = ensure_one(bot.groups().search(group_name))
group.ext_attr = lambda: None
setattr(group.ext_attr, ‘group_id’, group_id)
setattr(group.ext_attr, ‘group_name’, group_name)
return group
# 初始化微信机器人bot
bot = Bot(cache_path=True, console_qr=True)
# unique chat person’s id
bot.enable_
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!