近日,Stack Overflow《 2020 年開發人員調查》報告出爐,這是 Stack Overflow 開展對開發人員年度調查的第 10 年,可以說是見證軟件行業鉅變與更迭的十年。

該報告基於對來自全球 186 個國家的 65000 名軟件開發人員的調查得出。調查於 2020 年 2 月 5 日至 2 月 28 日進行。

報告亮點:

技術經理、SRE、DevOps 專家和數據工程師往往會獲得較高的薪水。其中技術經理的薪水 9.2 萬美元,是所有崗位中收入最高的人羣,而學術研究員的薪水爲 4.1 萬美元,是所有崗位中收入最低的人羣。

Rust 連續第 5 年蟬聯最受喜愛的技術榜首;

Java 連續八年保持其最普遍使用的編程語言榜首,Python 略高於 Java 排名第四。

35 歲以下的開發者佔比 72.1%,超過 54% 的開發人員在 16 歲之前寫出了他們的第一行代碼。

超過 75% 的開發人員至少偶爾加班,每個季度加班一到兩天。25% 的人每週加班 1-2 天或更多,僅有 10.% 的開發者從來不加班。

70% 的受訪開發人員表示更高的薪水是他們跳槽的最主要原因。

開發者簡介

絕大多數受訪者表示,他們是專業開發人員,有的人將編程作爲工作的一部分,有的是爲此類職業做準備的學生。

國家分佈

接受調查的開發者來自全球,其中來自美國、印度、英國、德國的開發人員居多,來自中國的開發人員佔比 0.57%;

開發者角色

開發人員類型

受訪者中,佔比前五的爲後端開發人員、全棧開發人員、和前端開發人員,桌面或企業應用程序開發人員,移動開發人員,分別佔比爲 55.2%、54.9;37.1%,23.9%,19.2% 。

熱愛編程

很多開發人員在工作之外編寫代碼,約 78% 的受訪者表示,他們將編程作爲愛好 / 興趣。

經 驗

開發經驗

參與該調查的所有受訪者中,擁有 5-9 年開發經驗的開發人員佔比最高,爲 30%,其次是擁有 10-14 年開發經驗的開發人員,佔比爲 20.1%,編程經驗少於 5 年的開發人員佔比 17%。

在專業開發人員中,擁有 5-9 年開發經驗的開發人員佔比最高,爲 29.2%,其次是擁有 10-14 年開發經驗的開發人員,佔比爲 22.7%,編程經驗少於 5 年的開發人員佔比 10.5%。

多年專業編程經驗

65% 的受訪者表示,從事專業編程的時間不到 10 年,其中少於 5 年的佔比 39.6%,5-9 年的佔比爲 26.8%。此外,編程經驗在 10-14 年的佔比 14.7%,15-19 年的佔比 7.6%。

按開發人員類型劃分的專業編程經驗年限

技術主管和工程經理往往擁有最專業的編碼經驗,高級主管 / 副總裁級別的開發人員平均擁有 16.5 年開發經驗。

在各個參與者角色中,最有經驗的開發人員往往是系統管理員、數據庫管理員和創建桌面和嵌入式應用程序的開發人員,分別擁有 13.8 年、10.8 年和 10.8 年開發經驗。

web 開發人員、學術研究人員和數據科學家的編程經驗比較少,原因可能與教授 web 開發的編程訓練營的激增,以及從學術界進入該領域的數據科學家的數量有關。

編寫第一行代碼

在所有的受訪者中,超過 54% 的人在 16 歲之前寫出了他們的第一行代碼,在 20 多歲時編寫第一行代碼的人佔了 13%。

按國家來看,巴西和印度等國的受訪者比波蘭和德國等國的開發者晚了兩年纔開始編寫代碼,波蘭和德國等國的開發者平均從 15 歲開始編寫代碼。

按性別來看,男性開發者開始編程的時間比較早,他們最早在 15 歲是寫出了第一行代碼,而女性開發者則要晚 2 年,在 17 歲時開始寫代碼。

教育

受教育程度

在所有受訪者中,約有 75%的人完成了至少相當於學士學位或更高學位的課程,其中,獲得學士學位的開發人員佔比 46.2%,有 22.8% 的受訪開發人員獲得了碩士學位。

在專業開發人員中,獲得高學歷的比重增加,有近一半的人獲得了學士學位,獲得碩士學位的開發人員佔比 25.5%。

本科專業背景

在具有大學本科背景且具備編程經驗的受訪者中,62%的人擁有計算機科學、計算機工程或軟件工程學位,有另一個工程領域學位的人佔比不到 10%。

