歡迎光臨
每天分享高質量文章

程式員週末常用的程式語言和技術有這些

(點選上方藍字,快速關註我們)


編譯:Julia Silge,編譯:伯樂線上/至秦


對我個人而言,我週末大部分時間都是陪伴家人,讀書休閑,或者花時間在我參與的開源專案上。這些週末專案會和我在 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 欄目,來獲取更多關於我們如何利用資料分析解決問題的案例。

週末投身於程式設計專案或學習的程式員,大家常用哪些程式語言(技術)呢?歡迎留言討論~


看完本文有收穫?請轉發分享給更多人

關註「資料分析與開發」,提升資料技能

贊(0)

分享創造快樂