Java开发者薪资最低?程序员只能干到30岁?国外真的没有996?Intellij真的比Eclipse受欢迎?
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开发者赚钱最少这件事情,你有什么看法呢?
好了,以上就是这份报告的解读,如果你有什么想说的,欢迎留言。
往年报告分析:
高效学习新技术的10种方法——总结自StackOverflow 2017开发者调查
Java开发者薪资最低?程序员只能干到30岁?国外真的没有996?Intellij真的比Eclipse受欢迎?的更多相关文章
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
- Java 常用排序算法/程序员必须掌握的 8大排序算法
Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...
- java 书籍推荐 JavaEE程序员必读图书大推荐
java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...
- 在Java大环境下.NET程序员如何夺得一线生机
先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜: 笔者从业十余年,一直是在.NET圈子 ...
- 程序员应该知道的几个国外IT网站
程序员应该知道的几个国外IT网站 摘要:文中总结了几个常用的国外IT网站,下面列举出来供大家学习参考: 导读:文中总结了几个常用的国外IT网站,下面列举出来供大家学习参考: 1. TheServe ...
- 少走弯路,给Java 1~5 年程序员的建议
参考:https://www.jianshu.com/p/5681a1f0aad6 今天LZ是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍.这一部分的内 ...
- 为什么用 Java:一个 Python 程序员告诉你
这篇文章专门给程序员写的,普通读者慎入.原作者:Kevin Sookocheff 译者:Celia Zhen,原文点击文末链接. 每当我告诉别人我一直在用Java工作时,大家的反应都是: “纳尼!Ja ...
- 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具
Java学习路线图引言: 黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...
- 在培训机构花了好几万学Java,当了程序员还常被鄙视,这是招谁惹谁了?
在之前的文章中说过,我是非计算机专业,通过参加培训进入程序员这行的. 入了程序员这行后,挺长一段时间在亲戚朋友中,我还是挺有面子的:家族里的第一个程序员,工作不用风吹日晒,收入比其他行业高不少,尤其是 ...
随机推荐
- flask入门 七行代码讲解
# 导包 从flask里面导入Flask这个对象.from flask import Flask # 实例化一个对象,app = Flask(__name__) # 里面的 __name__ 是为了定 ...
- Java 从入门到进阶之路(二)
之前的文章我们介绍了一下用 IDEA 编辑器创建一个 Java 项目并输出 HelloWorld,本章我们来看一下 Java 中的变量和基本数据类型. 在这之前我们先来看一下 Java 中的关键字,这 ...
- H5对自定义属性的规定和添加获取自定义属性的方法
H5对自定义属性的规定和添加获取自定义属性的方法 元素属性那么多,如何区分是自带的属性还是默认的属性呢? H5规定自带的属性有个data- 前缀,如data-index="1" & ...
- 从无到有构建vue实战项目(七)
十四.Vuex的使用 Vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vu ...
- egret之粒子系统
1.添加粒子库,放在项目同级目录下(必须!!必须!!) 2.添加路径: 3.添加代码: private creatParticle(_pname: string, _target, _x: numbe ...
- zookeeper学习之原理
一.zookeeper 是什么 Zookeeper是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等.这一切的基础,都是Zookeeper提供了一个类似于Linux文件系统的树 ...
- 持续集成高级篇之Jenkins Pipeline git拉取
系列目录 PipeLine中拉取远程git仓库 前面讲自由式任务的时候,我们可以看到通过自由式job里提供的图形界面配置git拉取非常方便的,实际上使用PipeLine也并不复杂.这一节我们展示一下如 ...
- 【凭据不工作】Win远程桌面提示您的凭据不工作
1.浏览器直接进入云服务器 2.打开运行 --输入gpedit.msc--计算机配置--管理模板--windows组件--远程桌面服务--远程桌面会话主机--安全--远程(RDP)链接要求使用制定的安 ...
- Jmeter 之测试片段、Include Controller、模块控制器应用
一.测试片段是什么? 应用在控制器上的一个特殊线程组,与线程组处于同一层级,必须与Include Controller或模块控制器一起使用才被执行. 二.应用场景 1.当jmeter脚本非常复杂的时候 ...
- 表单模糊查询的三种简单方式(springboot-h2-mybatis)
前几天运营提到说后台管理系统有几个地方想要模糊查询.. 想了下是简单的,就是要注意以前方法的被调用情况,进行增量改动,以免牵一发而动全身.整理一波记录下(本次案例是按名字模糊查询学生信息). 三种 ...