很有意思的是,還有不少受訪者擁有與商務相關的學位或人文,社會科學或美術研究領域的學位,分別佔比 2.7%、1.8% 和 1.4%。

在專業開發人員中,擁有計算機科學,計算機工程或軟件工程學位佔比 62.6%,有另一個工程領域學位的人佔比 9.3%。

正規教育的重要性

在所有受訪者中,約 85%的專業開發人員認爲正規教育至少在某種程度上很重要,其中,認爲其相當重要的佔比 26%,有 9.8 的人認爲其至關重要。有 16%的人認爲其根本不重要或沒有必要。

在專業開發人員中,認爲其重要的比例與來自所有受訪者的反饋結果基本一致。

圈層

種族與民族:

在所有受訪者中,具有白色或者歐洲血統的人佔比最高,爲 68.3%,其次分別是南亞,西班牙裔或拉丁裔,佔比爲 10.4% 和 7.6%。來自東亞 的人佔到了 4.6%。

在專業開發人員中,70.7% 的人具有白色或者歐洲血統,南亞人佔比 9.6%,西班牙或者拉丁佔到了 7.8%,有 4.2% 的人來自東亞。

性別:

當按國家查看性別認同時,可分析出女性專業開發人員的參與率。

女性開發者佔美國開發者的 11.8%,在加拿大,這一比例爲 11%,在英國,也有近 11% 的女性開發者。在德國,巴西和波蘭等國家,女性開發者的參與率比較低。

在所有受訪者中和專業開發人員中,男性開發者的比例均高於女性開發者,比例超過 91%。

開發人員的角色和性別:

基本上,在所有類別的開發人員中,男性的比例均遠遠大於女性。擔任數據科學家或學術研究人員的開發人員中,男性是女性 10 倍,擔任系統管理員或 DevOps 專家的開發人員中,男性的比例更高,是女性的 25-30 倍。

女性開發人員通常擔任前端、設計師,數據科學家、數據分析師,測試開發人員,科學家和教育工作者的崗位。

經驗與性別

如果以性別的維度分析與開發經驗年限之間的關係,可以看出一些男性和女性開發人員間的差異,擁有 5-9 年開發經驗的男性開發人員佔比 29.2%,而女性佔比 34.7%;有 15.4% 的男性開發人員編程經驗少於 5 年,而女性這一比例爲 25.2%;開發經驗在 10-14 年的男性佔比 20.5%,女性佔 18.1%。

值得注意的是,數據還表明,女性離開高科技職位的比例要高於男性。在擁有 34 年 -50 年以上開發經驗的受訪者中,女性的開發者數量一直低於男性。

心理 / 身體健康狀況:

在受訪者中,將近 15%的人表示自己患有某種類型的焦慮、情緒或情緒障礙。有 2%的受訪者表示自己存在自閉症等心理問題。

有近 2% 的受訪者有失明 / 難以看清難以聽清 / 行走困難、無法打字等身體方面的疾病。

年齡

在所有受訪者中,35 歲以下的人佔比 72.1%,其中 25-29 歲的人佔比最高,爲 26.5%,20-24 歲的開發者次之,佔比爲 20.3%。

在專業開發者中,35 歲以下的開發者佔比 69.2%,其中,其中 25-29 歲的人佔比最高,爲 29.5%,30-34 歲的開發者次之,佔比爲 21.9%,20-24 歲的開發者佔比 16.6%。

不同國家開發人員的年齡和經驗

美國、英國、加拿大、荷蘭、法國等國家的開發人員年齡普遍偏大,平均年齡大於 30 歲。

上述北美、歐洲國家的開發人員在編程經驗上也更豐富,平均編程經驗在 13 年以上。此外,澳大利亞開發者的平均編程年限最高,爲 16.9 年。

技 術

最普遍使用的技術

編程,腳本和標記語言類

毫無意外,Java 連續八年保持其最普遍使用的編程語言榜首。Python 略高於 Java 排名第四。此外,Type 在常用性方面高於 C,Ruby 在 2017 年曾一度躋身該榜單的前十名,但如今有所下降,被 Go 和 Kotlin 等超越。

Web 框架類

如果專注於 Web 框架,我們可以看到 jQuery 仍然是普遍使用的,但它的受歡迎程度正在逐年下降,按照這個情況,未來可能會被 React.js 和 Angular 超過。

其他框架,庫和工具

根據結果,Node.js 連續兩年位居榜首,超過半數的受訪者選擇了它。今年,一些數據科學和機器學習方面的技術明顯引起了開發者的注意,比如 Pandas、TensorFlow 等,相較於這二者,Torch/PyTorch 的情況並不是很樂觀。

數據庫類

