20万,这是新智元今天达到的用户总数。在飞向智能宇宙的旅程中,感谢每一位和新智元同行的朋友。您的关注和支持是“新智元号”星舰永不枯竭的燃料。
有这样一个问题,谁用空格赚的多,谁用Tab程序员赚的多?
你别说,真的有人做过统计:
图1:根据2017年开发者调查对12426名全职开发者的调查结果,使用空格(红线)的人比使用Tab的人获得更多报酬。来源:stackoverflow.blog
从上图可以看出,使用空间的开发人员工资中位数为59,140美元,而使用Tab的开发人员工资中位数为43,750美元。
使用空格的程序员比使用Tab的程序员赚得多!
以上调查,开发者调查[1],是在全球范围内进行的,不同国家的开发者对于空间和Tab的偏好差距并没有那么大。事实上,根据这项调查,不同国家和地区的程序员并不同时使用这两种语言。
图2:不同国家和地区的开发者对空间和Tab的偏好没有太大差异。2017年,开发者调查调查了来自美国、印度、英国、德国、加拿大等地区的12426名全职开发者。红条、绿条和蓝条分别表示他们更喜欢使用空格和制表符。来源:stackoverflow.blog
那么,收入差距可能来自这些开发者使用的编程语言。例如,移动开发人员更喜欢Tab,而DevOps开发人员更喜欢空格。
因此,开发人员调查还统计了开发人员的工作类型(如前端开发或图形设计)以及他们使用的语言。工资如下:
图3:使用Tab的开发人员的工资水平中位数。来源:stackoverflow.blog
这是一个有趣的结果,但不是决定性的。但是,有一个不可否认的事实:编程语言的种类有很多,并非每一种的需求或工资都相同.本文将综合各种来源,比较不同编程语言在美国市场的薪资水平、受欢迎程度和前景,为大家提供一些参考。
在本文中,您将看到几种主要的编程语言:
工作机会
Github流程的程度和变化
编程语言入门(面向想学习编程的读者)
薪资排名工作机会:Python有实力也有潜力
tyle="font-size:15px;">在美国,软件工作岗位在线招聘数量从 2007 年到 2012 年增长了 31%,比总体工作岗位增速快了 3 倍。美国劳工统计局估计,软件开发人员的工作从 2012 年到 2022 年将以 22% 的增幅继续增长。这里有个数字,2016 年 5 月,软件应用程序开发员薪资的中位数为 100,080 美元。使用国外招聘网站 Indeed.com 上招聘广告的数据,我们可以将编程语言的薪资水平划分为 9 档:

基于这个结果,Ruby/Ruby on Rails 看起来会让你挣得最多,而 Python,C++,iOS 和 JavaScript 也是体面的选择。如果薪资是你的主要关注点,那么也许 C,PHP 和 SQL 不是最理想的选择……
平均薪资水平可能会受诸如需求(有多少招聘职位)、供应(有多少开发人员了解语言)和经验(资深开发人员自然挣得比初级开发人员多)等许多因素的影响,我们有必要深入了解这些因素,然后才下定论。
1. 工作需求
根据你熟悉的编程语言找到工作的可能性有多大?以下是来自 Indeed.com 的工作趋势:

可以看到,C,SQL,Java 和 JavaScript 在招聘启事中经常被提到,而 C#,C++ 和 Python 也是表现不错的语言。
另一方面,如果你的目标是在创业公司工作,那么可能 Indeed.com 的工作趋势不是你应该参考最佳的指标。我们找到了 AngelList 网站,这里有更多美国初创公司发布的职位,来看看基于 AngelList 的软件开发人员需要的编程技巧:

再一次地,JavaScript 高居榜首。但是,美国创业公司似乎更喜欢 Python 和 Java,对这两者的需求超过了 Ruby(两年前 Ruby 最受欢迎),PHP,C 或 C#。
2. 供应情况
我们再来看开发人员这边,根据网站 Codementor 的数据(Codementor 是一个比较大的程序员交流网站,用户在注册时会填写自己使用的语言,因此数据在一定程度上可以反映开发人员掌握的编程语言):

