本文由
伯乐在线 -
黄小非 翻译,
黄利民 校稿。
英文出处:
stackoverflow。
概况:
今年,有超过5万名开发者向我们分享了他们是谁,做什么工作,以及他们的成果。通过本文,你将看到有史以来最为全面的一次开发者情况调查的结果。
每8秒钟,就会有一位开发者在Stack Overflow上提出一个问题。今年,有来自173个国家的56,033位程序员在Stack Overflow上进行了回复。
(在这次调查中,)我们提出了45个问题。我们把回复结论的亮点总结如下:
越来越多的程序员使用Mac和Linux作为他们的主力操作系统,这个现象还是第一次发生。只有7%的开发者认为自己是“摇滚明星”。大多数开发者喜欢以猫或者狗作为宠物。(但是德国的开发者是个例外。)
当然本次调查并不是完美的。虽然我们通过大样本的方式来减少调查的偏见,但是调查结果对于非英语开发者来说,或者是对于不关注英语调查的开发者来说,肯定还是存在偏差的。在某些领域,我们根据Stack Overflow每月4千万访问者的活动,对结果进行了一些增强。如果你是IT公司老板,我们很乐意帮助你们找到合适的程序员。如果你是开发者(很可能你就是),我们希望你能在Stack Overflow上注册一个账号。
在调查结果中,我们反复使用了“开发者”,“开发人员”和“回复者”这些词语。我们还把逗号写在了引号的外面,因为这是程序员所使用的风格。技术开发者档案:
在2016年1月,有四千六百万用户访问了Stack Overflow进行提问或回复。我们估计其中大约有1500万用户是职业开发者。而我们的调查问卷涵盖了全球0.4%的开发者。
我们判断职业开发者的依据是鉴于用户访问Stack Overflow时的阅读和回复行为。我们会搜集用户个人数据,用来协助我们判断你对哪些问题感兴趣,以及你能回答那些问题。用户可以随时对数据进行下载或删除。职位分布:
在回复者中,全栈开发者的比重最多。平均来看,全栈开发者可以很熟练地使用5到6中主流编程语言或者框架(相比之下,其他职位的人只会4种)。而 技术高管所会的语言则是所有职位类型开发者中最多的。
在参与调查的开发者中,移动开发者的比例和Android移动开发者的比例几乎一样(都差不多是3%)。有大约2.5%比例的开发者是iOS移动开发者。我们还收到了大约59份回复,说他们是Windows Phone开发者(大约占0.1%)。每种职位最青睐的技术:
JavaScript是这个星球上最受欢迎的编程语言。而且后端开发者甚至更喜欢使用JavaScript来工作。关于称呼程序员、工程师和开发者
在今年的调查里,我们询问了大家对自己的称呼,是工程师?专家?黑客?还是其他那些在职业介绍,名片或者Twitter个人信息上写的东西。
95%的开发者认为他们自己是开发者,程序员,工程师或者高级开发者,全栈开发者。嵌入式应用开发者多半认为自己是工程师。图形图像程序员则多半认为自己是程序员。
不过开发者还是这里的最佳选择。当然也是排名最高的选择。摇滚明星 vs. 忍者
有10%的回复者自认为是忍者。真正的忍者绝不会告诉你他是忍者。他们会悄悄溜到你身后施展割喉暗杀技,也就是我们说的“在敌对环境工作”。
开发者的平均年龄是29.6岁。中位数是27。按国家分的平均年龄:
上图是按照国家分类的平均年龄。经验:
接受调查的开发者平均有6.5年的IT或者程序员经验。不过这并不是成为职业开发者的必要年限(因为学习IT方面的学生告诉我们,他们的平均经验是3.4年)。开发者可以从所做项目中获取经验,不管这些项目是没报酬的还是兼职从事的。我们调查所得到的这个经验分布,和我们在Stack Overflow上230,000份简历的情况基本吻合。
从全世界的角度来看,前端开发者的经验中位数是3.5年。全栈开发者的经验中位数是8年。而工程管理人员的经验中位数是13年。星球大战 vs. 星际迷航
我们在调查问卷中询问了开发者他们更喜欢看哪个科幻作品,星球大战还是星际迷航?很显然,科幻动漫迷的选择是随着年龄的不同因人而异的。除上述两项之外,《萤火虫》排名最高的科幻作品,接下来是《星际之门》、《神秘博士》和《巴比伦5号》性别:
我们的调查结果显示出:在科技界男性和女性的巨大不平衡。事实上,我们知道,相比于调查结果所揭示的现象,女性在开发者劳动力中应该占据更重要的比例。根据Quancast的统计,有12%的Stack Overflow读者是女性。(不过我们并不刻意在内部跟踪性别。)我们还知道,在某些亚洲国家,诸如韩国,印度和中国,女性开发者的数量有显著的增长,但这次调查并不能充分反映这些国家的情况。女性开发者职位分类:
女性从业者更多从事设计师的职业。而像机器学习开发者这类职位则更多由男性占据。另外,QA开发者职位也是女性高过男性。而像技术执行官,或者工程管理者之类的职位,则是男性和女性比例均等。按照性别分类的经验
经验根据区域而不同。当然也会因性别而不同。根据性别和年龄段分类:
女性在所有回复者中占6%的比例,这个比例甚至比30岁和40岁的回复者的比例还要小。科技界中性别失衡的情况比年龄失衡的情况要更加严重。
我们还不知道如何去打破这种科技界固有的性别壁垒,不过我们认为把这个数据分享出来会有助于增进工业界之间的交流。这也就是为什么我们会在随后的一个月公布全部的调查数据集供大家分析的动机。你可以在Twitter上随时关注我们的更新。多样性:哪些人对多样性做出评价?
总的来说,有73%的开发者反馈我们,认为多样性多多少少还是有些重要的。41%的开发者说多样性非常重要。而那些对人力资源有影响力的开发者则相信多样性的价值很高,比开发者的其他任何类型都高。
我们今年收到了调查者的反馈,认为我们处理性别和多样性之外,还应当加入种族的选项。这一点我们一定会考虑。如果你认为我们明年还有什么需要加入的,请告诉我们。教育经历:
有69%的开发者告诉我们他们或多或少是自学成才的。(全球范围内13%的调查参与者告诉我们他们只是自学)。43%的开发者有计算机及其相关的学识学位。2%的开发者拥有博士学位。根据不同的教育方式:
机器学习开发者更多会采用线上学习的方式(图形图像程序员则很少使用这种方式)。企业级服务开发者更倾向于工业级认证程序(而iOS移动开发者则几乎不这么做)。机器学习开发者则更多拥有计算机科学的硕士或博士学位。技术:2016年最热门技术:
使用JavaScript语言的人要比使用其他编程语言的人更多。PHP则和Node以及Angular一起滑出了最受欢迎的行列。最受欢迎的其他技术:
除了前面提到的语言之外,Delphi是最广泛使用的语言或技术,Typescripe则是开发者最希望使用的技术。(哈哈,我看到OCaml了。)最爱,最怕和最想的技术:
最爱的技术:
最怕的技术:
最想要的技术:
这已经是连续第二年,Rust,Swift和Go占据最受喜爱编程语言TOP5的位置了。VB则是最恐怖技术榜的头名——开发者是不会放过这种正在消亡的语言的。而Android,Node和Angular则是程序员最想学习的三种技术。Stack Overflow 技术排行榜:
50,000 名调查回复者是一个不小的数字,当然4000万的数字则更大。Stack Overflow每个月有4000万的用户访问量。在2016年1月,这些访问者提交了2200万份反馈(1700万投票外加54万匿名投票)。在2015年6月,JavaScript超越了Java成为Stack Overflow上最流行的标签。在12月,Swift超越Objective-C。当然你也可以用我们公开的数据浏览器来自行进行分析。Stack Overflow 技术趋势
新潮的Web开发技术,比如React,Node.js,还有AngularJS正在逐渐起势。还有就是Swift,正在逐渐蚕食Objective-C的市场份额。开发者们开始逐渐抛弃的技术有:CoffeeScript,Haskell,还有Windows Phone。尽管调查显示有许多程序员不想再使用Visual Basic和Wordpress,但是这些技术仿佛还没有真正缩水。赚钱最多的技术:
有云就是雨!云技术能挣大钱。这也是因为云技术多半和金融行业有关。Spark,Scala,Cassandra,以及F#位于最高报酬技术的头几位。(今年的列表请参看这里)按职位分类的报酬:
懂得使用JavaScript并在为云平台工作的全栈开发者,以及使用React或者Redis技术的开发者比其他的开发者报酬更多。
懂得使用JavaScript和React,Node或者Angular技术的前端开发者比其他前端开发者的报酬更高。
有数学背景的开发者(包括数据科学家或机器学习开发者),如果能掌握Scala,Spark或者Hadoop技能,则可以比其他同行获得更高的报酬。Python 和 R 技术的报酬几乎差不多,不过会 R 的数学工作者的数量可是比会 Python 的人要多两倍。
在iOS生态系统从业的移动开发者的报酬平均比Android移动开发者多10,000美元。多个相关的技术:
每一个开发者(在日常工作中)平均要使用四五种主流编程语言、框架或者技术。最常规的双技术组合是 JavaScript和 SQL。最常见的三技术组合是 JavaScript、PHP 和 SQL。
根据职业划分的技术栈
看到栈了没?全栈开发者选择使用PHP作为后端原因,比任何其他语言都多。(紧接着的是C#和Java)。
JavaScript是如此普及,以至于后端开发者不管用什么类型的3技术组合都包含了JavaScript。这也说明有很多后端开发者其实也就是披着后端外衣的全栈开发者。我们的内部统计显示,有60%的职业开发者实际上是在做全栈的工作的。
有63%的数据科学家使用Python,44%使用R,还有27%是两者都使用(有14%使用Python、R 和 SQL)。开发环境(2016):
去年,我们调查了文本编辑器的使用情况。今年我们把这个问题扩展到了IDE、文本编辑器以及编码工具的使用情况。大多数开发者会在2种到3种开发环境之间游移。除主流的集中IDE以外,比较受欢迎的还有 WebStorm(1.6%),brackets(0.8%),Qt Creator(0.7%)还有Delphi(0.4%)。根据职位分类的开发环境:
数据科学家使用Vim和Notepad++。全栈开发者使用Visual Studio和Sublime。学生则使用Notepad++和Visual Studio和Notepad++。操作系统:
去年,在开发者们使用的操作系统中,Mac系统比Linux的份额多了一点点,排在第二名。今年形势则非常明朗而且操作系统的发展趋势也很明显。如果这种趋势依然保持下去的话,那么明年Windows系统的使用量将会低于50%。
说到Linux家族,Ubuntu则以12.3%的份额在整个开发者OS市场中傲视群雄。Fedora,Mint和Debian则分别占1.4%,1.7%和1.9%。工作:雇佣情况:
绝大多数的开发者都有工作。全球91%的开发者是“以获取报酬而工作”(全职,自主创业或者自由职业)。求职情况:
只有15%的开发者目前正在找工作。但是有78%的开发者对新的工作机持有兴趣的态度。
如果你是准备雇人的老板,那么你最好要弄清楚哪些人并不是真的在找工作。哪些人是在找工作?
在美国,学生,分析员和QA开发者是最有可能真正找工作的人。设计师,技术执行官,计算器学习开发者则更倾向于跟随他们当前的老板。
在大多数国家,朋友推荐还是开发者们找新工作的最普遍方式。不过印度却是个例外,内部招聘率为 24.5%。找工作优先考虑因素:
薪水当然是开发者们在找工作的时候最关心的。不过这也不绝对。有37%的开发者根本就没有把薪水列入他们考虑的优先级因素里。
有意思的是,德国的开发者似乎对薪水的关心要少于其他国家的开发者。美国和法国的开发者则更关心他们的上升空间,英国的开发者则更关心他们工作的地点,而印度开发者则更关心他们是否有弹性的工作时间,是否有时间做自己的项目,是否能远程办公,当然还有就是工作的头衔。不同职位对找工作的优先考虑:
不同的开发者类型对优先事物的考虑是不一样的。比如全栈开发者更关心所需的技术。机器学习开发者则考虑如何创新。相比于其他开发者,QA开发者则关心同事们的工作质量以及企业文化。
技术执行官不太关心生活和工作的平衡。他们关心的是如何制造出重要的产品,如何做出有影响力的决定,以及比其他类型的开发者更关心:公平。不同经验的开发者对优先级的考虑:
作为一个开发者来说,获得经验,做正确的决定以及拓展技术栈应该是优先考虑的,然后是远程办公。(我们已经跟打架强调过了我们多么喜爱远程办公。)但是很多有经验的开发者对工作头衔都不是很在意。哪些国家的开发者更在乎钱?
越是平均收入较低的国家,开发者越喜欢衡量自己的工资。根据图表显示,北欧的开发者是最不在意钱的。开发者希望在工作中学到什么?
一旦开发者找到了工作,他们就会去尝试学习新东西或创造新东西。对于印度开发者来说,得到升职的优先级要比其他国家的开发者来得高。工作中的挑战:
不切实际的预期,糟糕的文档,不够详细的需求,这些都是开发者日常要面对的烦心事。听上去熟悉吧?不同经验的开发者面临的挑战:
有经验的开发者会比初级的开发者面临更多的挑战。经验丰富的开发者被不切实际的期望,不够详细的需求,以及脆弱的代码影响的可能性更大。另外,有经验的开发者在涵养方面做得更好。工资:
各国程序员的购买力
有5年以上经验的开发者的平均工资是对不同类型的程序员收入进行对比的一个指标。各国购买力:CountrySalary (mean)Salary (median)Local Big Mac PriceBig Macs per Year (mean)South Africa$45,383$35,000$1.7725,713United States$106,120$105,000$4.9321,530Ukraine$33,023$35,000$1.5421,444Australia$80,093$75,000$3.7421,426China$54,667$45,000$2.7220,072Denmark$81,778$85,000$4.3218,930New Zealand$70,727$65,000$3.9118,089Ireland$76,747$75,000$4.2518,058United Kingdom$75,654$65,000$4.2217,925Israel$74,400$75,000$4.2917,447Canada$70,307$65,000$4.1416,978Switzerland$101,449$105,000$6.4415,753Romania$29,884$25,000$2.8615,734Norway$77,429$75,000$5.2114,930Poland$35,455$35,000$2.3714,929Netherlands$55,180$55,000$3.7114,873Belgium$59,490$55,000$4.2513,998Russia$21,282$15,000$1.5313,910Germany$53,630$55,000$3.8613,880Austria$51,793$55,000$3.7613,775South Korea$48,529$45,000$3.5913,518India$25,457$15,000$1.9013,416France$52,948$45,000$4.4112,009Mexico$33,141$25,000$2.8611,562Finland$50,421$55,000$4.4111,433Sweden$58,899$55,000$5.2311,291Czech Republic$32,465$25,000$2.9810,930Spain$38,922$35,000$3.7610,352Turkey$33,971$25,000$3.419,962Italy$38,283$35,000$4.308,903Greece$32,252$25,000$3.608,880Hungary$26,786$25,000$3.088,697Brazil$29,074$25,000$3.358,679Philippines$35,610$25,000$4.268,167Portugal$24,740$25,000$3.237,659Pakistan$20,273$15,000$2.867,088
巨无霸指数可以有效地用来衡量各国开发者之间的购买力差别。在南非,牛肉很便宜(其他的消费品也是如此),平均每个开发者一年的收入可以买25,000个巨无霸。拥有5年以上经验的美国和乌克兰的开发者也能吃得很好。工资和租金的对比:CityApartment PriceSalary (median)Pct. of Salary spent on RentMontreal, Canada$712$65,00013%Berlin, Germany$740$55,00016%Pune, India$201$15,00016%Bangalore, India$205$15,00016%Austin, TX, United States$1,454$105,00017%Seattle, WA, United States$1,764$125,00017%Portland, OR, United States$1,401$95,00018%Bucharest, Romania$372$25,00018%Kiev, Ukraine$380$25,00018%Los Angeles, CA, United States$1,780$115,00019%
莫斯科的房租是在是高的离谱。开发者最好能住在蒙特利尔,柏林,浦那(印度)以及班加罗尔——其中班加罗尔承载Stack Overflow最多的流量。德克萨斯的奥斯丁是美国房租最合适的城市,在那里程序员不用把所有薪水都花去租房子。
但是如果你不用自己付房租的话,你可以考虑去加州。因为开发者收入排名前十的城市里面,加州就占了七个。Palo Alto排名第一,那里的开发者平均收入达到153,000美元/年。在美国之外,开发者收入最高的城市是苏黎世,在那里有5年以上经验的开发者的平均年收入是105,000美元。公司规模和工资的关系:
平均工资随着公司的规模增长而增长,不过很多小公司给的薪水也不错。钱能买到快乐吗?
总的来说,工作中得到的回报和对工作的满意度是成正比的。那么钱能买到快乐么?也许在某些地方可以。不过工资较高的开发者有更多选择的权利,能选择去他们感到快乐的地方工作。雇佣状态和工资的关系:
全职的员工是开发者劳动力的主力,他们的薪水也比平均水平高,也比那些自由职业者要高。不过自主开发者应该更爱他们的工作本身。那么自主开发者和自由职业开发者/临时合同开发者的差距有多大呢?差距是大约一万美元每年。工资和性别的关系:
在美国,不同性别的年轻开发者之间的收入并没有明显的区别,但是在30岁的年龄是不同性别开发者收入的一个分水岭。这是指那些处于30岁以上年龄的男性开发者的收入要比平均水平高20,000美元。而在经验方面,不同性别的开发者似乎也没有明显的收入区别。受教育程度和工资的关系:
从全世界的范围来看,拥有硕士学位的开发者的平均工资最高。拥有工业级认证和拥有博士学位的开发者比大多数其他的开发者要拥有更高的薪水。所以,好好读书!公司:
行业:
在软件行业工作的开发者比在其他行业的要多。但是代码是五处不再的,这里所说的“其他”行业,其数量有几千个之多(主要包括保险,科研,能源等等)。
在游戏行业工作的开发者比其他开发者更喜欢他们的工作。在制造业和金融业的开发者则很可能需要和历史代码打交道。国防部的开发人员喜爱他们的老板。因为他们的老板更喜欢倾听。公司规模:
开发者阵营可以按照“为100人以下的公司工作”和“为100人以上的公司工作”这两种。大约有25%的开发者是为1,000人以上的大公司工作的。团队:
独狼型开发者就像个迷,或者比例非常稀少。96%的开发者表示他们在团队中工作。非传统意义的开发者则更倾向于变成”独狼“型的开发者。(QA开发者则最不喜欢单独工作。)团队中的女性:
我们询问了调查接受者关于他们团队大小的问题,以及团队中有多少人是女性。上面的统计图是来自于男性调查者的。分析员和数据科学家喜欢在女性比例较高的团队中工作。嵌入式应用开发人员和桌面开发人员则对高女性比例的团队没多大兴趣。(QA开发者在团队女性平均人数上最高,为2人/组)。远程办公:
大约12%的开发者是全职远程办公的。30%的采用远程的方式进行兼职或全职办公。远程办公和有经验的程序员:
在远程办公方面,有11年经验的开发作者的人数是有5年经验的开发者人数的两倍。
远程开发者是否喜欢他们的工作?
远程办公的开发者比其他类型的开发者更热爱他们的工作。你在家工作么?你想在家工作么?如果想的话可以看看这里。版本控制:
57%的开发者表示他们每天都会checkin或者提交代码。写代码的程序员才是快乐的程序员:
总的来说,将代码诸如到最终产品中能产生工作的满足感。从来没有push过代码的开发者但是对工作满意的比例占65%,而每天提交代码的程序员,他们对工作满意的比例是77%。所以开发者喜欢写代码!(或者也许只是开发者喜欢提交代码,喜欢提交得比任何人都多。)社区:访问频率:
有一半以上的开发者平均每天要多次访问Stack Overflow. 78%的开发者反馈说他们每天都会访问Stack Overflow。访问动机:
许多开发者上Stack Overflow是为了寻求工作上的帮助。而更多的人上Stack Overflow只是因为他们喜欢用这种方式来学习。问答:
自2009年Stack Overflow成立以来,用户们提出了1840万个问题,其中1230万个问题得到了回答。2015年,用户们提了2700万个问题,其中3200万个问题得到了解答。
有超过27,000位参与者给了我们他们的私人信息。我们做了些调查,发现:他们一共问了383,445个问题,其中2,804,051个问题得到了解答。这些问题的答案帮助了全世界数以百万界的开发者。所以,参与进来吧。声望值:
声望值并不仅仅是个无用的网络点数——它还是你帮助过多少人的计数器。
有96%的用户平均每月在Stack Overflow上得到一次帮助,如果你是他们的一员,如果你想做点儿什么作为回报,那么就请在Stack Overflow上注册吧。