這一項的結果基本與前幾年類似,MySQL 高居榜首,其次是 PostgreSQL 和 Microsoft SQL Server。值得一提的是可能是 Firebase,今年超過了 Elasticsearch。

平臺類

Linux 和 Windows 在最常用的平臺上一直保持着前兩名的位置,均獲得了半數以上的受訪者支持。隨着雲原生技術的盛行,我們也看到了 Docker、Kubernetes 之類的技術正在逐年上升。

最喜歡、最令人生畏和想要學習的

連續五年,Rust 一直是最受喜愛的編程語言。並且支持者甚多。在前不久 Rust 社區發佈的年度調查報告中,使用 Rust 最多的用戶是程序員 / 軟件工程師,其次是系統架構師。而最多應用 Rust 的領域是後端 Web 應用程序。

此外,與去年相比,Type 超越 Python 位居第二。Go 從去年的第 10 位上升到今年的第 5 位。

VBA、Objective C 和 Perl 在最令人生畏的語言中佔據頭把交椅,使用這些語言的開發人員比例並不低,但對於繼續使用這些編程語言並不感興趣。

如果查看開發人員不使用但想學習的技術,Python 連續第四年位居榜首,Java、Go 和 Type 不相上下,Rust 也有一些提升。

Web 框架類

ASP.NET Core 是最受歡迎的 Web 框架,擊敗了 React.js 和 Vue.js。參與調查的新秀 Gatsby 已排在第 5 位,受到 60%的受訪者喜愛。

儘管使用者不少,但 Angular.js 依舊被認爲是最令人生畏的,其次是 Drupal、jQuery。而 Raect.js 是開發者最想要學習的編程語言,並且優勢非常明顯,其次是 Vue.js 和 Angular。

其他框架,庫和工具類

.NET Core 和 Torch / PyTorch 仍然是其他其餘框架,庫和工具中最受歡迎的工具,其次是 Flutter 和 Pandas;DevOps 工具中的 Chef 和 Puppet 是最令人生畏的工具前兩名;Node.js、Tensorflow 是開發者最想要學習的框架。

數據庫類

在這個領域,Redis 仍然深受開發者喜愛,其次是 PostgreSQL 和 Elasticsearch。意料之中,IBM DB2 和 Oracle 是最令人生畏的數據庫,而 MongoDB 仍然是開發人員最想學習的技術。

平臺類

Linux 仍然是最受開發者喜愛的平臺,Docker 和 Kubernetes 分別排名第二和第三,後兩者也是開發人員最想學習的平臺,這表明了雲原生技術的興起。Wordpress 仍然是最令人生畏的,其次是 IBM Cloud 或 Watson。

開發環境和工具

開發人員的主要操作系統

幾乎一半的受訪者使用 Windows 作爲其主要操作系統,MacOS 和 Linux 系統的使用人數接近,分別爲 27.5%、26.6%。

協作工具

在調查中,將近 82%的人使用 GitHub 作爲協作工具,而超過一半的人使用 Slack。

研究工具

在研究新工具時,超過四分之三的受訪者喜歡通過免費試用開始整個過程。通過與認識的開發人員交流也很重要,超過 60%的開發人員會這麼做,另也有部分人員會通過 Stack Overflow 社區解決問題。

薪酬較高的技術

技術生態之間的聯繫

不同的技術之間可能都存在着某種聯繫,比如大量 Web 開發技術通過 SQL 連接到微軟技術生態中,以及雲相關的一些技術通過 Linux 連接到數據科學 / 機器學習的生態中。

學習與解決問題

技術處在不斷更新迭代的過程中,技術人同樣如此,大多數受訪者至少每隔幾個月或一年就要學習一次新技術,這反映了創新是如何迅速發生的,並且開發人員正在不斷學習以保持技能更新。

當受訪者遇到問題時,幾乎 90%的人會訪問 Stack Overflow 來解決。

工 作

就業情況

在所有受訪者中,全職開發者佔比 70.9%,學生開發者佔比 12.2%。而在專業開發者中,全職開發者佔比 82.8%,自由開發者和兼職開發者分別佔比 9.5% 和 3.1%,也就是說,92%以上的專業開發者的就業狀況至少是兼職。

按地域劃分的就業情況

美國 78.6% 的開發者爲全職開發者,8.9% 的開發者爲學生,另外有 6.3% 的開發者爲獨立承包商、自由開發者。印度 73.1% 的開發者爲全職開發者,16% 的開發者爲學生,另外有 4.9% 的開發者爲獨立承包商、自由開發者。英國、德國、加拿大的全職開發者佔比均在 70% 以上,印度的學生開發者比例明顯更高。

加 班