当然,这个结果并不能准确反映实际市场的情况,但可以作为参考。例如,虽然移动应用业务已经蓬勃发展了一段时间,但 Objective-C 专家仍然很少。由于 Objective-C 开发人员供应不足,他们的薪资自然相对更高。
另一方面,PHP 在劳动力中的供应量很大,因此雇主有更多的选择,在薪资方面议价能力更强。同时,市场对 PHP 开发人员的需求也不如 Java,SQL 或 JavaScript 那么多。 因此,PHP 开发人员普遍收入较少。这个情况也体现在了我们文章一开始的那张图里面(参见图2)。
JavaScript 是个很特殊的例子。尽管供应量最大,但 JavaScript 开发人员并不处于薪水层的底线。
3. 薪资范围
现在,了解每种语言的需求和供应情况,我们再来看看根据招聘广告的薪资信息,你能得到的潜在工资。下面的数据来自 gooroo.io,根据每条招聘启事给出的薪酬范围取了平均数:

懂 Ruby,C++ 或 Java 的开发人员看上去起始工资更高。Python 和 Ruby 开发人员的薪资潜力最大,这可能意味着好的 Ruby/Python 开发人员市场缺口相对较大。
看各大语言前景,以及 Github 过去 16 年编程语言迁徙:更多人转而使用 Python
接下来我们可以看看各种编程语言的前景。
一种编程语言将来的发展前景如何?首先,这在很大程度上取决于其社区的发展,因为新鲜血液/采用率是使语言受欢迎的保障。因此,让我们来看看人们最感兴趣的语言是什么:

图4:根据谷歌搜索,2016 年使用 Python 的兴趣大增。
其次,Github 的项目数量能够从一定程度上体现出语言的流行程度。

其中,星级超过 1000 的项目排行如下:

同时,我们还需要注意——开发人员或许有过这样的体验,在挣扎完成第 N 个艰难晦涩的项目后,心想:“我可以用这种语言做这件事,但为什么不换种语言更加愉快地工作呢?”
分析了 4500 万 GitHub 用户、393 种不同的语言以及 10 TB 的源代码后,Waren Long 在博客 source{d} 发表博文,用详尽的数据和科学的方法展现了过去 16 年 Github 用户编程语言的大变迁(也就是从一种语言换到另一种语言的情况)。

使用 5 种最流行的语言(Java,C,C ++,PHP,Ruby)其中一种的开发人员,最有可能用切换到 Python,平均 24% 的机率。
再来看一个更直观的图:

过去 16 年,Python 和 Java 逐渐取代了 C 语言。
篇幅有限,我们这里就直接看结果了。要知道更详细的信息,可以访问参考资料 3。



编程语言介绍:Python 在 2014 年成为美国高校入门课程最受欢迎语言
最后,为了想要学习编程语言的读者,我们简要介绍一下各种编程语言。
I. 动态语言(Dynamic Languages)
动态语言通常更容易让初学者学习,因为它们灵活而有趣。你可以从头开始快速构建一个应用程序,需要的代码数量较少,并且没有硬性规则。由于动态语言通常是非常高级(high level)的语言,所以你会花更少的时间纠结细节,更多的时间学习编程概念,这也是动态类型的语言受初学者欢迎的一个原因,初学者一般都会因能够构建事物和快速看到结果得到反馈而鼓舞。
JavaScript
不要与 Java 混淆了,JavaScript 是主要用于前端开发的客户端脚本语言。JavaScript 在所有浏览器中都兼容,用于创建交互式 Web 应用程序,通常是通过诸如 jQuery 和前端框架(比如 AngularJS,Ember.js,React 等)的库来创建。JavaScript 也可以通过 Node.js 平台用作服务器端语言。过去两年来,Node.js 开发社区已经有了很大的发展,现在你可以在这里找到很多资源。你还可以通过使用诸如 phonegap 这样的框架,用 JavaScript 构建混合移动应用程序。Facebook 的 React Native 能让你使用 JavaScript 构建本地移动应用程序。不过,JavaScript 的难度很高,因为它是无类型的语言,因此很难调试。也有静态类型的版本,比如 Microsoft的 TypeScript 或 JSX,在 React 上使用。
Ruby
有了 Ruby,开发人员可以很开心地工作。Ruby 的流行得益于 Ruby on Rails 框架,Ruby 与英语很类似,而 Rails 框架(是全栈 Web 框架)有“开箱即用”的工具,让开发工作变得简单。因此,很多人会建议你首先学习 Ruby。Ruby 主要用于后端开发,一些常用大网站,比如 Airbnb,Shopify,Bloomberg,Hulu,Slideshare 都是使用 Ruby on Rails 构建的。
Python
Python 是另一种强烈推荐初学者学习语言,Python 也是美国顶尖大学最受欢迎的入门级介绍语言。开发人员使用 Python 构建桌面应用程序和网络应用程序,Python 也是数据挖掘的好工具。此外,Python 在科学计算,数据分析和生物信息学的学术界尤其受欢迎。Google,Dropbox,Pinterest,Instagram,Reddit,BitTorrent,Civilization IV 等都是用 Python 构建的。
不仅如此,Python 从 2014 年起就成为美国顶级高校入门级课程教学语言(Introductory Teaching Language):

