近日,Stack Overflow《 2020 年開發人員調查》報告出爐,這是 Stack Overflow 開展對開發人員年度調查的第 10 年,可以說是見證軟體行業鉅變與更迭的十年。該報告基於對來自全球 186 個國家的 65000 名軟體開發人員的調查得出。調查於 2020 年 2 月 5 日至 2 月 28 日進行。
報告亮點:
  • 在全球範圍內,使用 Perl,Scala 和 Go 的開發人員薪水最高,中位數約為 $ 75k。有趣的是,Perl 也是最令開發者生畏的語言之一。
  • 技術經理、SRE、DevOps 專家和資料工程師往往會獲得較高的薪水。其中技術經理的薪水 9.2 萬美元,是所有崗位中收入最高的人群,而學術研究員的薪水為 4.1 萬美元,是所有崗位中收入最低的人群。
  • Rust 連續第 5 年蟬聯最受喜愛的技術榜首;
  • JavaScript 連續八年保持其最普遍使用的程式語言榜首,Python 略高於 Java 排名第四。
  • 35 歲以下的開發者佔比 72.1%,超過 54% 的開發人員在 16 歲之前寫出了他們的第一行程式碼。
  • 超過 75% 的開發人員至少偶爾加班,每個季度加班一到兩天。25% 的人每週加班 1-2 天或更多,僅有 10.% 的開發者從來不加班。
  • 70% 的受訪開發人員表示更高的薪水是他們跳槽的最主要原因。
開發者簡介

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

國家分佈

接受調查的開發者來自全球,其中來自美國(19.49%)、印度(13.12%)、英國(6.09%)、德國(6.08%)的開發人員居多,來自中國的開發人員佔比 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 年。

技   術
最普遍使用的技術

程式設計,指令碼和標記語言類

毫無意外,JavaScript 連續八年保持其最普遍使用的程式語言榜首。Python 略高於 Java 排名第四。此外,TypeScript 在常用性方面高於 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 應用程式。

根據調查結果,43% 的 Rust 專案程式碼量在 1000-10000 行,程式碼量超過 10000 行的專案也在逐年增加,從 2016 年的 8.9% 增長到 2017 年的 16%,再到 2018 年的 23%,在這次 2019 年調查報告中已經增長到了 34%。

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

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

如果檢視開發人員不使用但想學習的技術,Python 連續第四年位居榜首,JavaScript、Go 和 TypeScript 不相上下,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 社群解決問題。

薪酬較高的技術

在全球範圍內,使用 Perl,Scala 和 Go 的受訪者薪水最高,中位數約為 $ 75k。有趣的是,Perl 也是最令開發者生畏的語言之一。因此,高昂的薪水可能也是因為該領域的開發人員數量匱乏。

技術生態之間的聯絡

不同的技術之間可能都存在著某種聯絡,比如大量 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 等第三方網站上的評論來側面瞭解公司。也有不少受訪者表示會通過閱讀公司資料(包括公司部落格和視訊)來了解公司。另外也有相當一部分人群會通過個人關係網、朋友或家人來了解公司。

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

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

  • 工作中需要用到的技能(51.3%);
  • 辦公環境和公司文化(44.5%);
  • 辦公時間的靈活性(43.9%);

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

但是,如果按照性別劃分,選擇工作時各項因素的重要性則有所不同。其中,男性受訪者擇業時最看重的三大因素與全體受訪者調查結果一致,而 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所有。