程式設計師最愛 Mac、JS 是最熱門技術

黃小非發表於2016-03-23

概況:

今年,有超過5萬名開發者向我們分享了他們是誰,做什麼工作,以及他們的成果。通過本文,你將看到有史以來最為全面的一次開發者情況調查的結果。

每8秒鐘,就會有一位開發者在Stack Overflow上提出一個問題。今年,有來自173個國家的56,033位程式設計師在Stack Overflow上進行了回覆。

(在這次調查中,)我們提出了45個問題。我們把回覆結論的亮點總結如下:

越來越多的程式設計師使用Mac和Linux作為他們的主力作業系統,這個現象還是第一次發生。只有7%的開發者認為自己是“搖滾明星”。大多數開發者喜歡以貓或者狗作為寵物。(但是德國的開發者是個例外。)

當然本次調查並不是完美的。雖然我們通過大樣本的方式來減少調查的偏見,但是調查結果對於非英語開發者來說,或者是對於不關注英語調查的開發者來說,肯定還是存在偏差的。在某些領域,我們根據Stack Overflow每月4千萬訪問者的活動,對結果進行了一些增強。如果你是IT公司老闆,我們很樂意幫助你們找到合適的程式設計師。如果你是開發者(很可能你就是),我們希望你能在Stack Overflow上註冊一個賬號。

在調查結果中,我們反覆使用了“開發者”,“開發人員”和“回覆者”這些詞語。我們還把逗號寫在了引號的外面,因為這是程式設計師所使用的風格。

技術

開發者檔案:

在2016年1月,有四千六百萬使用者訪問了Stack Overflow進行提問或回覆。我們估計其中大約有1500萬使用者是職業開發者。而我們的調查問卷涵蓋了全球0.4%的開發者。

我們判斷職業開發者的依據是鑑於使用者訪問Stack Overflow時的閱讀和回覆行為。我們會蒐集使用者個人資料,用來協助我們判斷你對哪些問題感興趣,以及你能回答那些問題。使用者可以隨時對資料進行下載或刪除。

職位分佈:

在回覆者中,全棧開發者的比重最多。平均來看,全棧開發者可以很熟練地使用5到6中主流程式語言或者框架(相比之下,其他職位的人只會4種)。而 技術高管所會的語言則是所有職位型別開發者中最多的。

在參與調查的開發者中,移動開發者的比例和Android移動開發者的比例幾乎一樣(都差不多是3%)。有大約2.5%比例的開發者是iOS移動開發者。我們還收到了大約59份回覆,說他們是Windows Phone開發者(大約佔0.1%)。

每種職位最青睞的技術:






JavaScript是這個星球上最受歡迎的程式語言。而且後端開發者甚至更喜歡使用JavaScript來工作。

關於稱呼

程式設計師、工程師和開發者

在今年的調查裡,我們詢問了大家對自己的稱呼,是工程師?專家?黑客?還是其他那些在職業介紹,名片或者Twitter個人資訊上寫的東西。

95%的開發者認為他們自己是開發者,程式設計師,工程師或者高階開發者,全棧開發者。嵌入式應用開發者多半認為自己是工程師。圖形影像程式設計師則多半認為自己是程式設計師。

不過開發者還是這裡的最佳選擇。當然也是排名最高的選擇。

搖滾明星 vs. 忍者

有10%的回覆者自認為是忍者。真正的忍者絕不會告訴你他是忍者。他們會悄悄溜到你身後施展割喉暗殺技,也就是我們說的“在敵對環境工作”。

開發者的平均年齡是29.6歲。中位數是27。

按國家分的平均年齡:

上圖是按照國家分類的平均年齡。

經驗:

接受調查的開發者平均有6.5年的IT或者程式設計師經驗。不過這並不是成為職業開發者的必要年限(因為學習IT方面的學生告訴我們,他們的平均經驗是3.4年)。開發者可以從所做專案中獲取經驗,不管這些專案是沒報酬的還是兼職從事的。我們調查所得到的這個經驗分佈,和我們在Stack Overflow上230,000份簡歷的情況基本吻合。

從全世界的角度來看,前端開發者的經驗中位數是3.5年。全棧開發者的經驗中位數是8年。而工程管理人員的經驗中位數是13年。

星球大戰 vs. 星際迷航

我們在調查問卷中詢問了開發者他們更喜歡看哪個科幻作品,星球大戰還是星際迷航?很顯然,科幻動漫迷的選擇是隨著年齡的不同因人而異的。除上述兩項之外,《螢火蟲》排名最高的科幻作品,接下來是《星際之門》、《神祕博士》和《巴比倫5號》

