近日,Stack Overflow 公佈了其第八次年度開發者調查結果,這次參與者超過 10 萬人,創下歷史新高。本次的調研內容涵蓋開發者基本情況、技術、工作、社群、方法論等多個方面。機器之心重點編譯了有關開發技術的內容,同時也涉及開發者的薪資待遇,更多詳細內容請參見文末連結。
調查地址:https://insights.stackoverflow.com/survey/2018
概覽
Stack Overflow 2018 開發者調查有超過 10 萬開發者參與,告訴 Stack Overflow 他/她們如何學習、如何規劃職業、使用什麼工具以及在工作中的追求。
每一年,Stack Overflow 都會向開發者社群進行調查,從開發者最喜歡的技術到工作偏好等等。今年是 Stack Overflow 第八次釋出年度開發者調查結果,此次調查受訪者數量是歷年最高。今年 1 月份有超過 10 萬名開發者參加了 30 分鐘的調查。
DevOps 和機器學習在今天的軟體行業中是很重要的趨勢。這些工作中涉及的語言和框架的數量正日漸增長,在這些領域工作的開發者擁有最高的薪水。
只有很少一部分開發者稱他們會編寫不道德的程式碼,或者說他們沒有義務考慮程式碼的倫理性,但是受訪者也能看到大量道德灰色地帶。開發者並不確定他們會如何報告道德問題,且在對不道德程式碼的責任問題上存在分歧。
整體上,開發者對人工智慧技術帶來的益處是樂觀的,但對於 AI 的危險性存在分歧。
調查中,Python 在程式語言的排行有所上升,在今年的流行度排行中超過了 C#,正如它去年超過了 PHP。
在評估一項工作時,不同型別的開發者考慮不同的優先事項。女性開發者稱她們的最優先事項是公司文化和職業發展機會,而男性開發者稱他們的最優先事項是薪酬和具體的技術。
Stack Overflow 將把調查的匿名結果放在 Open Database License (ODbL)上提供下載。
下載地址:https://opendatacommons.org/licenses/odbl/1.0/
開發者型別
將近 60% 的受訪者是後端開發者,大約 20% 是移動端開發者。每個開發者的涉及型別的中位數是 2,最常見的組合是前端、後端和全棧開發者。高度關聯的組合是資料庫管理員和系統管理員、開發運營專家和系統管理員,以及設計師和前端開發者。
性別
Stack Overflow 調查了受訪者的性別,發現超過 90% 的受訪者是男性。根據 Quantcast,女性佔 Stack Overflow 美國流量的 10%;今年,9% 的美國調查受訪者是女性。在包含美國、印度和英國的區域中,女性學生開發者佔學生開發者的比例略高於女性專業開發者佔專業開發者的比例。
技術
程式設計、指令碼和標記語言
在過去六年來,JavaScript 一直是最常用的程式語言。Python 的排名有所上升,在今年超過了 C#,正如它去年超過了 PHP。Python 堅定主張要成為「最快速成長的主流程式語言」。
專業開發者和所有開發者在技術選擇上的偏好相近。
框架、庫和工具
Node.js 和 AngularJS 仍然是這一類別中最常用的技術,React 和 .Net Core 的排名也很靠前。
資料庫
和去年一樣,MySQL 和 SQL Server 仍然是最常用的資料庫。
平臺
Linux 和 Windows Desktop 或 Server 是最常用的開發平臺。
最喜愛、最討厭和最關注的語言
Rust 連續第三年成為受訪者最喜愛的程式語言,第二名是 Kotlin,它是今年第一次加入調查的語言。該結果表明更多的開發者希望繼續使用這些語言,而不是其它語言。
同樣是連續三年,Visual Basic 被列為最討厭的程式語言。這意味著目前從事技術的開發者有很大一部分對學習和使用它們不感興趣。
Python 連續兩年被列為最受開發者關注的語言,這意味著那些還沒用過 Python 的開發者最希望學的就是 Python。
最喜愛、最害怕和最關注的框架、庫和工具
TensorFlow 在 Stack Overflow 社群是增長最快的技術之一,它深受資料科學家、演算法工程師和機器學習工程師的喜愛。相比之下,Cordova 是最讓人討厭的框架。此外,React 是開發者最想要使用的 UI 框架。
最喜愛、最害怕和最關注的資料庫
Redis 連續第二年成為最受喜愛的資料庫,這意味著更多的開發者想要繼續使用 Redis,而不是其他資料庫。IBM's Db2 是開發者最討厭的資料庫,MongoDB 第二年成為開發者最關注的資料庫。
最喜愛、最害怕和最關注的平臺
Linux 再次成為開發者最喜愛的開發平臺,今年 Serverless 也很受歡迎。Sharepoint 連續第二年成為開發者最討厭的平臺,很多開發者最想在 Android 平臺和樹莓派上進行開發工作。
最常用的開發環境
Visual Studio Code 略微領先 Visual Studio,成為最流行的開發環境工具,但不同型別的開發者有不同的選擇。移動 app 開發者更傾向於選擇 Android Studio 和 Xcode,DevOps 和系統管理者的最常選擇則是 Vim,資料科學家更可能選擇 IPython/Jupyter、PyCharm 和 RStudio。
全球最高薪酬開發者職位涉及的語言
在全世界,使用 F#、Ocalm、Clojure 和 Groovy 語言的開發者擁有最高的薪酬,薪酬中位數是 7 萬美元年薪。不同區域的最高薪酬職業涉及語言是有區別的。美國的 Erlang 和 Scala 開發者享有最高的薪酬,而印度的 Clojure、Erlang 和 Haskell 開發者享有最高的薪酬。
技術的關聯性
技術聚合在一起形成相關聯的生態系統,可以被開發者使用。從上圖中我們可以看到,中間的較大簇是 web 開發技術(使用 JavaScript、HTML 和 CSS),該簇以通過 SQL 與微軟技術聯絡起來(微軟技術包括 C#、Visual Studio、.NET Core)。左邊是一個簇,將 Java、Android、iOS 和 Linux、bash/shell、Python 聯絡起來。其他較小的簇包括 Scala/Spark、C/C++和其他小型技術(如特定語言的 IDE)。
開發者認為 AI 哪些方面最危險?哪些方面最讓人激動?
現在一些開發者在參與機器學習和人工智慧研究,因為我們詢問開發者他們對這些技術的看法。關於 AI 最危險的方面,眾口不一,各選項佔比大致相同。而認為 AI 發展最令人振奮的一點最高選項是工作自動化。
工作
行業
軟體開發者分佈在不同的行業之中,而不僅限於技術行業。上圖主要聚焦於今年的技術行業,並且在這些選擇中,更專業的開發者在網頁開發、IT 和 SaaS 公司工作,其他行業的開發者,比如諮詢和醫療,具有更多年的專業開發經驗。相比於網頁開發/設計或電子商務開發者,這些行業的開發者從業超過 20 年的可能性是前者的 2 倍。
不同型別開發者的薪水
工程經理、DevOps 專家和資料科學家有著最高的薪資。平均的高收入者因地理位置而變化。比如在印度,資料科學家是高收入人群,而在歐洲國家,後端開發者和嵌入式裝置開發者是高收入人群。
薪水與不同型別開發者的經驗
通常,擁有更多年經驗的開發者所獲薪資更高。但是,我們也看到在經驗相同的情況下,一些型別的程式碼工作獲得了更高的薪資,比如資料科學家和 DevOps 專家。
薪水與語言開發經驗
即使在經驗不多情況下,使用上圖中黃線以上語言(比如 Go、Clojure 和 F#)的開發者的薪資也更高;而使用黃線以下語言(比如 PHP 和 Visual Basic 6)的開發者的薪資更少,即使有數年的開發經驗。圖中圓點的大小表示相較於其他語言有多少開發者正在使用這一語言。