有这样一个问题,利用空格和利用 Tab 的程序员谁挣得更多?
你别说,还真有人做了统计:
图1:根据 2017 年 Developer Survey 调查 12,426 名全职开拓职员的结果,利用空格(红线)的人薪资比利用 Tab 的更多。来源:stackoverflow.blog

由上图可知,利用空格的开拓职员,人为中位数为 59,140 美元,而利用Tab的开拓职员的人为中位数为 43,750 美元。
利用空格的程序员比利用 Tab 的挣更多!
上面这个调查 Developer Survey [1]是面向环球进行的,而且不同的国家之间开拓职员对空格和 Tab 的偏好差距并没那么大——实际上,根据这份调查,不同国家和地区的程序员利用两者的情形差不太多。
图2:不同国家和地区开拓职员对空格、Tab 的偏好差距并不太大。2017 年 Developer Survey 调查了 12,426 名全职开拓职员,来自美国、印度、英国、德国、加拿大和其他地区。红条、绿条和蓝条分别表示更爱用空格、Tab 和两者差不多。来源:stackoverflow.blog
那么,收入之间的差距可能来自于这些开拓职员所利用的编程措辞,比如说,移动端开拓职员更喜好利用 Tab,而 DevOps 开拓职员更常利用空格。
于是,Developer Survey 调查又统计了开拓职员的事情种类(比如是前端开拓还是图形设计)和他们利用的措辞,薪资情形如下:
图3:利用 Tab 的开拓职员的薪资中位水平。来源:stackoverflow.blog
这是个有趣的结果,但并不是决定性的。但是,有一个不可否认的事实——编程措辞的种类有很多,并非每一种的需求或人为都相同。本文将综合各种信源,比较与不同编程措辞在美国市场的干系薪资水平、人气和前景,为你供应一些参考。
在本文中,你将看到几种紧张编程措辞的:
事情机会
Github 流程程度及变革
编程措辞先容(为想要学习编程的读者准备)
薪资排行 & 事情机会:Python 既有实力亦有潜力
在美国,软件事情岗位在线招聘数量从 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
点击阅读原文可查看职位详情,期待你的加入~