史上最全程序员调查报告:一半开发者是全栈,七成认为自己能力高于平均水平
來源 | Stack Overflow Blog
譯者 | 張嬋、Debra
Stack?Overflow?的年度開發者調查是面向全球開發者的規模最大、最全面的調查,每年的調查內容會涵蓋開發人員最喜歡的技術以及工作偏好等內容。今年是?Stack?Overflow?連續第九年進行開發者調查,吸引了將近?9w?名開發人員參加。
作為全世界最流行,最頂級的技術問答社區,Stack?Overflow?的開發者調查具有相當的權威性。今年的調查中有不少亮點,還有很多“萬萬沒想到”,比如?Rust?才是最受喜愛的編程語言,但?Python?增長最快,已經超過?Java?在開發者最喜愛的編程語言榜中排名第二;中國的開發者最樂觀,他們認為現在的人會比父母輩擁有更好的生活;學術研究工作者的薪酬較低,對工作的滿意度也最低,積極尋找新的工作機會主動性也較強。
以下是本次調查報告的一些主要結果:
-
Rust?是最受喜愛的編程語言,Python?則是增長最快的。今年?Python?超過?Java?在開發者最喜愛的編程語言榜中排名第二。
-
超過一半的受訪者在十六歲時編寫了第一行代碼,但這種情況因國家和性別而異。
-
DevOps?和?SRE?專家是薪酬最高、經驗最豐富、對工作最滿意的人員,并且他們正在尋找尋找面向更底層業務的新工作。
-
中國的開發者最樂觀,他們認為現在的人會比父母輩擁有更好的生活。法國和德國等西歐國家的開發者對未來最悲觀。
-
在考慮阻礙生產力時,不同類型的開發者有不同的挑戰。男性認為非開發工作有挑戰,而女性受訪者更多地認為不良的工作環境會對她們造成阻礙。
-
數據表明?Stack?Overflow?每周為開發人員節省?30?到?90?分鐘的時間!
以下是一些開發者和技術相關的調查結果。
多圖預警!!!
一半開發者是全棧開發人員
約有?50%?的受訪者是全棧開發人員,約?17%的受訪者認為自己是移動開發者。很多人認為自己的工作是多個角色的組合,最常見的是后端、前端和全棧的相互組合。高度相關的組合包括數據庫管理和系統管理,DevOps?和?SRE,學術研究員和科學家,以及設計和前端開發。
80% 的人編程是愛好
許多開發者是在工作之外編寫代碼。?大約?80%的受訪者表示他們將編程作為業余愛好。?個人其他身份的職責可能減少對編程的參與度:有孩子或其他人需要照顧的開發人員不太可能將編碼作為一種愛好,女性受訪者也不太可能將自己的代碼視為業余愛好。
近一半的開發者編程經驗不足 10 年
大多數開發者的編程經驗不到?5?年,近一半的受訪者表示自己的開發經驗少于?10?年。
超一半開發者在 16 歲時寫下了第一行代碼
無論是網頁制作還是?Hello?World,總體而言有超過一半的受訪者在十六歲時編寫了第一行代碼,但這其中差異很大。與印度和巴西相比,澳大利亞和英國等國家的平均初始編程年齡要早兩年。這其中也有性別的差異:女性編寫第一行代碼的平均年齡要晚于男性。
90% 的開發者為男性
總體來看,90%?的受訪者都是男性。?在美國,印度和英國等地區,學生中的女性開發者比例高于專業開發者中的女性比例。
75% 的專業開發者年齡小于 35 歲
調查結果顯示,75%?的專業開發者年齡小于?35?歲。
年齡、經歷和國家的關系
發展中國家如印度的開發者平均年齡為?25?歲左右,而發達國家如美國、英國、澳大利亞的開發者平均年齡為?32?歲左右。而每個國家開發者的經驗和平均年齡正相關。
70% 開發者自認為能力高于平均水平
近?70%的受訪者表示他們的能力高于平均水平,而不到?10%的受訪者認為他們的能力低于平均水平。
男性比女性更為認可自己的能力。
10 年經驗的開發者對能力更自信
初級開發人員對自己的能力評估較為保守,認為自己的能力達不到平均水平,而且這種影響在有了?10?年經驗后才會好轉。?初級開發人員中存在冒名頂替綜合癥:普遍的自我懷疑,有不安全感以及害怕被欺騙。?受訪者中,男性比女性群體更加自信。
業余生活
這是?Stack?Overflow?連續第二年詢問受訪者是否有孩子或其他家屬要照顧,近?40%的受訪者表示有,數據比去年增加。
那些表示沒有家屬要照顧的開發者平均年齡較小,經驗較少。?超過?60%的?10?年?+?經驗的開發者有子女或其他家屬。
開發者在使用什么社交媒體
在開發者群體中,Reddit?和?YouTube?排第一和第二。但是在現實生活中,Facebook?是全球最受歡迎的社交媒體,而?reddit?在全球排名中甚至沒進前?10。
技術和工具
?最受歡迎的編程語言
編程語言、腳本語言和 markup 語言
JavaScript?連續第?7?年蟬聯最常用的編程語言,但?Python?的排名再次上升,略微超過?Java。?Python?是當今增長最快的主要編程語言。
Web 框架
jQuery?是這些?Web?框架中使用最廣泛的。相比起?Angular,今年更多的開發人員在使用?React.js。
?其他框架、庫和工具
Node.js?是最常用的。?越來越多的開發人員在使用.NET?而不是.NET?Core,深度學習框架中,TensorFlow?比?Torch?/?PyTorch?更受歡迎。
?數據庫
MySQL?蟬聯最常用的數據庫第一名。PostgreSQL?第二,SQL?Server?第三。
最喜愛和最想學的
語言
Rust?連續第四年成為受訪者中最受歡迎的編程語言,緊隨其后的是?Python,這是當今發展最快的主要語言。?這意味著,按比例,更多開發人員希望繼續使用這些語言而不是其他語言。
VBA?和?Objective-C?是今年最可怕的語言。?最可怕的意味著目前使用這些技術的開發人員中有很大一部分表示沒有興趣繼續這樣做。
Web 框架
React.JS?和?Vue.JS?是開發者最喜愛和最想學的框架。Drupal?和?jQuery?是最可怕的框架。
其他框架、庫和工具
.NET?Core?和?Torch?/?PyTorch?在各自的生態系統(分別為.NET?和?Tensorflow)中的使用率都低于其他對標產品,但更受開發人員的喜愛。?Chef?和?Cordova?則當選這一類別中最可怕的工具。
數據庫
Redis?連續第三年成為最受歡迎的數據庫,這意味著與其他數據庫相比,更多開發人員希望繼續使用?Redis。Couchbase?和?Oracle?是最可怕的數據庫,MongoDB?連續第三年成為開發者最想使用的數據庫。
開發環境和工具
?最受歡迎的開發環境
Visual?Studio?Code?是今年開發者環境工具中占主導地位。開發人員類型和角色在工具選擇方面存在差異,但?Visual?Studio?Code?是所有類型開發者的首選。為移動應用編寫代碼的開發人員更有可能選擇?Android?Studio?和?Xcode。Vim?是?DevOps?和?SRE?開發者的流行選擇,數據科學家更有可能在?IPython?/?Jupyter、PyCharm?和?RStudio?環境中工作。
?開發者主要操作系統
約一半受訪者選擇?Windows?操作系統,剩下的人的選擇?MacOS?和?Linux?各占一半。
?容器使用
當被問及他們如何使用?Docker?或?Open?Container?Initiative?等容器技術時,大約一半的受訪者表示他們沒有使用任何此類技術。那些使用容器的人最常將其用于開發工作。
現實世界的區塊鏈
?組織如何使用區塊鏈技術?
我們調查的大多數受訪者表示,他們的組織沒有使用或實施區塊鏈技術,報告顯示區塊鏈最常見用途不在于貨幣。另外,表示其組織正在使用區塊鏈技術最多的是印度開發人員。
?開發者對區塊鏈技術的看法
當被問及他們對區塊鏈技術的基本看法時,我們調查的受訪者對其廣泛的用途持樂觀態度。然而,持樂觀態度的人主要集中在年輕、經驗不足的開發人員。受訪者越有經驗,就越有可能表示區塊鏈技術是對資源的不負責任的濫用。
收入最高的技術
?全球收入最高的相關語言是什么?
在全球范圍內,收入最高的相關語言是?Scala,平均收入為?14.3W?美元;其次為?Clojure,平均薪酬為?13.9W?美元;再次是?Go,平均薪酬為?13.6W?美元;機器學習中受歡迎的?Python?收入為?1.16W?美元,JavaScript?為?1.1W?美元。
相關聯的技術
?技術之間有什么關系?
技術之間相互關聯,形成一個生態系統,同一名開發人員往往會使用該生態系統中的多項技術。該網絡圖通過顯示哪些技術彼此相關度最高來證明這一點。我們在左側看到一個大型集群,這表示?Web?開發(使用?JavaScript、HTML?/?CSS、TypeScript?和?React.js)通過?SQL?連接到微軟的技術(使用?C#、Visual?Studio?和.NET?Core)。在左下角,我們看到一個移動的星座,將?Java、Kotlin、Android?和?SQLite?連接到?iOS?和?Xcode。今年,我們觀察到一系列運營技術,如?Docker、AWS?和?PostgreSQL?通過?Linux?連接到?Python?生態系統網絡。其他較小的相關集群還包括?Scala?/?Spark?/?Hadoop、C?/?C?++?/?Assembly?以及更小的技術,如特定語言的?IDE?或框架。
就業
?就業狀況
超過?90%?的專業開發者至少有兼職工作,全職工作的開發者占比最大,為?73.9%,而專業開發者全職工作的占比更大,為?84.2%。
?就業地理分布
?公司類型
行業
軟件開發人員在技術領域內外的各種行業中工作。在我們今年列出的行業選項中,更多的專業開發人員表示,他們從事通用軟件開發(未另行規定)、IT?和金融?/?銀行業務。在咨詢、政府和非營利組織等行業工作的開發人員擁有多年的專業編程經驗,而從事?Web?開發或?SaaS?工作的開發人員整體編程經驗的中位年數約為開發者整體編程經驗的一半。
公司規模
開發人員在各種規模的公司工作,小型企業到大型企業組織都有。與包括歐洲在內的世界其他地區相比,美國更多的軟件開發人員在大公司工作。開發人員越有經驗,他們就越有可能在一家大公司工作。平均而言,每增加一年的專業編碼經驗,組織規模增加?30?人。
職業價值觀
正如我們在前幾年發現的那樣,開發人員對他們的職業生涯往往比對現在的工作更滿意。工程經理和高級工程主管、SRE?和?DevOps?專家對工作的滿意度最高。工作滿意度最低的開發人員包括學術研究人員、教育工作者、科學家和設計師。
?開發者對管理者的信心
工程管理是一門技術學科,它影響開發人員和他們每天所做的工作。幸運的是,超過?80%的受訪者對他們的管理者了解他們在做什么比較或非常有信心。
?開發者需要成為經理賺更多錢嗎?
當談到他們對把工程管理作為職業的看法時,有一半的受訪者認為他們 不一定需要成為人事管理來繼續漲薪。
?開發者未來想轉向管理層嗎?
受訪者對自己的職業規劃存在分歧,沒有單一的回應占主導地位。那些說自己不想成為管理者的開發人員專業編程經驗是那些想要成為管理者的開發者的兩倍。目前對轉向管理層感興趣的開發人員可能走上這條職業道路,或者有些人會改變他們的想法!
找工作
?求職狀態
只有?15%的受訪者正在積極尋找工作,但近四分之四的開發人員有興趣了解新的就業機會。
?求職狀態地理分布
?誰在積極找工作?
在專業開發人員中,那些擔任高級工程主管、DevOps?專家和?SRE?的人找工作的積極性最低。在學術界和數據科學家(我們知道經常重疊的類別)工作的開發人員正在找工作的占比最高。
?開發者距上一次換工作多久了?
超過一半受訪者表示距上一次換工作在兩年之內;軟件開發者換工作是常態。
?面試經歷
我們今年向專業開發人員詢問了他們上次成功獲得工作的面試過程,以及他們經歷過哪些任務類型或面試。最常見的經歷是接受高級人員和經理的采訪,只有不到?40%的受訪者表示他們被要求寫代碼。女性更有可能被要求完成一個帶回家做的項目(更多的是前端和數據科學)?,并且不太可能和男性一樣被要求解一道和申請工作相關的腦筋急轉彎。
我們還詢問受訪者是否曾被要求在面試中解?Fizz?Buzz,近?15%的受訪者表示有過這種經歷。
?更新簡歷狀態
當被問及他們最后一次更新簡歷時,我們的受訪者大多表示開始找新工作是動機。那些重新進入勞動市場的人表示,原因包括其他領域的職業變化、從軍隊退休,以及全職照顧孩子。
工作中優先考慮的因素
?最重要的工作因素
我們要求受訪者比較兩個薪酬、福利和工作地點相同的工作,并考慮哪些特征會影響他們在兩者之間做出選擇。在考慮工作時,不同類型的開發人員應用不同的優先級策略。在技術領域屬于少數派的開發人員群體在評估新工作時將辦公環境和公司文化列為最關注的點,并且更有可能表示組織的多樣性是他們最關心的問題。
總體上來說,選擇工作時,語言、框架和其他技術是開發者最優先考慮的因素,其次是辦公室環境和企業文化。
?開發者遠程工作的頻率?
大約?12%的受訪者表示他們是全職工作,比兩年前的數字略有增加。全職遠程工作的開發人員的專業編程經驗平均比從未遠程工作的人大?60%。每個月少于?1?次遠程辦公的開發者占比最大,為?43%。
開發實踐
?開發者的工作構成
我們詢問受訪者是否使用時間表或規范來安排規劃他們的工作,只有?20%的人表示他們的工作與這樣的規劃文檔密切配合。那些采用更靈活方法或不使用任何時間表或規范的人更有可能擁有更長時間的專業編程經驗;嚴格按照時間表或規范工作的開發者往往相對經驗更少。
?產出最大的挑戰
當被問及他們對生產力的最大挑戰是什么時,開發人員最常見的回應包括分散注意力的工作環境、會議和與開發無關的工作。性別少數群體受訪者不太可能表示負責非開發工作對他們來說是一個問題,而是不良的工作環境。
?開源軟件的質量
很少有受訪者認為?OSS(開源軟件)比專有或閉源軟件差,但是認為?OSS?通常質量更高和認為兩種類型軟件質量相當的人占比大致相同。不出所料,為開源做貢獻的開發人員更有可能表示?OSS?質量更高。
?代碼評審
你會把代碼評審作為工作的一部分嗎?
?
每周評審代碼時間
?
大多數受訪者表示他們將代碼審核作為工作的一部分,因為這是軟件工程的重要組成部分。不過,這不是大多數開發者每周工作的主要內容。大約四分之三的開發人員表示他們每周花費五個小時或更少的時間來審查代碼。
?單元測試
你的公司進行單元測試嗎?
工作滿意度和單元測試的關聯
我們詢問受訪者他們的組織是否進行開發單元測試,他們絕大多數贊成單元測試,無論目前是否在進行測試。事實上,進行單元測試的公司的開發人員工作滿意度也略高。
?編程時來點音樂集中精神
網絡顯示?56,643?個回復中最常出現的詞匯?;?較大的點表示使用頻次更大,較重的連接線表示更常一起使用的詞。
當被問及什么音樂類型或藝術家更能幫助他們集中注意力時,受訪者的回答包括各種各樣的音樂,如古典音樂、電子游戲或電影配樂,比我們知道的更多種類的重金屬音樂,以及沒有歌詞或人聲的音樂。還有少部分受訪者表示他們更喜歡安靜的環境以集中注意力。
收入
?不同開發者類型的薪資
工程經理、SRE、DevOps?專家和數據科學家?/?工程師薪水最高。從印度到歐洲再到美國,全球平均收入最高的崗位非常一致。
?不同開發者類型的薪水和經驗
當然,擁有更多經驗的開發人員可獲得更多報酬。但是,某些類型的編程工作在相同的經驗水平下獲得的報酬更高。相同經驗水平下,數據相關的開發人員(數據科學家和工程師)以及從事 DevOps 和站點可靠性工作的開發者收入更高,而學術研究人員和教育工作者收入較低。
?不同語言的薪酬和經驗
出現在該圖表中藍線上方,使用 Clojure、Scala、Go、Rust?和?R?語言的開發人員,在相同的經驗條件下獲得更多報酬。?然而,使用藍線下方語言的開發人員,如?PHP、匯編和?VBA,即使有多年的經驗,報酬也更少。此圖表中圓圈的大小表示與其他開發人員相比,使用該語言的開發人員數量。
?每周工作小時數
今年,我們第一次詢問受訪者他們每周工作多少小時,四分之三的人表示他們每周工作時間少于?45?小時。高級管理人員、產品經理和工程經理,以及東歐,印度和美國的開發人員更有可能長時間工作。
?參考鏈接
https://insights.stackoverflow.com/survey/2019
總結
以上是生活随笔為你收集整理的史上最全程序员调查报告:一半开发者是全栈,七成认为自己能力高于平均水平的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 26 款阿里超神 Java 开源项目,看
- 下一篇: 如何在面试中介绍自己的项目经验,很重要!