性別:

我們的調查結果顯示出:在科技界男性和女性的巨大不平衡。事實上,我們知道,相比於調查結果所揭示的現象,女性在開發者勞動力中應該佔據更重要的比例。根據Quancast的統計,有12%的Stack Overflow讀者是女性。(不過我們並不刻意在內部跟蹤性別。)我們還知道,在某些亞洲國家,諸如韓國,印度和中國,女性開發者的數量有顯著的增長,但這次調查並不能充分反映這些國家的情況。

女性開發者職位分類:

女性從業者更多從事設計師的職業。而像機器學習開發者這類職位則更多由男性佔據。另外,QA開發者職位也是女性高過男性。而像技術執行官,或者工程管理者之類的職位,則是男性和女性比例均等。

按照性別分類的經驗

 

經驗根據區域而不同。當然也會因性別而不同。

根據性別和年齡段分類:

女性在所有回覆者中佔6%的比例,這個比例甚至比30歲和40歲的回覆者的比例還要小。科技界中性別失衡的情況比年齡失衡的情況要更加嚴重。

我們還不知道如何去打破這種科技界固有的性別壁壘,不過我們認為把這個資料分享出來會有助於增進工業界之間的交流。這也就是為什麼我們會在隨後的一個月公佈全部的調查資料集供大家分析的動機。你可以在Twitter上隨時關注我們的更新。

多樣性:

哪些人對多樣性做出評價?

總的來說,有73%的開發者反饋我們,認為多樣性多多少少還是有些重要的。41%的開發者說多樣性非常重要。而那些對人力資源有影響力的開發者則相信多樣性的價值很高,比開發者的其他任何型別都高。

我們今年收到了調查者的反饋,認為我們處理性別和多樣性之外,還應當加入種族的選項。這一點我們一定會考慮。如果你認為我們明年還有什麼需要加入的,請告訴我們。

教育經歷:

有69%的開發者告訴我們他們或多或少是自學成才的。(全球範圍內13%的調查參與者告訴我們他們只是自學)。43%的開發者有計算機及其相關的學識學位。2%的開發者擁有博士學位。

根據不同的教育方式:

機器學習開發者更多會採用線上學習的方式(圖形影像程式設計師則很少使用這種方式)。企業級服務開發者更傾向於工業級認證程式(而iOS移動開發者則幾乎不這麼做)。機器學習開發者則更多擁有電腦科學的碩士或博士學位。

技術:

2016年最熱門技術:

使用JavaScript語言的人要比使用其他程式語言的人更多。PHP則和Node以及Angular一起滑出了最受歡迎的行列。

最受歡迎的其他技術:

除了前面提到的語言之外,Delphi是最廣泛使用的語言或技術,Typescripe則是開發者最希望使用的技術。(哈哈,我看到OCaml了。)

最愛,最怕和最想的技術:

最愛的技術:

最怕的技術:

最想要的技術:

這已經是連續第二年,Rust,Swift和Go佔據最受喜愛程式語言TOP5的位置了。VB則是最恐怖技術榜的頭名——開發者是不會放過這種正在消亡的語言的。而Android,Node和Angular則是程式設計師最想學習的三種技術。

Stack Overflow 技術排行榜:

50,000 名調查回覆者是一個不小的數字,當然4000萬的數字則更大。Stack Overflow每個月有4000萬的使用者訪問量。在2016年1月,這些訪問者提交了2200萬份反饋(1700萬投票外加54萬匿名投票)。在2015年6月,JavaScript超越了Java成為Stack Overflow上最流行的標籤。在12月,Swift超越Objective-C。當然你也可以用我們公開的資料瀏覽器來自行進行分析。

Stack Overflow 技術趨勢

新潮的Web開發技術,比如React,Node.js,還有AngularJS正在逐漸起勢。還有就是Swift,正在逐漸蠶食Objective-C的市場份額。開發者們開始逐漸拋棄的技術有:CoffeeScript,Haskell,還有Windows Phone。儘管調查顯示有許多程式設計師不想再使用Visual Basic和Wordpress,但是這些技術彷彿還沒有真正縮水。

賺錢最多的技術:

有云就是雨!雲技術能掙大錢。這也是因為雲技術多半和金融行業有關。Spark,Scala,Cassandra,以及F#位於最高報酬技術的頭幾位。(今年的列表請參看這裡)

按職位分類的報酬:

懂得使用JavaScript並在為雲平臺工作的全棧開發者,以及使用React或者Redis技術的開發者比其他的開發者報酬更多。

懂得使用JavaScript和React,Node或者Angular技術的前端開發者比其他前端開發者的報酬更高。