下面是部分美国顶级高校计算机相关课程使用编程语言列表:


图4:美国顶级高校入门级课程使用编程语言的情况。在这里仅列出了部分高校,更完整的表单参见参考资料 4 的网页。
PHP
PHP 是一种服务器端脚本语言,通常被认为是初学者友好的。要理解 PHP 代码要做什么比较容易,因此 PHP 很容易学。大多数网站都是用 PHP 构建的,因为这种语言是专门针对网络的。Facebook,维基百科,Yahoo!, Tumblr,Wordpress 等都是用 PHP 构建的。
II. 静态语言
使用静态类型的语言构建的应用程序有更高的可扩展性、稳定性和可维护性。静态语言在通过类型检查查找错误时一般更严格,并且需要更多的代码来构建一个原型。游戏引擎、移动应用和企业级后端通常使用静态类型的语言构建。
Java
作为通用语言,Java 用于构建 Android 应用程序、桌面应用程序和游戏。Java也常用作企业级后端开发的服务器端语言——90% 的财富 500 强公司使用 Java。此外,用于存储和处理大数据的 Hadoop 是基于 Java 的流行框架,Yahoo,Facebook 和 Amazon Web Services 等企业都在用 Hadoop。
C
C 常用于编程系统软件,是操作系统的通用语言(lingua franca)。C 几乎影响了本文中提到的所有编程语言,尤其是 Objective-C 和 C++。所以,如果你知道 C 语言的话,你可能更容易学习其他流行的语言。由于 C 语言需要用更复杂的代码来执行简单的任务,所以初学者如果把 C 语言作为第一语言往往很难保持动力。但是,从长远看,C 语言的知识肯定对你程序员的工作有所帮助。
Objective-C
Objective-C 是建立在 C 语言之上的一层,因此是静态的。话虽这么说,Objective-C 也可以用于动态打字。Apple 的 Swift 是一种静态语言,与 Objective-C 兼容,但它的静态类型使其更有弹性。Swift 受 Python 启发而来,旨在为新手轻松编写新手,旨在修复 Objective-C 的一些问题。
C++
C++ 是基于 C 语言的一种强大的语言,专为编程系统软件而设计,但也被用于构建游戏/游戏引擎,桌面应用程序,移动应用程序和网络应用程序。C++ 功能强大且速度很快,Facebook 用 C++ 已经开发出了好几个高性能、高可靠性的组件。许多软件都用 C++ 构建,包括 Adobe Systems,Amazon,Paypal,Chrome 等。与 C 语言类似,C++ 通常被认为不太好让初学者自己学习。所以,如果你决定学习 C++ 作为你的第一个编程语言,建议与人讨论或找一个导师。
C#
C# 用于微软的 .NET 框架,主要在Microsoft Windows 上运行。C# 用于 Web 开发、游戏开发和一般 Microsoft 开发。此外,Xamarin 一直在开发一个名为 Mono 的开源项目,该项目旨在将 C# 移植到其他平台,为 Linux 开发人员带来更好的开发工具。最近,你还可以使用 C# 通过 Xamarin 为 iOS 和 Android构 建原生手机应用。
III. 其他
SQL
SQL(“Sequel”)或结构化查询语言,是用于与数据库通信的查询语言。虽然 SQL 不能用于构建应用程序,但它用于管理使用关系数据库管理系统(RDMS)的应用程序中的数据。
参考资料
https://stackoverflow.blog/2017/06/15/developers-use-spaces-make-money-use-tabs/
https://www.codementor.io/codementorteam/beginner-programming-language-job-salary-community-7s26wmbm6
https://blog.sourced.tech/post/language_migrations/
https://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext
点击阅读原文可查看职位详情,期待你的加入~