注册 登录
编程论坛 闲聊灌水

抓紧学:2015年最值得学习的编程语言

TonyDeng 发布于 2015-05-04 09:09, 879 次点击
2015-5-3 23:38:12
来源:程序师
作者:Craig Buckler
 

自由UK web顾问Craig Buckler从事多年编程语言统计,本文统计了来自GitHut、RedMonk等四个来源的语言排名情况。他表示语言的选择需根据自身的实际情况,学习一门最好可以帮你解决实际问题的语言。

以下为译文:

我从事编程语言统计很多年了,有大量的数据来源包括代码存储库、Q&A讨论、招聘广告、社交媒体情况、教程页面访问、学习视频视图、开发者调查等等。数据发表在不同的时间,都可以被认为是精确的,也可以被认为是有缺陷的,但是它们可以用于发现行业趋势。


GitHub

GitHub是一个相对较新的资源,据分析目前在GitHub中有220万活跃库,前十为:

• JavaScript

• Java

• Python

• CSS

• PHP

• Ruby

• C++

• C

• Shell

• C#



RedMonk

2015年RedMonk语言排名是通过对GitHub和StackOverflow活跃进行分析,研究结果为:

• JavaScript

• Java

• PHP

• Python

• C#

• C++

• Ruby

• CSS

• C

• Objective-C



Jobs Tractor

Jobs Tractor语言趋势分析了Twitter上成千上万个工作职位,2014年9月的最新数据如下:

• Java

• Objective-C

• PHP

• SQL

• Java (Android)

• C#

• JavaScript

• Python

• Ruby

• C++

TIOBE Index

TIOBE Index基于熟练工程师、课程以及搜索引擎的语言排名情况:

• C

• Java

• C++

• Objective-C

• C#

• JavaScript

• PHP

• Python



• Visual Basic

完全不科学的调查

如果我们结合上面四个排名情况,可以得出下面这个结果:

• Java (all)

• JavaScript

• PHP

• Python

• C / C++

• C#

• Objective-C

• Ruby

• Visual Basic

在这里我合并了C和C++,忽略了CSS和shell脚本。CSS并不是一种编程语言。shell脚本是无论你采用什么技术都对你有用的,不过如果你只会这个你将很难找到工作。

观测与警示

GitHut和RedMonk的结果很相似,不过这是可以预料到的。因为它们都是使用GitHub作为主要的数据来源。都是分析公共的存储库,这影响了结果指向开源技术。

TIOBE受搜索引擎资源的影响,这可能就是为什么C排名靠前的原因——该语言始于1959年,拥有许多历史文献。新语言不可避免的出现了排名靠后的情况,例如Ruby和Go。

教育资源可能会影响结果。例如Python是常用的学校和学习编程途径,成千上万的学生问问题和完成项目。不过根据我的经验来说,Python的工作相比PHP和Ruby来说是罕见的。Java也有类似的情况,因为它在教育、网络、桌面和移动发展上有各种各样的用途,所以它们的排名会相对靠前。

本地开发者的需求仍然很高,尤其是在相关工作的调查中可以看出。RedMonk报告Swift在不到六个月的时间里上升了46个排名达到第22位。然而应用开发是一门年轻的学科。目前有更多的Web和桌面编程职位空缺着。

最后,语言使用方面也有一个影响:

1、一个单一Web网站和应用需求大量的技术,这可能引发桌面语言排名靠前的情况;

2、你可以通过CSS、JavaScript、PHP、Ruby、Python或shell脚本快速的创建几行代码,但是通过C、C#、Objective-C和Java这类语言却不一定能够完成。

趋势

拿今天的图表来比对2014年来自RedMonk和Jobs Tractor数据,你会发现几乎没有什么改变,没有新进入或大飞跃进入前十的语言。

调查不会告诉你这些:没有最佳语言。

鲜有开发者会通过单一技术工作而富有。如果你考虑的是客户端JavaScript,当你没有充分了解HTML、CSS等等,你不会走的太远。你需要的越多,学习掌握的也就越多。

所以调查很有趣,但不要拿你的事业作为赌注。记住:

仅基于调查数据或报酬前景来选择一门语言将会失败。

成为一个伟大的开发者有一个秘密:

放手去创建东西。

首先,发现一个问题——特别是对你有利益或有好处的。也许就是创建一个简历网站、组织你的财务状况或自动化你的家,无论是什么,确保目标是可以实现的。

