当我们分析一些流行网站,如GitHub和StackOverflow时,发现JavaScript、Java、PHP 和 Python 都是一些很不错的选择。
或者,也许我们还可以从与工作相关的指标来决定要学习的“最佳”技术,例如需求和薪资?职业规划公司Gooroo通过仔细查看了美国、英国和澳大利亚的超过50万份的IT职位空缺,得到了下面这份《2015年的工资和供需报告》。
需求量最大的前十项技术
以下这些就是在职位空缺广告中呼声最多的技术:
- Java——18%的广告中要求具备,平均年薪100,000美元
- JavaScript——17%,90,000美元
- C#——16%,85,000美元
- C——9%,90,000美元
- C++——9%,95,000美元
- PHP——7%,75,000美元
- Python——5.5%,100,000美元
- R——3%,95,000美元
- Scheme——3%,65,000美元
- Perl——3%,100,000美元
这些全球范围的统计数据,更多地会偏向于美国市场。比如,C#在英国坐的是头把交椅(32%),而 JavaScript 在澳大利亚高居榜首(13%)。
靠,为啥 C# 在英国这么多呢~
薪资最高的前十项技术
下面这些技术的酬劳都超过10万美元,美国的Erlang开发人员年薪平均为125000美元:
- Erlang
- Clojure
- Haskell
- Lua
- Lisp
- Groovy
- Scala
- F#
- Ruby
- Python
有趣的是,只有 Python 同时出现在两个列表中。那么它是否是最好的选项呢?
Gooroo 给出的注意事项
在你敲老板的门,要求加薪和 Python 再培训之前,Gooroo 指出:
- 并非所有的工作都会列到广告上,并且也做不到检查所有的职位空缺。
- 工资信息稀少,而且常常表述为一个范围值。
- 数据包括临时合同和全职长期工的角色,给出的薪水可能会大相径庭。
- 工作岗位常常要求多项技能。遇到这种情况,Gooroo 采用的方法是用薪水除以需要的技能,得到每个技能的平均薪水。
- 有时候很难提取技能,例如微软SQL服务器可以被称为“SQL服务器”,“MSSQL”,“SQL 2014”,等等。
此报告非常有意思,通过一些有用的信息得出合理的结论。不过,如果你不注意下面这些问题,那么很有可能会误解这份报告。
大型企业的影响较大
招聘是昂贵的。一般机构会收取申请者第一年年薪的25%作为费用,以便于支付他们线上线下的媒体广告费用。
这就解释了为什么Java(18%)和C#(16%)会占大头。虽然这两种编程语言并不比同类语言好,但大企业更属意它们,原因是:
- 他们已有的长期业务目标规定了编程语言
- 已经聘用了大量的开发人员,很难快速切换平台
- 这些技术可得到 Oracle 和 Microsoft 的支持
规模较小的公司可能会提供更多的职位空缺和差不多的薪水,如 PHP、Node.js 和 Ruby。但是,他们不太愿意或没有能力支付高额的招聘费用。所以他们的广告通常不太明显,从而导致数据结果相应地向大公司偏移。
薪水是一个平均值
PHP开发人员的工资比Java开发人员低25%?不是——事实并非如此。
工资的多少基于你正在创建的产品的价值,以及对项目作出的个人贡献。这和你使用的是 Java,PHP,COBOL 还是 QBasic 没有关系。
撇开上面的数据,PHP 的岗位比 Java 多:全球80%的Web服务器用PHP运行,四分之一的网站使用WordPress。你也会发现不少PHP的工作比Java的薪水更高,但是你也可以找到很多主题开发和普通网站给出的薪水位于薪资范围的低端。所以拉低了PHP的平均薪水。
职位名称比较模糊
你很少能看到直接标为“Java开发人员”,“PHP专业人士”或“Python程序员”的工作。薪资最高的岗位是面向服务的架构师?它所描述的技能基本上每个开发人员都需要具备的,没有一定的语言专长要求。
工作需要具备多技能
只会一种语言就能驰骋职场的日子已经一去不复返了。大多数工作都需要具备多个技能——包括业务分析,系统架构,数据库设计,数据格式交换,框架,平面设计,前端开发和支持等。这些工作不可避免地要接触到 HTML,CSS 和 JavaScript,所以即使招聘广告上没有提及,但也是隐含的技能要求。
不能从过去确定未来的趋势
科技正在发生日新月异的变化,然而我们却需要许多年的时间才能成为一个称职的开发人员。如果是在五年前,Node.js 才刚刚发布,特定的前端岗位也比较少见。十年前,iOS 和 Android 甚至都不存在。十五年前,ColdFusion 和经典的ASP与VBS才是流行的Web开发平台。二十年前,很少有开发人员会大胆超越 C++ 和 VisualBasic。
谁也不能确定下一个要流行的技术是谁。
那么,我应该学习什么呢?
编程是一种激情。它是逻辑思维、经验、创造力、想象力和好奇心的结合。可能有些人天生就擅长编程,但是却没有捷径可走。你需要相当长的时间才能达到一定的水平,而且还需要永不停止地学习。最好,还要舍得放弃你曾花多年时间学习但却已经过时的技术。
在你开始准备投身到软件开发这个职业之前,先问自己一个问题:
在我的业余时间里我会因为编程而觉得享受吗?
请老实回答自己。只有你自己才是你的动力。只有你自己才能让你孜孜不倦地去学习编程。只有你自己才能让你心甘情愿地投入时间、精力和费用去学习所需的技能。除了你自己,没人能强迫你——所以要挑选一个你愿意投入的职业。
根据调查、工资或其他选项来选择单一技术也会导致失败。完成一个个小型的开发任务,让自己尽可能多地学习语言、工具和技术。检查代码,与同行讨论。随着你接触到的项目日益复杂,知识将成为无价之宝。
然后某一天可能有人会因为你的专业知识而对你“慷慨解囊”。因为自己的专业爱好而收获的财富是一种荣誉和骄傲。但如果你不喜欢编程,那它就会成为一个苦差事,金钱奖励并不能让你快乐。
还在等什么?想一个问题,然后编码解决方案。你可以选择令人棘手的技术,因为经验最重要——与用什么语言无关。