search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

驚呆了,使用空格縮進的開發者比使用Tab的薪水高很多

本文使用Stack Overflow 2017開發者調查的原始數據,對所屬國家地區、開發者類型、編程語言等多個維度進行統計分析,最終得出使用空格的開發者比使用Tab的賺的錢更多這個結論。以下是譯文。

你是使用Tab還是空格進行代碼縮進的?

這是軟體開發者之間的一場「聖戰」,眾多辯論和玩笑的永恆主題。我使用的是空格,但我從來沒有想過這個的重要性。但是今天,我們將發布Stack Overflow 2017開發者調查的原始數據,一些分析表明,空格與Tab的選擇比我之前預想的更為重要。

使用空格的人比使用Tab的賺的錢更多

有28657名自認為是專業開發人員(而不是學生或從前的程序員)的調查對象提供了Tab與空格使用情況的調查結果。在這個組內,有40.7%的人使用Tab,41.8%的使用空格(其中17.5%的人兩者都使用)。其中,有12426人還提供了自己的具體收入。

對這些數據的分析讓我們得出一個有趣的結論:對於代碼縮進,使用空格的人比使用Tab的人賺的錢更多,即使他們擁有相同的編程經驗。

實際上,使用空格的開發人員的中位數工資為59140美元,而使用Tab的開發人員的中位數工資為43750美元。請注意,所有的結果都從受訪者的貨幣兌換成了美元。回答「兩者都使用」的開發者與回答「Tab」的人的收入幾乎差不多,因此,在下面的分析中,我把他們剔除了。

這是一個有趣的結果,但並不是完全令人信服。當我第一次看到這個結果時,我認為它可能會受國家或編程語言等因素的影響。例如,人均GDP低的國家的開發者更有可能使用Tab,並且他們的平均工資往往比較低。

我們來看一下這種情況是否在每個國家都存在。下面是受訪度最多的幾個國家。

歐洲的影響較小,印度特別大,但它確實在每個國家都存在,這表明它不是唯一的影響因素。

還有另外一個前提條件,我們知道不同類型的開發人員經常使用不同的縮進,例如,DevOps開發人員更有可能使用空格和移動開發人員更有可能使用Tab,這往往是因為它們使用的是不同的編輯器和語言。「開發者調查」詢問了每個受訪者使用的編程語言(Python,Javascript等)以及他們是什麼「類型」的開發人員(Web開發人員,嵌入式開發人員等)。

看到了嗎,這些組中使用Tab和空格的差距是不是差不多是相同的?

是的,這個現象在每個開發者分組中都存在。(即使對特定國家/地區的開發人員,或者具有特定開發經驗範圍的開發人員進行篩選,也可以得到類似的結果)。請注意,受訪者可以選擇多種語言,因此,每個分組在互相之間都在一定程度上存在重疊。

我大概看了看其他幾個影響因素(例如教育水平或公司規模),並發現了基本相同的結果:空格在每個分組中都擊敗了Tab。既然原始數據可以取到,我鼓勵統計人員自己檢查一下其他影響因素。

評估影響

如果我們控制了可能會影響到薪水的所有因素,那麼Tab和空格的選擇會對收入產生多大的影響呢?

為了回答這個問題,我使用了線性回歸模型,並根據以下因素來預測工資收入。

從這個模型得到的結果可以知道,使用空格的人比使用Tab的人的薪水高出8.6%(置信區間(6%,10.4%),p值<10^-10)。(通過對工資對數的預測,我們能夠評估每個因素對薪金的影響百分比,而不是具體收入金額)。換句話說,使用空格,而不是Tab,價值額外的2.4年的工作經驗

結論

這確實是一個令人驚訝的結果,當我開始研究這些數據時,我並沒有想到會是這個結果。即使控制了很多的影響因素,這個結果也是令人印象深刻的。作為一個嘗試,我試圖控制調查數據裡面上文沒有提到的其他影響因素,但很難使影響減小,基本上不可能使其消失。

相關性不是因果關係,我們無法確定我們已經控制了數據集中存在的所有因素。如果你是數據科學家、統計學家或分析師,我鼓勵你下載原始調查數據並自行統計分析。如果你想要重現分析過程,你可以在這裡找到代碼。無論如何,我們都非常有興趣能聽到關於這種關係的任何假設。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