然后选择一组合适的技术,或许有几个选择。但是不要试图去“强迫”某些语言:你可以在Perl中创建一个本地移动应用,但是资源是罕见的。

接下来创建解决方案:Google、代码示例和同道开发者都会对你有帮助,不过别期望它们可以提供所有问题的答案。你的项目是(或应该是)独特的程序,只有一个人能教你,那就是你自己。

最后,不要期望一夜之间就变成一个编码忍者。有些人有一种天然的能力,但也是花了很多很多时间来磨练他们的技能,不断的学习新的技术和技巧。

总之,学习一门最好可以帮你解决实际问题的语言。不要在意技术的过时,因为所有语言概念上的类似让你的技能是可转换的。不要担心你的选择——just build something!
17 回复
#2
诸葛欧阳2015-05-04 10:12
抓紧时间
#3
TonyDeng2015-05-04 11:13
记住:仅基于调查数据或报酬前景来选择一门语言将会失败。

纳兰应看一看。
#4
TonyDeng2015-05-04 12:19
成为一个伟大的开发者有一个秘密:

 放手去创建东西。

 首先,发现一个问题——特别是对你有利益或有好处的。也许就是创建一个简历网站、组织你的财务状况或自动化你的家,无论是什么,确保目标是可以实现的。

 然后选择一组合适的技术,或许有几个选择。但是不要试图去“强迫”某些语言:你可以在Perl中创建一个本地移动应用,但是资源是罕见的。

 接下来创建解决方案:Google、代码示例和同道开发者都会对你有帮助,不过别期望它们可以提供所有问题的答案。你的项目是(或应该是)独特的程序,只有一个人能教你,那就是你自己。

 最后,不要期望一夜之间就变成一个编码忍者。有些人有一种天然的能力,但也是花了很多很多时间来磨练他们的技能,不断的学习新的技术和技巧。

 总之,学习一门最好可以帮你解决实际问题的语言。不要在意技术的过时,因为所有语言概念上的类似让你的技能是可转换的。不要担心你的选择——just build something!


学编程的最佳途径就是啃出一个项目,不要贪多务快,这是我经常说的观点。贪多,是什么题目都做,什么类型都接触,但全都不深、不全、没有典型性、不会综合。务快,是无法静下心来,遇到问题不思考、不看书,马上搜索求助(在某种方面来说,互联网确实让人退化),为了快,只要初步解决了问题,就不去深入探索其中道理,急着做别的的题目。这两者是关联的,其实是同一个本质。
#5
tlliqi2015-05-04 14:24
so 多,具体是哪一个?
#6
鲤鱼爱美丽2015-05-05 00:26
又来聆听大大的教诲了,每次看都赶脚很有道理啊啊
#7
冰镇柠檬汁儿2015-05-05 00:29
学习应该专精一方面吧,会javascript,其他的很多东西不会也不行啊
#8
hu9jj2015-05-05 07:58
我可是只会灌水哟
#9
tlliqi2015-05-05 08:11
以下是引用hu9jj在2015-5-5 07:58:02的发言:

我可是只会灌水哟
汇编掌门8只是会这吧
#10
wangnannan2015-05-05 09:34
前十语言 Python Ruby还没学习到 我觉得学习语言是一方面 更重要的是要学习涉及到这个语言的框架 把能力提升到全局 用于实战 这是需要提高的很重要一部分
例如 java经典的三大框架 php的Symfony Yii CodeIgniter Zend 甚至对于新手来说c#经典的mvc框架 等等等等 就不一一列举了
#11
纳兰伽香2015-05-05 11:13
以下是引用TonyDeng在2015-5-4 11:13:58的发言:

记住:仅基于调查数据或报酬前景来选择一门语言将会失败。

纳兰应看一看。

好多  我该学哪一个
#12
纳兰伽香2015-05-05 11:16
C和JS吧  贪多了  但是我目前的确就在这里折腾
#13
zklhp2015-05-05 13:06
学习了
#14
冰镇柠檬汁儿2015-05-05 13:13
以下是引用纳兰伽香在2015-5-5 11:16:12的发言:

C和JS吧  贪多了  但是我目前的确就在这里折腾

这两个有点风马牛不相及了吧,完全是两个极端了
#15
BlueGuy2015-05-06 00:05
都快死了还学习
#16
tlliqi2015-05-06 06:41
以下是引用纳兰伽香在2015-5-5 11:16:12的发言:

C和JS吧  贪多了  但是我目前的确就在这里折腾
折腾吧
#17
龙牙2015-05-06 08:59
还是学与Java有关的
1