Stack Overflow作为全球最大的程序设计领域的问答网站,每年都会出据一份开发者调查报告。近日,Stack Overflow公布了其第9次年度开发者调查报告(https://insights.stackoverflow.com/survey/2019),这份报告基于对9万 Stack Overflow用户的调查。涉及众多领域,今天,挑其中和广大开发者最息息相关的几个重点调查结果给大家介绍一下。

这份报告的受访者主要是国外的开发者,其中的数据并不能完全的反应中国开发者的实际情况,但是也可以从一些侧面看出整个行业的一些信息。

这份报告还可以揭示几个一直困扰开发者的问题的答案,如:

1、哪种编程语言的开发者最赚钱? 2、Eclipse和Intellij哪个更受欢迎? 3、程序员可以干到多少岁? 4、哪种编程语言最受开发者欢迎? 5、国外程序员真的没有996吗? 6、到底要不要做Code Review?

接下来我们主要从技术、工作、开发者、薪水等4个方面展开,分析下这份报告。

一、关于技术

在Stack Overflow每年的报告中,都会对开发者所使用的技术做比较详尽的调查,其中包含编程语言、常用框架、甚至使用的操作系统等。

先来一张Stack Overflow描绘的技术全景图,方便开发者们了解自己所使用的技术所在的位置,以及和其他技术的关联性。

最常用的开发语言

在所有技术中,编程语言是必不可少的一项调查要素,今年的调查结果显示,目前使用量比较大的编程语言前五分别是JavaScript、HTML/CSS、SQL、Python和Java。

连续第7年,JavaScript是最常用的编程语言。Python一路飙升,从去年的第七名一跃跻身前五,超过Java位居第四。

最喜欢的编程语言

和往年一样,Rust是全球开发者最喜欢的编程语言。Python在今年的调查中相比去年上升1名,位列亚军。

使用最广泛的开发框架、数据库

最常用的框架中,jQuery排名第一,Java系的Spring排名第六,相比去年下降一名。

最常用的数据库中,MySQL位居榜首

最喜欢数据库

在关于最喜欢的数据库的调查中,非关系型数据库相比于关系型数据库更受欢迎一些,其中Redis是最最受欢迎的。

最流行的开发工具

下面是开发者常用的开发工具排行榜。Java开发者日常使用的IntelliJ和Eclipse分别位列第4和第8名。和去年相比,IntelliJ上升了1名,而Eclipse下降了1名。

看来IntelliJ和Eclipse之争,广大开发者已经给了我们答案。

二、关于工作

每年的报告中都会披露一些和程序员工作相关的数据,今年也不例外,这里我们简单展示几个可能有些参考性的数据。

工作时长

今年的报告结果中多了一项关于工作时长的数据,我们通过下图可以看到,一周中,超过半数的人的工作时长在40-44小时之间,按照每周5个工作日计算,相当于每天工作8-9个小时。

按照996的工作进行计算,一周大概需要工作72小时,那么受访者中只有2%的人达到了这个工作强度。

如果是在国内展开这项调查,相信结果会有很大不同吧。

所在行业

软件开发涉及到各个行业,报告中前几名分别是其他行业、信息技术、金融银行类、SaaS服务和Web开发等。

不知道你所在行业在上图中的哪个位置呢?

最近一次换工作是多久之前

关于工作的更换,其中最多的人,超过3成是一年内刚刚换过工作的,不知道是不是有一些也是因为受到了互联网寒冬的影响?不知道这其中有多少人是拿到过N+1的?

看来国外开发者换工作也是比较频繁的,这点和国内没有太大差异。

工作选择最关心什么

此次调查,Stack Overflow让开发者选择了自己在选择工作的时候最关心的事情,结果显示,超过一半的人对公司的技术栈是最关心的,其次是工作环境和公司文化,然后是灵活的工作时间。

看来国外开发者都不缺钱,工作选的时候,薪水的多少并不是很在乎。

工作中是否做CodeReview

关于CodeReview,其中超过70%的开发者在工作中会做CodeReview,其中大部分是因为自己自己到CodeReview的价值,少部分是因为公司要求。

那么,你呢?你做Code Review吗?

二、关于开发者

年龄

软件行业一直是一个对年龄比较敏感的行业,很多人都担心程序员到底可以干到多少岁?

这份报告给出了答案,对于所有的受访者,年龄介于20-30岁之间的有近50%,30-40岁之间的有30%,超过40岁的还有15%左右。

所以,很多人担心是不是程序员只能干到30岁?这份报告显示其实超过30岁的程序员还是大有人在的。

但是话又说回来,中国的人口基数是要比国外多一些的,所以竞争就会大一些,作为技术工种,建议所有读者还是要建立起自己的技术壁垒,提高自己的不可替代性。

编程年限

程序员的工作年限跨度很大,报告从5年内到50年以上的数据都有,其中超过1/5的程序员的编程经验在5年内,工作经验在10年内的人数超过了一半。

编程是不是自己的爱好

爱好是人最好的老师,那么编程是你的爱好吗?

超过80%的开发者是喜欢编程的。

二、关于薪水

工作年薪与开发者类型对薪水的影响

下图描述了工作年限以及开发者类型对薪水的影响。很明显,工作年限越久,工资越高。但是,有些类型的开发者在同样的年限可以拿到更高的薪资。

从图中可以看出,与数据打交道的开发人员(数据科学家和工程师)以及在DevOps和站点可靠性方面工作的开发人员的经验水平较高,而学术研究人员和教育工作者的经验水平较低。

工作年薪与编程语言对薪水的影响

下图中,有一条蓝色的实线,在实线上面的语言,如Clojure、Scala、Go、Rust和R的开发人员,拥有越丰富的经验,就会获得更高的报酬。但是实线下方的语言,如PHP、VBA等,即使有多年的经验,工资也会更低。可以看到Java目前处于实线的阴影范围的边缘。

图中圆圈的大小表示与其他语言相比,有多少开发人员正在使用这种语言。

哪种编程语言的开发者最赚钱

下图中是各类编程语言的开发者的年薪。可见,越是常用的开发语言,工资越低。

Java语言开发者年薪大概是5.2万美元(去年是9万美元),是所有开发者中赚的最少的。相对比较赚钱的开发语言是Clojure、F#、Go以及Scala。

国内的Java开发者们,你们的粘性有达到5万美元吗,对于Java开发者赚钱最少这件事情,你有什么看法呢?

好了,以上就是这份报告的解读,如果你有什么想说的,欢迎留言。

往年报告分析:

Stack Overflow 2018 开发者调查报告出炉

高效学习新技术的10种方法——总结自StackOverflow 2017开发者调查

Java开发者薪资最低?程序员只能干到30岁?国外真的没有996?Intellij真的比Eclipse受欢迎?的更多相关文章

  1. Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

  2. Java 常用排序算法/程序员必须掌握的 8大排序算法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...

  3. java 书籍推荐 JavaEE程序员必读图书大推荐

    java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...

  4. 在Java大环境下.NET程序员如何夺得一线生机

    先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜:   笔者从业十余年,一直是在.NET圈子 ...

  5. 程序员应该知道的几个国外IT网站

    程序员应该知道的几个国外IT网站   摘要:文中总结了几个常用的国外IT网站,下面列举出来供大家学习参考: 导读:文中总结了几个常用的国外IT网站,下面列举出来供大家学习参考: 1. TheServe ...

  6. 少走弯路,给Java 1~5 年程序员的建议

    参考:https://www.jianshu.com/p/5681a1f0aad6 今天LZ是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍.这一部分的内 ...

  7. 为什么用 Java:一个 Python 程序员告诉你

    这篇文章专门给程序员写的,普通读者慎入.原作者:Kevin Sookocheff 译者:Celia Zhen,原文点击文末链接. 每当我告诉别人我一直在用Java工作时,大家的反应都是: “纳尼!Ja ...

  8. 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

        Java学习路线图引言:        黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...

  9. 在培训机构花了好几万学Java,当了程序员还常被鄙视,这是招谁惹谁了?

    在之前的文章中说过,我是非计算机专业,通过参加培训进入程序员这行的. 入了程序员这行后,挺长一段时间在亲戚朋友中,我还是挺有面子的:家族里的第一个程序员,工作不用风吹日晒,收入比其他行业高不少,尤其是 ...

随机推荐

  1. 帝国CMS(EmpireCMS) v7.5 前台XSS漏洞分析

    帝国CMS(EmpireCMS) v7.5 前台XSS漏洞分析 一.漏洞描述 该漏洞是由于javascript获取url的参数,没有经过任何过滤,直接当作a标签和img标签的href属性和src属性输 ...

  2. 关于c++中的复合类型

    目录 数组 字符串 结构体 共用体 枚举 指针 数和指针的关系 常见的存储方式 数组替代品 一.数组 存储在每个元素中值的类型 数组名 数组中的元素数 通用格式:typename arrayname ...

  3. GStreamer基础教程07 - 播放速率控制

    摘要 在常见的媒体播放器中,通常可以看到快进,快退,慢放等功能,这部分功能被称为“特技模式(Trick Mode)”,这些模式有个共同点:都通过修改播放的速率来达到相应的目的. 本文将介绍如何通过GS ...

  4. nginx单机1w并发优化

    目录 ab工具 整体优化思路 具体的优化思路 编写脚本完成并发优化配置 性能统计工具 tips 总结 ab工具 ab -c 10000 -n 200000 http://localhost/index ...

  5. 字符串匹配算法之————KMP算法

    上一篇中讲到暴力法字符串匹配算法,但是暴力法明显存在这样一个问题:一次只移动一个字符.但实际上,针对不同的匹配情况,每次移动的间隔可以更大,没有必要每次只是移动一位: 关于KMP算法的描述,推荐一篇博 ...

  6. Flink的TaskManager启动(源码分析)

    通过启动脚本已经找到了TaskManager 的启动类org.apache.flink.runtime.taskexecutor.TaskManagerRunner 来看一下它的main方法中 最后被 ...

  7. python初级知识

    一级标题 空格+内容 二级标题 空格+内容 有序内容 1.+Tab 无序内容 -+Tan 代码块 print("hello world") 三个```+回车 添加图片 表格创建 C ...

  8. k8s集群部分常见问题处理

    目录 部分常见问题处理 Coredns CrashLoopBackOff 导致无法成功添加工作节点的问题 添加工作节点时提示token过期 kubectl 执行命令报“The connection t ...

  9. jasypt

    jasypt-1.9.0.jar import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; public class EncryptUt ...

  10. KDTree 板子

    从杨哥哪里偷的板子, 存一下. #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.t ...