有一张动漫头像会让你成为更好的程序员吗?

2020-08-01 02:33:01

在2001年出版的“从Akira到Mononoke公主的动漫”一书中,纳皮尔教授指出,许多动漫爱好者从事计算机科学及其相关领域的工作。调查还碰巧显示,“超过70%的人平均绩点在3.0或更高,当一个人对科学领域的学术严谨性印象深刻时,这一点尤其令人印象深刻。”

动漫在塑造有文化气质的人方面享有相当高的声誉。这清楚地表明,动漫迷可以受到媒体的深刻影响。此外,许多多产的开源贡献者都将动画人物作为他们的头像。所以这让我想,做一个动漫迷是不是也会让你变得更聪明?

当然,像这样的问题几乎不可能直接回答。毕竟,衡量智商的方法有无数种,而且动漫迷是如此宽泛,没有一个定义可以适用于所有情况。例如,我们应该把只看过“千与千寻”,非常喜欢它,但没有接触过其他形式的动漫的人视为动漫迷吗?那些只看漫画的人怎么办?还是那些独家收看本该是什么的人呢?

一个较小的问题很容易回答,那就是看看拥有一张动漫头像是否与你是一名更好的程序员有关。毕竟,如果有人努力将自己的头像设置为外福,那么他们显然对动漫情有独钟。至于成为一名“更好的程序员”,我们只会把更好的等同于在GitHub上有更多的活动。而且,擅长编程确实需要大量的逻辑推理能力,这应该等同于更高的智商。当然,这个度量很容易被创建提交的cron作业滥用,但是它是编程活动的度量,应该足够好的™。

幸运的是,谷歌以非常便宜的价格提供了他们的图像标签API(如果你有GCP积分,也可以是免费的)。例如,将Rascal Does Not Dream of Bunny Girl Senpai的最佳女孩Mai Sakurajima的图片放入所提供的演示中,我将从中获得以下标签列表:

注意到其中一个标签是“Anime”吗?这是一个令人惊讶的工具,稍后会对我们有所帮助:)Google还提供了Python API,这使得检查图像变得更加容易,因为您现在要做的就是检查“Anime”是否是标签之一:

Anime_or_Not(Image):响应=客户端。LABEL_DETACTION(image=image)labels=Response。标签中项目的LABEL_ANNOTIONS:如果项目。描述==";动画";:返回True。

至于GitHub提交,我们可以使用事件API,它大致类似于用户的贡献历史图表。我们将通过每个用户的事件数量来衡量用户活动,因此每个事件(打开公关、创建回购等)。被给予同等的权重。这大致相当于一个用户的贡献热图有多环保。

PyGitHub将GitHub API封装到一个易于使用的库中,因此获取用户的事件数量以及他们的个人资料图片的URL非常简单:

用户=g。用户中的USER的GET_USERS():USER中的事件的EVENT_COUNT=0。Get_events():event_count+=1 is_Anime_image=check_if_Weeb(用户。阿凡达_url)。

对于通过认证的用户,GitHub会将API速率限制在每小时5000个请求。这已经足够Torun每小时大约2000个请求了。要解决此问题,我们可以利用GitHub配置文件ID的顺序编号方式,并分批处理1000个配置文件:

对于范围(1200000,1201000)内的gihub_id:尝试:USER=g。Get_user(Gihub_Id)异常除外:在此继续#执行用户操作。

我在这里修改了GET_USER函数,以使用未记录的/USER/:ID端点。这还没有在PyGitHub中实现,但是这个问题似乎正在跟踪它。

剩下的就是将这些API链接起来并保存数据。只需使用/Users GitHub API端点遍历所有用户,将他们的图像发送到Google Vision API,记下他们是否有动画个人资料图片和该用户的活动数量,最后将其记录到CSV中以供稍后分析,这是很简单的。这正是我所做的,您可以在这里看到我的代码。这是非常高的研究质量,所以不要期望太高。

现在我有一个包含3497个GitHub档案的表格,其中只有23个有动漫档案图片。以下是按档案图片类型显示用户活动分布的框图:

嗯,拥有动漫头像的用户似乎有更高的平均活跃度。但我们不能停在这里。请记住,与有动画头像的用户相比,没有动漫头像的用户样本要多得多,而且两组中的离群值都相对较高。为了确保这里的差异在统计上显著,我们需要进行T检验:

它提供的p值为0.2371。我们现在必须得出的结论是,我们得到的更高的平均值在统计上并不显著,因为我们23.7%的p值没有达到传统的5%的临界值。因此,我们必须再次默认贝特里奇定律,并采用我们的零假设,即拥有一张动画头像并不一定与你作为程序员的能力相关。

但是,可以对此主题进行进一步的工作。由于这个项目只关注了一小部分用户,他们是第一批注册的用户,所以它不是GitHub用户群体中具有代表性的一部分。此外,将不活跃的用户包括在此实验中也可能是有启发性的。