有數學背景的開發者(包括資料科學家或機器學習開發者),如果能掌握Scala,Spark或者Hadoop技能,則可以比其他同行獲得更高的報酬。Python 和 R 技術的報酬幾乎差不多,不過會 R 的數學工作者的數量可是比會 Python 的人要多兩倍。

在iOS生態系統從業的移動開發者的報酬平均比Android移動開發者多10,000美元。

多個相關的技術:

每一個開發者(在日常工作中)平均要使用四五種主流程式語言、框架或者技術。最常規的雙技術組合是 JavaScript和 SQL。最常見的三技術組合是 JavaScript、PHP 和 SQL。

根據職業劃分的技術棧

看到棧了沒?全棧開發者選擇使用PHP作為後端原因,比任何其他語言都多。(緊接著的是C#和Java)。

JavaScript是如此普及,以至於後端開發者不管用什麼型別的3技術組合都包含了JavaScript。這也說明有很多後端開發者其實也就是披著後端外衣的全棧開發者。我們的內部統計顯示,有60%的職業開發者實際上是在做全棧的工作的。

有63%的資料科學家使用Python,44%使用R,還有27%是兩者都使用(有14%使用Python、R 和 SQL)。

開發環境(2016):

去年,我們調查了文字編輯器的使用情況。今年我們把這個問題擴充套件到了IDE、文字編輯器以及編碼工具的使用情況。大多數開發者會在2種到3種開發環境之間遊移。除主流的集中IDE以外,比較受歡迎的還有 WebStorm(1.6%),brackets(0.8%),Qt Creator(0.7%)還有Delphi(0.4%)。

根據職位分類的開發環境:

資料科學家使用Vim和Notepad++。全棧開發者使用Visual Studio和Sublime。學生則使用Notepad++和Visual Studio和Notepad++。

作業系統:

去年,在開發者們使用的作業系統中,Mac系統比Linux的份額多了一點點,排在第二名。今年形勢則非常明朗而且作業系統的發展趨勢也很明顯。如果這種趨勢依然保持下去的話,那麼明年Windows系統的使用量將會低於50%。

說到Linux家族,Ubuntu則以12.3%的份額在整個開發者OS市場中傲視群雄。Fedora,Mint和Debian則分別佔1.4%,1.7%和1.9%。

工作:

僱傭情況:

絕大多數的開發者都有工作。全球91%的開發者是“以獲取報酬而工作”(全職,自主創業或者自由職業)。

求職情況:

只有15%的開發者目前正在找工作。但是有78%的開發者對新的工作機持有興趣的態度。

如果你是準備僱人的老闆,那麼你最好要弄清楚哪些人並不是真的在找工作。

哪些人是在找工作?

在美國,學生,分析員和QA開發者是最有可能真正找工作的人。設計師,技術執行官,計算器學習開發者則更傾向於跟隨他們當前的老闆。

在大多數國家,朋友推薦還是開發者們找新工作的最普遍方式。不過印度卻是個例外,內部招聘率為 24.5%。

找工作優先考慮因素:

薪水當然是開發者們在找工作的時候最關心的。不過這也不絕對。有37%的開發者根本就沒有把薪水列入他們考慮的優先順序因素裡。

有意思的是,德國的開發者似乎對薪水的關心要少於其他國家的開發者。美國和法國的開發者則更關心他們的上升空間,英國的開發者則更關心他們工作的地點,而印度開發者則更關心他們是否有彈性的工作時間,是否有時間做自己的專案,是否能遠端辦公,當然還有就是工作的頭銜。

不同職位對找工作的優先考慮:

不同的開發者型別對優先事物的考慮是不一樣的。比如全棧開發者更關心所需的技術。機器學習開發者則考慮如何創新。相比於其他開發者,QA開發者則關心同事們的工作質量以及企業文化。

技術執行官不太關心生活和工作的平衡。他們關心的是如何製造出重要的產品,如何做出有影響力的決定,以及比其他型別的開發者更關心:公平。

不同經驗的開發者對優先順序的考慮:

作為一個開發者來說,獲得經驗,做正確的決定以及擴充技術棧應該是優先考慮的,然後是遠端辦公。(我們已經跟打架強調過了我們多麼喜愛遠端辦公。)但是很多有經驗的開發者對工作頭銜都不是很在意。

哪些國家的開發者更在乎錢?

越是平均收入較低的國家,開發者越喜歡衡量自己的工資。根據圖表顯示,北歐的開發者是最不在意錢的。

開發者希望在工作中學到什麼?

一旦開發者找到了工作,他們就會去嘗試學習新東西或創造新東西。對於印度開發者來說,得到升職的優先順序要比其他國家的開發者來得高。

工作中的挑戰:

不切實際的預期,糟糕的文件,不夠詳細的需求,這些都是開發者日常要面對的煩心事。聽上去熟悉吧?

不同經驗的開發者面臨的挑戰:

有經驗的開發者會比初級的開發者面臨更多的挑戰。經驗豐富的開發者被不切實際的期望,不夠詳細的需求,以及脆弱的程式碼影響的可能性更大。另外,有經驗的開發者在涵養方面做得更好。

工資:

各國程式設計師的購買力

有5年以上經驗的開發者的平均工資是對不同型別的程式設計師收入進行對比的一個指標。各國購買力:

Country Salary (mean) Salary (median) Local Big Mac Price Big Macs per Year (mean)
South Africa $45,383 $35,000 $1.77 25,713
United States $106,120 $105,000 $4.93 21,530
Ukraine $33,023 $35,000 $1.54 21,444
Australia $80,093 $75,000 $3.74 21,426
China $54,667 $45,000 $2.72 20,072
Denmark $81,778 $85,000 $4.32 18,930
New Zealand $70,727 $65,000 $3.91 18,089
Ireland $76,747 $75,000 $4.25 18,058
United Kingdom $75,654 $65,000 $4.22 17,925
Israel $74,400 $75,000 $4.29 17,447
Canada $70,307 $65,000 $4.14 16,978
Switzerland $101,449 $105,000 $6.44 15,753
Romania $29,884 $25,000 $2.86 15,734
Norway $77,429 $75,000 $5.21 14,930
Poland $35,455 $35,000 $2.37 14,929
Netherlands $55,180 $55,000 $3.71 14,873
Belgium $59,490 $55,000 $4.25 13,998
Russia $21,282 $15,000 $1.53 13,910
Germany $53,630 $55,000 $3.86 13,880
Austria $51,793 $55,000 $3.76 13,775
South Korea $48,529 $45,000 $3.59 13,518
India $25,457 $15,000 $1.90 13,416
France $52,948 $45,000 $4.41 12,009
Mexico $33,141 $25,000 $2.86 11,562
Finland $50,421 $55,000 $4.41 11,433
Sweden $58,899 $55,000 $5.23 11,291
Czech Republic $32,465 $25,000 $2.98 10,930
Spain $38,922 $35,000 $3.76 10,352
Turkey $33,971 $25,000 $3.41 9,962
Italy $38,283 $35,000 $4.30 8,903
Greece $32,252 $25,000 $3.60 8,880
Hungary $26,786 $25,000 $3.08 8,697
Brazil $29,074 $25,000 $3.35 8,679
Philippines $35,610 $25,000 $4.26 8,167
Portugal $24,740 $25,000 $3.23 7,659
Pakistan $20,273 $15,000 $2.86 7,088

巨無霸指數可以有效地用來衡量各國開發者之間的購買力差別。在南非,牛肉很便宜(其他的消費品也是如此),平均每個開發者一年的收入可以買25,000個巨無霸。擁有5年以上經驗的美國和烏克蘭的開發者也能吃得很好。

工資和租金的對比:

City Apartment Price Salary (median) Pct. of Salary spent on Rent
Montreal, Canada $712 $65,000 13%
Berlin, Germany $740 $55,000 16%
Pune, India $201 $15,000 16%
Bangalore, India $205 $15,000 16%
Austin, TX, United States $1,454 $105,000 17%
Seattle, WA, United States $1,764 $125,000 17%
Portland, OR, United States $1,401 $95,000 18%
Bucharest, Romania $372 $25,000 18%
Kiev, Ukraine $380 $25,000 18%
Los Angeles, CA, United States $1,780 $115,000 19%

莫斯科的房租是在是高的離譜。開發者最好能住在蒙特利爾,柏林,浦那(印度)以及班加羅爾——其中班加羅爾承載Stack Overflow最多的流量。德克薩斯的奧斯丁是美國房租最合適的城市,在那裡程式設計師不用把所有薪水都花去租房子。

但是如果你不用自己付房租的話,你可以考慮去加州。因為開發者收入排名前十的城市裡面,加州就佔了七個。Palo Alto排名第一,那裡的開發者平均收入達到153,000美元/年。在美國之外,開發者收入最高的城市是蘇黎世,在那裡有5年以上經驗的開發者的平均年收入是105,000美元。

公司規模和工資的關係:

平均工資隨著公司的規模增長而增長,不過很多小公司給的薪水也不錯。

錢能買到快樂嗎?

總的來說,工作中得到的回報和對工作的滿意度是成正比的。那麼錢能買到快樂麼?也許在某些地方可以。不過工資較高的開發者有更多選擇的權利,能選擇去他們感到快樂的地方工作。

僱傭狀態和工資的關係:

全職的員工是開發者勞動力的主力,他們的薪水也比平均水平高,也比那些自由職業者要高。不過自主開發者應該更愛他們的工作本身。那麼自主開發者和自由職業開發者/臨時合同開發者的差距有多大呢?差距是大約一萬美元每年。

工資和性別的關係:

在美國,不同性別的年輕開發者之間的收入並沒有明顯的區別,但是在30歲的年齡是不同性別開發者收入的一個分水嶺。這是指那些處於30歲以上年齡的男性開發者的收入要比平均水平高20,000美元。而在經驗方面,不同性別的開發者似乎也沒有明顯的收入區別。

受教育程度和工資的關係:

從全世界的範圍來看,擁有碩士學位的開發者的平均工資最高。擁有工業級認證和擁有博士學位的開發者比大多數其他的開發者要擁有更高的薪水。所以,好好讀書!

公司:

行業:

在軟體行業工作的開發者比在其他行業的要多。但是程式碼是五處不再的,這裡所說的“其他”行業,其數量有幾千個之多(主要包括保險,科研,能源等等)。

在遊戲行業工作的開發者比其他開發者更喜歡他們的工作。在製造業和金融業的開發者則很可能需要和歷史程式碼打交道。國防部的開發人員喜愛他們的老闆。因為他們的老闆更喜歡傾聽。

公司規模:

開發者陣營可以按照“為100人以下的公司工作”和“為100人以上的公司工作”這兩種。大約有25%的開發者是為1,000人以上的大公司工作的。

團隊:

獨狼型開發者就像個迷,或者比例非常稀少。96%的開發者表示他們在團隊中工作。非傳統意義的開發者則更傾向於變成”獨狼“型的開發者。(QA開發者則最不喜歡單獨工作。)

團隊中的女性:

我們詢問了調查接受者關於他們團隊大小的問題,以及團隊中有多少人是女性。上面的統計圖是來自於男性調查者的。分析員和資料科學家喜歡在女性比例較高的團隊中工作。嵌入式應用開發人員和桌面開發人員則對高女性比例的團隊沒多大興趣。(QA開發者在團隊女性平均人數上最高,為2人/組)。

遠端辦公:

大約12%的開發者是全職遠端辦公的。30%的採用遠端的方式進行兼職或全職辦公。

遠端辦公和有經驗的程式設計師:

在遠端辦公方面,有11年經驗的開發作者的人數是有5年經驗的開發者人數的兩倍。

遠端開發者是否喜歡他們的工作?

遠端辦公的開發者比其他型別的開發者更熱愛他們的工作。你在家工作麼?你想在家工作麼?如果想的話可以看看這裡。

版本控制:

57%的開發者表示他們每天都會checkin或者提交程式碼。

寫程式碼的程式設計師才是快樂的程式設計師:

總的來說,將程式碼諸如到最終產品中能產生工作的滿足感。從來沒有push過程式碼的開發者但是對工作滿意的比例佔65%,而每天提交程式碼的程式設計師,他們對工作滿意的比例是77%。所以開發者喜歡寫程式碼!(或者也許只是開發者喜歡提交程式碼,喜歡提交得比任何人都多。)

社群:

訪問頻率:

有一半以上的開發者平均每天要多次訪問Stack Overflow. 78%的開發者反饋說他們每天都會訪問Stack Overflow。

訪問動機:

許多開發者上Stack Overflow是為了尋求工作上的幫助。而更多的人上Stack Overflow只是因為他們喜歡用這種方式來學習。

問答:

自2009年Stack Overflow成立以來,使用者們提出了1840萬個問題,其中1230萬個問題得到了回答。2015年,使用者們提了270萬個問題,其中320萬個問題得到了解答。

有超過27,000位參與者給了我們他們的私人資訊。我們做了些調查,發現:他們一共問了383,445個問題,其中2,804,051個問題得到了解答。這些問題的答案幫助了全世界數以百萬界的開發者。所以,參與進來吧。

聲望值:

聲望值並不僅僅是個無用的網路點數——它還是你幫助過多少人的計數器。

有96%的使用者平均每月在Stack Overflow上得到一次幫助,如果你是他們的一員,如果你想做點兒什麼作為回報,那麼就請在Stack Overflow上註冊吧。

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

打賞譯者

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

程式設計師最愛 Mac、JS 是最熱門技術

相關文章