数据源

为估算任何特定国家/地区的开发者人数,我们会从国际劳工组织(例如欧盟统计局)收集数据,并利用该特定国家/地区的国家/地区统计数据(例如,我们会使用加拿大统计局提供的加拿大数据)。由于不同的国家/地区对于“程序员”一词有着不同的定义,我们所收集的是与自身研究目的最为相关的数据。例如,在美国,以下职业与“程序员”的定义密切相关:

  • 15-1131 计算机程序员
  • 15-1132 软件开发者 – 应用程序
  • 15-1133 软件开发者 – 系统软件
  • 15-1134 Web 开发者

每年,我们都会开展年度开发者生态系统调查,向全球 30,000 名开发者征集意见。这些数据对于建立我们的研究模型起到了重要作用。它使我们能够全面了解开发者社区,获得对热门编程语言、工具、技术、开发者偏好和新兴趋势等方面的洞察。

我们的模型

我们依靠特定国家/地区 (X) 在指定年份 (T) 的人口规模和开发者人数来构建我们的模型。我们会使用国家/地区最新的公开数据来确定具有最新信息的年份以进行计算。这使我们能够计算该国家/地区特定年份的开发者密度。

DevDensity = DevNumber/Population

为了计算同一国家/地区最近几年(T+1、T+2…)的开发者人数,我们假设开发者密度恒定,并将其应用于由联合国预测的该国家/地区近年人口数量。根据回顾性分析,此模型被证实有效。为了计算数据缺失的国家/地区的开发者人数,我们会使用同一地区内其他国家/地区(用“Y”表示)的数据。对于各个国家/地区 Yᵢ,我们会计算所有已知年份的平均密度。然后,我们会在所得平均值中选择 10% 分位数。这将得出 X 国家/地区开发者密度的近似值。

计算出开发者总体人口密度后,我们就可以计算出该社区内特定类别开发者的规模。从开发者生态系统现状调查数据中了解样本中感兴趣类别所占份额(例如,所有程序员中的 Python 用户),我们就可以计算出此特定类别的规模,如下所示:

CategorySize = CategoryShare х DevPopulation

假设我们想要估算 2023 年美国使用 Python 的开发者人数。

我们拥有 2023 开发者生态系统调查的数据,并且可以依赖以下调查问题的回答:

  • 您在哪个国家/地区?
  • 过去 12 个月,您使用过什么编程语言?

在所有回答美国作为国家或地区的受访者中,美国使用 Python 的开发者占比将被估计为回答“Python”作为其编程语言的受访者的加权占比。

2023 年美国使用 Python 的开发者人数估算方式如下:

SizeUsaPython = ShareUsaPython х DevPopulationUSA

局限性

我们的调查方法有一些局限性:

我们的模型目前仅考虑专业开发者。我们未包括学生或业余爱好者,因为我们的数据和调查方法不足以统计这些人群。

当特定年份的信息缺失时,我们会使用最新的可用数据。对于某些国家/地区,数据缺失且需要更换或清理。

我们仪表板的筛选器选项有限,并且仅包含我们拥有全面数据的选项。

这些数字仅反映最或然值(平均预测),不应被视为精确值。根据模型的回顾性测试,平均而言,真实值与预测值的偏差为 14%(MAPE 指标)。此值可供我们大致了解真实值与仪表板所示预测值之间会存在多大偏差。

工资计算器

我们的工资计算器基于我们在年度开发者生态系统调查中收集到的数据。工资数据通过询问受访者以美元为单位的年度净工资(税后)获得,不含任何奖金。

我们的工资计算器调查方法有一些局限性:

  • 受访者被要求以工资范围的形式提供工资信息,而非具体工资数额。这意味着工资计算器只能提供这些范围内的估算,并且可能无法提供精确的估算。
  • 影响工资的因素可能会因职位而异。尽管我们收到了各种职位(设计师、项目经理、产品经理等)人员的回复,但回复数量不足以针对这些职位提供精确的工资估算。因此,工资计算器仅显示针对专业编码人员(具有任何专业编码经验的全职受访者)的估算。
  • 当特定年份的信息缺失时,我们会使用最新的可用数据。
  • 工资计算器针对国家/地区和编程语言的筛选器选项有限,因为我们只有这些选项的代表性调查数据。例如,国家/地区列表不包含奥地利,因为我们拥有的数据点不足以提供精确的估算。