程式設計師在週末偏向用哪些程式語言?

至秦發表於2017-02-10

對我個人而言,我週末大部分時間都是陪伴家人,讀書休閒,或者花時間在我參與的開源專案上。這些週末專案會和我在 Stack Overflow 的工作有所重疊,但又不完全一樣。許多程式設計師是為了學習或者職業發展的目的(或只是為了好玩!)而參與副業專案的。無論是專業的還是業餘的,在 Stack Overflow 上,都可以得到我們的技術支援。 無論程式設計師何時工作,我們都可以回答他們的問題。但和工作日相比,在週末什麼語言的問題更容易被問到呢?

我們 StackOverflow 在 Kaggle 上公開了 StackList 資料集,可以用來挖掘工作日和週末問答帖的差異。任何人都可以使用這個資料集,你也可以用來探究自己對 Stack Overflow 上問題和標籤的疑問。

比較標籤

在這個分析中,我們將使用(未刪除的問題)和(被超過10,000個問題使用的標籤)。我們利世界標準時間來定義週末,這樣不會與所有使用者的週末時間精確匹配。整體上,工作日有10,451,274個問題,週末有2,132,073個問題。數字上的差異主要由於人們大部分還是在工作日使用Stack Overflow,我們從問答帖的數量和網站流量上都觀察到這樣的現象。

正是由於這種工作日和週末的現象,我們並不關心標籤是否在週末比工作日常用,基本上所有的標籤都是在工作日較為常用。實際上,我們希望挖掘什麼樣的標籤,在週末問題中的佔比要比工作日的大,反之亦然。

哪些問題標籤在相對佔比上會有最大的差別呢?

程式設計師在週末偏向用哪些程式語言?

為了進一步解釋,讓我們來看下資料。在這個資料集中,程式語言 Haskell 在週末問題中的佔比為 0.365%,而工作日的佔比只有 0.21%,這表明它在週末特別受歡迎。Sharepoint 在週末問題佔比為 0.0683%,工作日佔比為0.188%,表明它在工作日比較常用。

這讓我很興奮,說明 Haskell 這個函數語言程式設計語言引領著週末技術,基本上我就像下圖這樣:

程式設計師在週末偏向用哪些程式語言?

我還沒有學習 Haskell。但是所有利用週末時間來學習它的程式設計師們一定不會失望!至少現在你可以享受這個關於 Haskell 的笑話了,Haskell 經常被學者和數學家們使用,但在公司裡面不太常用。

讓我們看看還有什麼發現!

  • 我們看到一些底層技術在週末比較熱門,比如 C、C++,指標和彙編,還有數學相關的標籤,比如演算法、遞迴和數學。
  • Heroku 和 Meteor 是經常用來快速開發原型的應用平臺,這表明它們經常被用於週末的副業專案。
  • 很多工作日的技術都和微軟有關,標籤包括 Excel,SQL Server,VBA 和 T-SQL。其它類似的企業技術還有 Oracle。

通過比較整體問題的數量和相對頻率,在下圖中我們可以很形象地看到這些聯絡。

程式設計師在週末偏向用哪些程式語言?

圖中越靠右側的標籤(比如 JavaScript,Jave,C# 和 PHP 等)表示相關的問題越多,反之越靠左側的標籤表示問題越少。越靠近圖中紅色虛線的標籤,表示問題在週末和工作日的佔比越接近,離虛線越遠的標籤表示週末和工作日佔比的差距越大。

我們還可以觀察到,工作日中最常用的標籤都和微軟有關(C#,ASP.NET,SQL Server,Excel和VBA),很多週末標籤涉及的技術包含 C 和 C++,以及像 Swift 和 Node.js 這些新語言。

為週末工作

透過這個資料集,我們還可以觀察到隨著時間演變,程式設計師如何更新他們所使用的這些技術。透過模型,我們可以找到週末佔比(週末被問到問題的百分比)變化最大的標籤。對於那些超過20,000個問題的標籤來說,和過去相比,哪些被問到的數量變少了。

程式設計師在週末偏向用哪些程式語言?

我們發現,一些前幾年程式設計師經常在週末使用的標籤,比如 Ruby on Rails 和 Scala,現在卻很少在週末使用了,反而在工作日使用得比較多。過去這些技術是更偏向週末用的,但現在經常出現在程式設計師的日常工作中。這些年來,版本控制軟體 SVN 的使用也日趨減少,隨著 GitHub 平臺的出現,導致更少的程式設計師使用 SVN 來管理個人的週末專案。

程式設計師在週末偏向用哪些程式語言?

如果我們想找到在週末活動中增長最快的標籤,那無疑是遊戲引擎 Unity3D,以及一些和建立移動應用相關的標籤。看上去程式設計師在週末比以往設計更多的遊戲和應用。這絕對是度過週末的絕佳方式!

我們是採用了公開資料進行這次分析的,也希望社群中的其他程式設計師,可以有其它的發現。我們資料團隊利用類似的資料集回答各種問題,包含理解和招聘程式設計師,並與他們保持互動。你可以透過 Stack Overflow 上的Developer Insights 欄目,來獲取更多關於我們如何利用資料分析解決問題的案例。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

程式設計師在週末偏向用哪些程式語言? 程式設計師在週末偏向用哪些程式語言?

相關文章