今年的報告中首次對受訪者的加班狀況進行了調查,據調查結果顯示,26.7% 的受訪者每月會有 1-2 天加班時間,但不是每週都會加班。值得一提的是,有 25.5% 的受訪者表示會經常加班,每星期都會有 1-2 天甚至更長的時間處於加班狀態,僅有 10.9% 的開發者從來不加班。

公司規模

開發者們選擇入職的公司規模大小不一,其中 45.7% 的公司爲員工不足百人的小型公司,29.3% 的公司爲員工千人級以上的大公司。

開發者如何看待他們的工作

從整體上看,開發者對他們的工作還是比較滿意的,63.1% 的受訪者表示對他們的工作較爲滿意,8.3% 的受訪者則對他們的工作極爲不滿。

求職狀態

57.6% 的受訪者表示他們並沒有主動尋求跳槽機會,但是也願意接受新的機會,25.1% 的受訪者對於新的工作機會並不感興趣,也有 17.3% 的受訪者在積極尋找工作機會。

哪些人在積極尋求跳槽機會?

如果按職位職能劃分數據,則超過 20%的學術研究員、數據科學家或機器學習專家以及數據 / 業務分析師在積極尋找新的工作機會,其中,學術研究員是對其工作滿意度最低、最渴望跳槽的人羣。

跳槽因素

今年的報告中,我們首次對開發者的跳槽原因進行了探究。在衆多跳槽因素中,70% 的受訪者表示更高的薪水成爲了他們跳槽的最主要原因,想要使用新技術成爲僅次於薪水的第二大跳槽原因,其他驅使他們跳槽的因素還包括對新機會的好奇、成長 / 升職空間、更好地平衡工作和生活佔比等。

求職時如何瞭解一家公司

在問到受訪者如何瞭解一家公司時,得到了一些不同的答案。69.6% 的受訪者表示他們會通過查看 Glassdoor 和 Blind 等第三方網站上的評論來側面瞭解公司。也有不少受訪者表示會通過閱讀公司資料來了解公司。另外也有相當一部分人羣會通過個人關係網、朋友或家人來了解公司。

影響開發者選擇工作的因素

受訪者選擇工作時最先考慮的三大因素分別是:

工作中需要用到的技能;

辦公環境和公司文化;

辦公時間的靈活性;

有趣的是,受訪者認爲選擇工作時最不重要的因素分別時公司的資金狀況、將入職的部門或團隊以及公司的多樣性。

但是,如果按照性別劃分,選擇工作時各項因素的重要性則有所不同。其中,男性受訪者擇業時最看重的三大因素與全體受訪者調查結果一致,而 48.3% 的女性受訪者則認爲公司文化是最重要的因素之一,工作時間的靈活性次之。

薪水

從全球受訪者中可以看出,技術經理、SRE、DevOps 專家和數據工程師往往會獲得較高的薪水。其中技術經理的薪水 9.2 萬美元,是所有崗位中收入最高的人羣,而學術研究員的薪水爲 4.1 萬美元,是所有崗位中收入最低的人羣。此外,從報告中可以看出,美國受訪者的整體薪資水平要高於全球受訪者的薪資水平,美國收入最高的三個崗位分別是技術經理、SRE 和數據科學家。

開發者薪水和經驗

從調查結果可以看出,具有更多經驗的開發者往往會要求更高的薪水。在相同工作經驗的情況下,數據工程師、SRE 和 DevOps 專家的薪水要比其他崗位高得多,而設計師、移動開發者和教育工作者的薪水往往低得多。

開發者使用語言與薪資和經驗的關係

不同開發者使用的編程語言對其年薪也有所影響。對於大多數語言來說,薪水和編程經驗之間的關係是線性的。但是,在編程經驗相等的情況下,使用 Scala、Ruby 和 Go 語言的開發者獲得的薪資要高於其他語言使用者,而這些語言通常都被收入較高的數據科學家們使用。

開發者每週工作時間

在全球範圍內,超過 75%的開發人員每週工作時間少於 45 小時。在按照崗位劃分時,高級主管、技術經理和產品經理的工作時間往往更長。在按照國家劃分時,美國受方者的每週工作時間高於加拿大、發國、印度等國家。

參考閱讀:

https://insights.stackoverflow.com/survey/2020#developer-profile-age-and-experience-by-country-average-years-of-coding-experience

「參與創作,免費領取InfoQ 編輯訓練營內訓課程」在寫作平臺上僅需上傳 3+ 篇文章,即可免費領取 InfoQ 內訓課程~投稿越多、文章越走心、閱讀量越高還可挑戰更高獎項!掃碼瞭解活動詳情:

點個在看少個 bug?

相關文章