近日,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)的开发者的薪资更少,即使有数年的开发经验。图中圆点的大小表示相较于其他语言有多少开发者正在使用这一语言。
领取专属 10元无门槛券
私享最新 技术干货