原文地址:
https://insights.stackoverflow.com/survey/2018
谷歌翻译为主.
概述
今年,超过10万名开发人员告诉我们他们如何学习,建立自己的职业生涯,他们正在使用哪些工具以及他们在工作中需要什么。
每年,我们都会向开发人员社区询问从他们最喜爱的技术到工作偏好的所有内容。今年是我们发布年度开发者调查结果的第八年,也是受访者数量最多的一年。今年1月,超过10万名开发人员参加了30分钟的调查。
今年,我们报道了一些新的主题,从人工智能到编码伦理。以下是今年结果的一些重要内容:
DevOps和机器学习是当今软件行业的重要趋势。与这类作品相关的语言和框架不断上升,在这些领域工作的开发人员的薪水最高。
只有很小一部分开发者表示他们会写不道德的代码,或者他们没有义务考虑代码的道德影响,但除此之外,受访者看到了很多道德灰色。开发人员不确定他们将如何报告道德问题,并对谁最终负责不道德的代码有不同的看法。
开发人员总体上对人工智能提供的可能性持乐观态度,但对AI的危险性并不一致。
在我们的调查中,Python在编程语言行列上升,超过了今年流行的C#,就像去年它超过了PHP一样。在评估未来的工作时,不同类型的开发人员应用不同的优先级。女性认为最重要的是公司文化和专业发展的机会,而男性则认为他们最优先考虑的是薪酬和特定技术。
想自己深入研究结果?在几周内,我们将根据开放数据库许可证(ODbL)对匿名调查结果进行下载。我们期待看到您的发现!
关于DevOps可以看看下面这个知乎上的一个帖子:
你所在的公司是如何实施DevOps的?
https://www.zhihu.com/question/24413538?sort=created
DevOps的三大原则
https://blog.csdn.net/difffate/article/details/77542768
附上DevOps的定义:
DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
开发者简介
我们了解的做长久打算的正在撰写脚本的开发人员(我理解的是专业做编程的人)
开发者角色
开发者类型
前三的是后端,全栈,前端,第四的是移动开发.
数据业务分析,数据科学机器学习8%左右.。
为开源贡献力量
有将近一半的参与过开源贡献.
编码为业余爱好
超过80%的人表示他们将代码视为一种业余爱好。
经验
学习代码的时间
3-5年是主力,10年内占据了大部分.20年以上的很少.
专业编码时间
5年内的人占了一半.
多年的开发人员专业编码经验
工程经理最多.游戏,移动开发,机器学习,前端是后4名.
教育
有多少开发人员是学生
大约四分之一的学生。
教育程度
本科最多,没有学位的很少
本科专业
本科中计算机科学,计算机工程或软件工程,最多.
其他类型的教育
开发人员是终身学习者; 90%的自学。一半的参加了在线课程.
开发人员自己学习的方法
前几名的是文档,论坛,书籍.
为什么开发者参与黑客比赛?
愉快,也是学习机会。
在Bootcamps(我理解是学习班)后找到工作
Bootcamps通常被认为是新人转型为软件开发人员职业的一种方式,最常见的结果是在毕业后立即或即将找到工作。
人口统计学
性别
程旭媛很少
种族与种族
白人多.
性取向
这是我们向受访者询问他们的性取向的第一年。
家长的教育水平
中学17%,本科29$,硕士22%
心理健康与差异
心理健康问题如抑郁和焦虑在我们的受访者中尤其普遍。
经验和性别
上图是男性开发人员的经验。两年以下的女性比男性多两倍.
开发者角色和性别
虚线表示男性与女性参与的平均比例
在我们的调查中,我们看到不同开发人员角色的男女代表不同。所有类别的男性和女性比例显着高于女性,但男性和女性的比例各不相同。作为教育工作者或学术研究人员的开发人员比男性成为男性的可能性大约是女性的10倍,而开发者是系统管理员或DevOps专家的可能性是男性的25-30倍。作为学者,QA开发人员,数据科学家和设计师,女性的代表人数最多。
年龄
大约四分之三的参与调查的专业开发人员年龄小于35岁。
年龄和国家的经验
Stack Overflow的开发人员年龄较大,在澳大利亚,西欧国家以及北美和更年轻的国家拥有更多经验,在印度和俄罗斯等国家的经验较少。
连接和竞争
亲属关系,竞争和自我评估
70%的开发人员满意同其他开发人员的关系。与同行相比,开发人员对自己的技能总体上充满信心,只有18%的人认为不像他们的同事那样擅长编程。
经验和归属感
受访者对他们的归属感以及他们如何融入同伴的感受随着他们拥有多少经验而改变。更有经验的开发人员感觉更连接,更自信,竞争力更低。注意,感觉不太熟练的人会随着经验而快速下降,而感觉竞争力下降的程度会逐渐下降,并继续下降到编码体验的第二个十年。
生活在工作之外
儿童和其他家属
今年,我们询问受访者是否有孩子或他们关心的其他家属,约四分之一的受访者表示他们这样做。我们在一个免费的回答问题中询问了这些开发者在工作时间为依赖性护理所做的事情,我们的受访者谈到了诸如学校,配偶/伴侣和日托等选项。
那些表示他们没有家属照顾的开发者平均比那些年轻的开发者年轻。超过30%的无家属的开发者年龄小于25岁,而有家属的年轻人中只有5%的年龄小于25岁。具有10年或10年以上专业编码经验的开发人员中,有近60%的人有子女或其他家属。
开发者什么时候醒来?
我们有信心,大多数开发人员都在深夜里拉了一夜,但大多数受访者表示他们早上8点起床。
开发人员在计算机上花费多少时间?
我们的受访者包括代码为专业人员,学生和业余爱好者的人员。绝大多数人在桌面和笔记本电脑的典型日子里花费大部分时间清醒时间。
开发者在外面花费多少时间?
开发人员因娱乐,通勤或其他原因而外出。大约一半的受访者在一天之外花费了一个小时以上。
健康习惯
开发人员如何跳过餐以生产?
开发商告诉我们,他们不会经常因为工作量而跳过饭菜,而且大多数人表示他们至少有一部分运动。超过60%的受访者至少每周锻炼一次,但最常选择的锻炼频率是“从不”。
技术
交易的工具
最受欢迎的技术
编程,脚本和标记语言
在连续第六年,JavaScript是最常用的编程语言。Python的排名已经上升,今年超过了C#,就像去年超过了PHP一样。Python坚决宣称自己是增长最快的主要编程语言。
我们看到专业开发人员和整体开发人员的技术选择紧密结合。
框架,库和工具
Node.js和AngularJS仍然是这一类中最常用的技术,React和.Net Core对许多开发人员也很重要。
数据库
和去年一样,MySQL和SQL Server是最常用的数据库。
平台
Linux和Windows桌面或服务器是我们的受访者表示今年已完成开发工作的最常见选择。
最受喜爱,可怕和想要的
最受喜爱,最恐怖和最受欢迎的语言
喜爱
正在用语言或技术进行开发并且表示有兴趣继续与之共同开发的开发人员的百分比
连续第三年,Rust是我们受访者中最受欢迎的编程语言,紧随其后的是Kotlin,这是我们今年调查中第一次问到的语言。这意味着,相比之下,更多的开发人员希望继续使用这些语言,而不是其他语言。
也是连续第三年,Visual Basic 6被列为最令人害怕的编程语言。最可怕的是,目前正在使用该技术的开发人员中很大比例的人表示没有兴趣继续这样做。
Python是连续第二年成为最受欢迎的语言,这意味着它是最不经常使用它的开发者说他们想学习的语言。
最受喜爱,可怕,想要的框架,图书馆和工具
喜爱
正在用语言或技术进行开发并且表示有兴趣继续与之共同开发的开发人员的百分比
TensorFlow是Stack Overflow发展最快的技术之一,最受开发者青睐,而Cordova则是最令人害怕的。React是框架开发人员表示他们最想与之合作的框架,如果他们还没有。
最受喜爱,最可怕,最受欢迎的数据库
喜爱
正在用语言或技术进行开发并且表示有兴趣继续与之共同开发的开发人员的百分比
对于连续第二年,Redis是最受欢迎的数据库,意味着比其他数据库更多的开发者想要继续使用它。IBM的Db2产品是最可怕的数据库,MongoDB连续第二年成为最受欢迎的数据库。
最受喜爱,最受欢迎,最受欢迎的平台
喜爱
Linux再次成为最受欢迎的开发平台,而今年,无服务器基础架构也受到喜爱。Sharepoint是连续第二年成为最令人畏惧的开发平台,许多开发人员表示他们希望开始为Android平台和Raspberry Pi开发。
开发环境和工具
最受欢迎的开发环境
Visual Studio Code只是将Visual Studio作为全球最流行的开发人员环境工具,但开发人员类型和角色在工具选择方面存在差异。编写移动应用程序代码的开发人员更有可能选择Android Studio和Xcode,DevOps和sysadmins最受欢迎的选择是Vim,数据科学家更可能在IPython / Jupyter,PyCharm和RStudio中工作。
开发人员的主要操作系统
我们询问了受访者他们使用哪些操作系统进行工作。大约一半的人表示他们主要使用Windows,其余的大部分都是平分在MacOS和Linux之间。
多少显示器?
超过65%的受访者使用两台或更多台显示器在主工作站完成工作; 主要工作站的受访者监测人数中位数为两位。
最高支付技术
什么语言与全球最高工资相关联?
在全球范围内,使用F#,Ocaml,Clojure和Groovy的受访者的薪水最高,平均薪水高于70,000美元。区域差异在于语言与最高薪酬相关联。在美国,Erlang和Scala开发人员收入最高,而Clojure,Erlang和Haskell开发人员在印度收入最高。
相关技术
技术如何连接
技术聚集到相关的生态系统中,这些生态系统往往被同一个开发者使用。在这张图表中,我们看到一个用于Web开发的大型中央集群(通过JavaScript,HTML和CSS)通过SQL连接到Microsoft技术(使用C#,Visual Studio和.NET Core)。沿着左边,我们看到了一个将Java,Android和iOS连接到Linux,bash / shell和Python的星座。其他较小的相关群集包括Scala / Spark,C / C ++和其他包含特定语言IDE的小型技术。
技术与社会
开发人员认为危险和令人兴奋的AI是什么?
一些类型的开发人员参与了当今世界机器学习和人工智能的日益增长的作用,因此我们问开发人员他们认为这些技术是危险和令人兴奋的。开发人员对什么是最危险的没有多少共识。每个答案都大致相同。对于增加人工智能令人兴奋的最佳选择是工作可以自动化。
谁主要负责考虑AI的分歧?
开发人员最有可能认为机器学习和人工智能算法背后的创造者和技术人员最终对围绕人工智能的社会问题负责。大约四分之一的受访者认为监管机构应该负主要责任。
开发人员如何感受AI的未来?
开发人员大多对人工智能为我们的世界提供的可能性持乐观态度,近四分之三的受访者表示他们总体上比对AI未来的担忧更兴奋。
人工智能关注的开发人员类型
开发人员对人工智能问题的关注取决于他们所做的编码工作。例如,当计算机变得比人们更聪明时,数据科学家将算法公平性考虑的问题比任何即将出现的奇异性危险的可能性提高1.5倍,这是任何类型开发人员中最重要的。我们在这个问题上包含了一个免费的回应选项 对Skynet没有太多严重的担忧,但是许多开发者讨论了系统性偏见被纳入到算法决策中,以及AI没有能力检查和推理决策路径的危险。
工作
开发人员如何开始关注软件业务
雇用
就业状况
超过90%的开发人员至少兼职。
地理就业状况
美国
德国的兼职开发人员比例非常高。美国的开发人员不太可能担任独立承包商或自由职业者。在所有这些地点,70%至80%的开发人员全职受雇。
地理专业开发人员就业状况
美国
作为专业开发人员的受访者全职工作的比率要高于一般受访者。
公司类型
行业
在技术行业内外,软件开发人员在各种各样的行业工作(如此多元化,以至于很难在一个问题上问他们所有人)。我们今年的答案选择集中在科技行业,而这些选择中,更专业的开发人员为网络开发,IT和SaaS等公司工作。在咨询和医疗行业工作的开发人员拥有更多的专业编码经验。这些行业的开发人员比从事网络开发/设计或电子商务的开发人员拥有超过20年的经验的可能性是其两倍。
公司规模
开发人员适用于各种规模的公司,从小型企业到大型企业。与世界其他地区相比,美国更多的软件开发人员在大公司工作。开发者越有经验,他们就越有可能在一家最大的公司工作。拥有30年经验的开发人员比拥有2年经验的开发人员在拥有5000多名员工的公司工作的可能性高一倍。
职业价值观
开发人员希望在五年内做些什么?
开发人员的职业目标主要集中在技术工作上,只有超过一半的受访者表示他们希望未来能够担任相同或不同的技术角色。大约四分之一的受访者表示他们想创办自己的公司,但这在25岁以下的开发者中最为常见。
开发人员如何感受他们的职业和工作?
开发人员比他们目前的工作更倾向于对自己的职业感到满意。总体而言,行业的职业满意度没有显着差异。但是,从事金融服务和IT工作的开发人员当前的工作满意度要低得多。对于年龄在50岁以上的老年开发人员以及拥有20年,30年或更长时间的专业经验的职业满意度最高。相比之下,工作满意度对35至44岁的开发者来说是最高的。
伦理
如果被要求为不道德目的编写代码,开发人员会做什么?
当被假设的情况下,他们被要求为产品或目的编写代码时,他们认为这显然是不道德的,超过一半的受访者表示他们不会写这样的代码。道德情况可能很复杂,大约三分之一的人认为这取决于情况。
开发人员如何报告代码的道德问题?
做什么的问题下一个已出现的道德问题后更是棘手的,根据我们的受访者。几乎一半的受访者最常见的答案是,如何举报道德问题取决于任何特定情况的具体情况。
谁最终负责完成不道德的代码?
大多数开发人员认为,管理最终是最不负责任的代码结果的责任。不到20%的受访者表示,开发者编写用于不道德目的的代码是最有责任感的。
开发人员是否有义务考虑其代码的道德含义?
几乎80%的受访者声称,考虑他们的代码可以用于开发人员是否正确。这些谁表示,他们不确定这是40%的可能也说,他们并不需要报告任何道德问题。
我们在这个问题之后提供了一个免费的反应机会,我们看到了开发人员的深思熟虑。其中包括有关工具开发人员构建的工具如何强大并带有很多责任的回应,可能会不小心产生不道德结果的情况,以及构建软件的大型团队如何参与,但开发人员可以成为防范不道德代码的最后一道防线。
寻找工作
只有16%的受访者积极寻找工作,但约四分之三的开发人员有兴趣了解新的就业机会。
按地理分类的求职状态
美国
求职状态在这些地区基本一致。
谁在积极寻找工作?
在专业开发人员中,那些在C级工作的人以及工程经理或产品经理正在寻找工作。在学术界和数据科学家工作的开发人员(我们知道经常重叠的类别)正在寻找更高比例的工作。
开发人员最后变更工作的时间有多久?
在过去两年中,我们调查中约半数的受访者已经接受了新工作; 频繁的工作变更是软件开发人员的常态。
按地理分类的工作变更时间表
美国
在美国,英国,德国和加拿大,软件开发人员以大致相同的速度改变工作。
开发人员用什么词来描述搜索工作?
我们向Stack Overflow的开发人员询问他们在单独的自由回答问题中寻找新工作的过程令人厌烦,疲惫,有趣和令人兴奋的事情。受访者表示,寻找新工作的积极方面包括新职位可以提供的新机遇,新技术和新人。另一方面,他们对采访和招聘过程中破裂的过程表示失望。
工作重点
开发人员如何评估潜在的工作?
最高优先级
总的来说,开发商评估工作的首要任务是薪酬,其次是他们将要采用的具体技术。科技行业总体上围绕着多元化的问题而挣扎,个别开发人员在寻找工作时并未将其列为优先事项。
按性别评估工作的差异
男人
考虑工作时,不同类型的开发人员应用不同的优先级。在科技领域属于性别少数群体的开发人员在评估新工作时将公司文化和办公环境列为他们最关心的问题。性别识别问题允许受访者选择所有适用的问题。
开发人员在薪酬和福利方面的价值
最高优先级
总体而言,我们调查的受访者将薪水列为最高优先级,其他所有考虑因素如计算机设备和会议预算排名都要低得多。
通过地理评估补偿和收益
美国
开发人员薪酬福利补偿的具体情况在全世界范围内有所不同,因此开发人员的答复因地理位置而异。在没有国家医疗体系的国家(如美国),健康保险是优先考虑的,计算机设备补贴对印度和英国的开发商来说异常重要。
开发实践
开发人员在工作时使用什么来保持舒适?
常设办公桌并不局限于时尚的硅谷办公室; 超过一半的受访者表示他们使用一个,几乎相同的比例,他们使用人机工程学键盘或鼠标等设备。
开发人员使用哪些方法?
敏捷和Scrum是开发人员保持项目进展顺利的流行方法。
开发人员希望新员工能够发挥多大作用?
我们要求我们的受访者设想他们有一个有四年相关经验的新同事加入他们的团队,然后估计这个人将花多长时间完成生产并在典型水平上做出贡献。约四分之三的开发人员认为,假想的新同事在三个月或更短的时间内会完全加速。寻求减少部落知识,加快船上速度,加快发展?了解有关堆栈溢出企业的更多信息。
版本控制
Git是当今开发人员版本控制的主要选择,有近90%的开发人员通过Git检查他们的代码。
开发人员签入代码的频率如何?
大多数开发人员每天会多次登录代码。专业开发人员很少或很少检查代码。
工作满意度和承诺代码如何相关?
最常检查代码的开发人员也有更高的工作满意度。
薪水
按开发人员类型计薪
工程经理,DevOps专家和数据科学家指挥最高薪酬。有关我们如何将受访者使用的本地货币兑换为美元的信息,请参阅我们的方法部分。
平均收入高低因地理而异。例如,在印度,数据科学家是收入最高的公司,而在欧洲国家,使用嵌入式设备的后端开发人员和开发人员也是最受欢迎的人群。
开发人员类型的薪水和经验
自然而然,拥有更多年经验的开发者会获得更多的报酬。但是,我们也看到,某些类型的编码工作在相同的经验水平下支付更高。数据科学家和DevOps专家是他们经验水平高的人。
薪酬与语言体验
考虑到他们拥有多少经验,开发者使用本图表上方显示的语言(例如Go,Clojure和F#)即可获得更多报酬。在线以下使用语言的开发人员,例如PHP和Visual Basic 6,即使在多年的经验下也能获得较少的报酬。该图表中圈子的大小表示与其他人相比,有多少开发人员正在使用该语言。
方法
我们如何计划和分析我们的调查
本报告基于来自全球183个国家的101,592名软件开发人员的调查。根据调查完成情况和花费的时间,我们认为这些回复“合格”用于分析目的; 另外大约有2万个响应已经开始,但没有包含在分析中,因为受访者没有回答足够的问题。在合格的答复中,67,441(66.4%)完成了整个调查。
全球合格回应
欧洲 | 39001
北美 | 25016
亚洲 | 24700
南美洲 | 4,162
非洲 | 2869
澳大利亚/大洋洲 | 2591
其他(国家未列出) | 84
- 调查从1月8日到1月28日进行。
- 用于合格响应调查的中位时间为25.8分钟,完成整个调查的中位时间为29.4分钟。
- 主要通过Stack Overflow拥有的渠道招聘受访者。受访者的前5位来源是横幅广告,电子邮件列表,房屋广告,博客文章和Twitter。由于受访者是以这种方式招聘的,Stack Overflow的高度参与的用户更可能注意到调查的链接并点击开始。完成调查的受访者被授予“人口普查”徽章作为完成调查的动机。
- 如果用户花费了一定的时间相对于他们进入调查的距离,我们将回答视为合格分析。花费少于5分钟的大多数调查回答都被排除在最终样本之外。
- 我们询问了受访者的薪水。首先,我们询问了每位受访者通常使用的货币。然后我们询问受访者他们的薪水是以该货币计算的,以及该薪水是每周,每月还是每年。
- 在第一天的短时间内,有一个漏掉问题最后部分的错误(每周,每月或每年); 这些工资反应不包括在这里。
- 我们使用2018年1月18日的汇率将工资从用户货币转换为美元,并假设工作时间为12个工作日和50个工作周,转换为年薪。
- 与调查中的大多数情况一样,这个问题是可选的。有58,650名受访者(57.7%的合格受访者)向我们提供了薪水数据。
- 美国境内外最高约1%的工资被削减并取代阈值。美国境内外的门槛值是不同的。
- 只有受访者根据他们以前的答案才能看到很多问题。例如,关于工作和工作的问题只向那些说自己在工作中工作的人展示。
- 这些问题被组织成几个问题块,这些问题是按顺序随机分配的。此外,大多数问题的答案是按顺序随机分配的。
- 由于错误,Oracle和SQLite在调查的第一天被排除在有关数据库的问题之外。我们仔细检查了其他数据库的结果是否从第一天起与其他调查期间相比发生了变化,但他们没有。此处显示的数据库使用结果以及最受欢迎/可怕/想要的数据库仅在Oracle和SQLite添加到可能的答案后才使用响应。
- 在2018-3-19,我们根据社区反馈对这个网站进行了一些编辑,以解决两个问题:a)我们如何处理跨性别开发者的回应,以避免暗示变性男人或女人是一个单独的性别和b )整个关于我们的调查样本及其局限性的讨论的清晰程度更高。