Stack Overflow 调查 10 万程序员后发现,名不经传的 F# 最挣钱,Java 竟未上榜!
每年我们可以通过 TIOBE、IEEE Spectrum 等平台所发布的编程语言排行榜来了解各种编程语言的最新发展趋势,但是对于开发者而言,使用最广泛的语言是否意味着最吃香?拥有哪种技能才更具发展空间?
接下来,本文将根据技术型网站 Stack Overflow 上 100000 人参与的开发者调查报告以及其最新发布的薪酬计算器来为大家揭开最有“钱”途程序员的神秘面纱。
近日,全球知名技术型问答网站 Stack Overflow 根据开发者问卷调查发布了最新的高薪职位分析报告,并更新了 2018 版的薪酬计算器(https://stackoverflow.com/jobs/salary),这个工具可以让开发者和雇主根据经验水平、地理位置、教育程度和特定的技能找出软件行业的普遍薪酬水平。
其中采用的多重线性回归方法与去年相似,但今年该工具支持了 8 个新的国家,并重新提炼了每种技术对薪酬预测的贡献程度。现在的薪酬计算器基于 Stack Overflow 开发者调查问卷的综合数据,从中我们发现,对开发者薪酬影响的主要因素如下:
地理位置;
教育水平;
专业编程经验年限;
开发者种类;
使用的编程技术。
地理位置
据调查发现,所有国家的开发者都挣得更多了,像伦敦和旧金山这些地方,薪酬的中位数平均比去年要高出 25%。整体而言,美国程序员的薪酬要远远超过其他国家的开发者。
但值得注意的是,目前该薪酬计算器工具暂还未支持中国,不过调查报告中包含了中国开发者,据此,我们也可以通过当前最火的技术趋势,了解当前全球的开发者岗位发展前景。
教育水平
在受访者中,有近一半的人至少拥有学士学位,还有 22.6% 的人拥有硕士学位,而高中及以下学历的人占比 11.9%。
就现在国内的大环境来看,许多如 BAT 之类的巨头科技公司在招聘过程中,对人才的最低需求也是本科生为起点,而对于本科以下学历的人想要成为一名开发者,除非本身自学技术比科班人更胜一筹或通过培训机构加以辅导技术够硬,否则身处科技行业,更多的是随波逐流,淹没在残酷的竞争中。
专业编程经验年限
大多数的程序员接受编程教育的时间分布在 3-5 年以及 6-8 年区间内。
且在正式从业中,有超过一半的人拥有 5 年以内的专业编码经验。不得不说,科技行业主要还是以年轻的血液为主。
哪种开发岗比较抢手?
根据 Stack Overflow 发布的薪酬报告显示,近十万的受访者中,后端开发者数量占据第一,达 57.9%,其次分别为全栈开发、前端、移动开发、桌面及企业应用开发。
其中项目经理岗位工作经验要求最高,平均有 10 年以上,其次是 DevOps 技术专家、桌面及企业应用开发。
从编程语言、脚本的角度来看,前端占了半边天,JavaScript 应用最为广泛、其次为 HTML、CSS。作为常青藤的 Java 也只能排第五。
Mozilla 开发的 Rust 逆袭成为最受欢迎的语言,而使用最广泛的前十名中只有三种语言在最受欢迎的列表中:分别是 Python,JavaScript 和 C#。
哪种类型的编程语言和开发者挣得最多?
另一个影响开发者收入的因素就是他们使用的编程语言。在全球范围内,我们可以看出使用 F#、Ocalm、Clojure 和 Groovy 语言的开发者拥有最高的薪酬,薪酬中位数是 7 万美元年薪,其中,令我们惊讶的是,Java 竟然没上榜。
而从工作种类来看:
一直以来,数据科学家通常会被认为是技术圈薪水最高的职位,但根据 Stack Overflow 发布的薪酬报告显示,还有比他们更高的职位。
从上图中我们可以看出,各个地区的薪酬水平不同,美国的开发者明显要比其他国家高,不过从全世界范围来看,下面五个职位是薪水最高的。
DevOps 专家
在全世界范围内,DevOps 专家都比任何其他技术职位挣得多。这个职位的工作内容是研究代码的测试、构建和部署的方方面面。
DevOps 专家必须了解软件开发者和 IT 运维两方面需要的技术,并熟悉将软件和基础设施变更和发布进行自动化所需的工具。
Happiest Minds Technologies 的总监和 DevOps 领导 Karthiga Sadasivan 告诉我们,DevOps 所需的技能如下:
源代码控制(如Git、BitBucket、VSTS等)
持续集成(如Jenkins、Bamboo、VSTS等)
基础设施自动化(如Puppet、Chef、Ansible)
自动化部署和编排(如Jenkins、VSTS、Octopus Deploy)
容器化概念(如LDX、Docker)
自动编排(Kubernetes、Mesos、Swarm)
云服务(如AWS、Azure、Google Cloud Platform、OpenStack)
许多工具都会使用 Python 编程,虽然 Go 和 Ruby 也经常被 DevOps 专家使用。
数据科学家
数据科学家帮助组织识别有用的数据模式。从根据生活风格预测癌症风险(https://www.cancerresearchuk.org/funding-for-researchers/how-we-deliver-research/grand-challenge-award/artificial-intelligence#details60)到建立数学模型让机器人寻找飞机引擎的损坏(https://www.technologyreview.com/s/607962/general-electric-builds-an-ai-workforce/)等都会用到数据科学家。
随着越来越多公司开始使用机器学习,对数据科学家的需求也水涨船高,目前已经造成供不应求的状况,而且还在不断增加。
需要的技术有很多种,但应聘者通常需要很好的数学背景,包括统计学和多元微积分的知识,以及编程技能如 R、Python,数据库查询语言 SQL,以及清洗数据的能力。如果想了解更多,可以看看 TechRepublic 这个列表(https://www.techrepublic.com/article/here-are-the-10-skills-you-need-to-become-a-data-scientist-the-no-1-job-in-america/),其中列出了进入数据科学领域所需的最重要的技能。
TechRepublic的另一篇关于面试时需要准备的常见问题(https://www.techrepublic.com/article/10-questions-machine-learning-engineers-can-expect-in-a-job-interview/)中也提到了数据科学家。
后端开发
后端开发编写服务器上运行的软件,这些软件是现代网站和 Web 服务的基础。
由于后端平台的种类繁多,这个角色需要的技能也多种多样,从老牌的 PHP、Java 到 Python、node.js JavaScript 等。除了编程技能之外,后端开发也必须理解如何创建 API,以及一些前段语言如 HTML、CSS、用户界面设计等等。
全栈开发
全栈开发也是 Web 开发,他不仅要懂得核心的 Web 技术如 HTML、CSS 和 JavaScript,还需要理解软件框架、数据库和后端技术等一切构建现代网站和服务需要的技术。
需要的技术通常包括 Angular、React 框架、Node.js、JavaScript 以及版本控制软件 Git。
嵌入式开发者
嵌入式开发者通常需要编写在低功耗微处理器和微控制器板上运行的高效软件,通常在电子设备、自助服务终端和工业控制单元中使用。
嵌入式开发者需要在技术栈的任何一层上编程,可能是底层直接与板载硬件打交道的固件,也可能是在开发板上运行的高层软件。
所用的语言通常是 C 或 C++,因为它们运行效率非常高,并能精确地控制内存使用。工程师们通常还要懂得汇编语言。
更多报告内容可参考:https://insights.stackoverflow.com/survey/2018
薪酬计算器:https://stackoverflow.com/jobs/salary
原文:https://stackoverflow.blog/2018/09/05/developer-salaries-in-2018-updating-the-stack-overflow-salary-calculator/
https://www.techrepublic.com/article/five-of-the-highest-paid-programming-jobs/
译者:弯月,责编:屠敏
“征稿啦”
CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。
如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@csdn.net)。
————— 推荐阅读 —————