Stack Overflow:使用空格缩进的开发者比使用Tab的薪水高很多

原文Developers Who Use Spaces Make More Money Than Those Who Use Tabs
作者:David Robinson
翻译:雁惊寒

译者注:本文使用Stack Overflow 2017开发者调查的原始数据,对所属国家地区、开发者类型、编程语言等多个维度进行统计分析,最终得出使用空格的开发者比使用Tab的赚的钱更多这个结论。以下是译文。

你是使用Tab还是空格进行代码缩进的?

这是软件开发者之间的一场“圣战”,众多辩论和玩笑的永恒主题。我使用的是空格,但我从来没有想过这个的重要性。但是今天,我们将发布Stack Overflow 2017开发者调查的原始数据,一些分析表明,空格与Tab的选择比我之前预想的更为重要。

使用空格的人比使用Tab的赚的钱更多

有28657名自认为是专业开发人员(而不是学生或从前的程序员)的调查对象提供了Tab与空格使用情况的调查结果。在这个组内,有40.7%的人使用Tab,41.8%的使用空格(其中17.5%的人两者都使用)。其中,有12426人还提供了自己的具体收入。

对这些数据的分析让我们得出一个有趣的结论:对于代码缩进,使用空格的人比使用Tab的人赚的钱更多,即使他们拥有相同的编程经验。

salary_graph-1-1024x731

实际上,使用空格的开发人员的中位数工资为59140美元,而使用Tab的开发人员的中位数工资为43750美元。请注意,所有的结果都从受访者的货币兑换成了美元。回答“两者都使用”的开发者与回答“Tab”的人的收入几乎差不多,因此,在下面的分析中,我把他们剔除了。

这是一个有趣的结果,但并不是完全令人信服。当我第一次看到这个结果时,我认为它可能会受国家或编程语言等因素的影响。例如,人均GDP低的国家的开发者更有可能使用Tab,并且他们的平均工资往往比较低。

我们来看一下这种情况是否在每个国家都存在。下面是受访度最多的几个国家。

salary_by_country-1-1024x768

欧洲的影响较小,印度特别大,但它确实在每个国家都存在,这表明它不是唯一的影响因素。

还有另外一个前提条件,我们知道不同类型的开发人员经常使用不同的缩进,例如,DevOps开发人员更有可能使用空格和移动开发人员更有可能使用Tab,这往往是因为它们使用的是不同的编辑器和语言。“开发者调查”询问了每个受访者使用的编程语言(Python,Javascript等)以及他们是什么“类型”的开发人员(Web开发人员,嵌入式开发人员等)。

看到了吗,这些组中使用Tab和空格的差距是不是差不多是相同的?

salary_graph_devtype-1-1024x717

是的,这个现象在每个开发者分组中都存在。(即使对特定国家/地区的开发人员,或者具有特定开发经验范围的开发人员进行筛选,也可以得到类似的结果)。请注意,受访者可以选择多种语言,因此,每个分组在互相之间都在一定程度上存在重叠。

我大概看了看其他几个影响因素(例如教育水平或公司规模),并发现了基本相同的结果:空格在每个分组中都击败了Tab。既然原始数据可以取到,我鼓励统计人员自己检查一下其他影响因素。

评估影响

如果我们控制了可能会影响到薪水的所有因素,那么Tab和空格的选择会对收入产生多大的影响呢?

为了回答这个问题,我使用了线性回归模型,并根据以下因素来预测工资收入。

  • Tab与空格
  • 国家
  • 编程经验年限
  • 开发人员类型和语言
  • 正规的教育水平(如本科,硕士,博士学位)
  • 是否贡献过开源项目
  • 是否把编程作为一个兴趣
  • 公司规模

从这个模型得到的结果可以知道,使用空格的人比使用Tab的人的薪水高出8.6%(置信区间(6%,10.4%),p值<10^-10)。(通过对工资对数的预测,我们能够评估每个因素对薪金的影响百分比,而不是具体收入金额)。换句话说,使用空格,而不是Tab,价值额外的2.4年的工作经验

结论

这确实是一个令人惊讶的结果,当我开始研究这些数据时,我并没有想到会是这个结果。即使控制了很多的影响因素,这个结果也是令人印象深刻的。作为一个尝试,我试图控制调查数据里面上文没有提到的其他影响因素,但很难使影响减小,基本上不可能使其消失。

相关性不是因果关系,我们无法确定我们已经控制了数据集中存在的所有因素。如果你是数据科学家、统计学家或分析师,我鼓励你下载原始调查数据并自行统计分析。如果你想要重现分析过程,你可以在这里找到代码。无论如何,我们都非常有兴趣能听到关于这种关系的任何假设。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Stack Overflow 是一个免费的编程问答网站,提供程序员之间的即时交流支持。只需要在网站上注册一个账号,就可以开始使用Stack Overflow了。你可以搜索历史问题,或者提出新的问题,并得到社区的帮助解决你的问题。 ### 回答2: Stack Overflow是一个知名的问答社区,用户可以在上面提问和回答与编程相关的问题。以下是如何使用Stack Overflow的简要步骤: 1. 注册账号:首先,你需要在Stack Overflow的网站上注册一个账号。注册账号后,你可以开始提问和回答问题。 2. 搜索问题:在提问之前,先使用搜索功能查看是否已经有类似的问题和答案。Stack Overflow上已经有很多问题的解答,你可能会找到对你问题的完整答案。 3. 提问问题:如果没有找到合适的答案,可以点击“Ask Question”按钮提问。在提问之前,要确保你的问题清晰明确,并提供足够的背景信息和代码示例。这样会帮助其他用户更好地理解你的问题。 4. 关注问题:在问题被发布后,你可以关注它以接收到后续的回答和评论。当有用户回答你的问题时,你会收到通知。 5. 回答问题:除了提问以外,你也可以回答其他用户的问题。如果你对某个问题有解答,可以在评论或回答中分享你的见解和经验。 6. 遵守规则:使用Stack Overflow时,要遵守社区的规则和准则。例如,避免提问模糊或过于主观的问题,同时也要尊重其他用户的意见和回答。 7. 探索其他功能:Stack Overflow不仅仅是一个问答社区,还有丰富的功能和资源。你可以浏览标签以查看与你感兴趣的主题相关的问题,还可以参与到探讨特定话题的论坛讨论中。 总之,Stack Overflow是一个宝贵的资源,可以帮助你解决编程中遇到的问题,并与全球的开发者社区互动交流。通过提问和回答问题,你不仅可以解决自己的问题,还可以为其他人提供帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值