当你选择编程语言时你在选择什么


我的微信订阅号“程序视界”有个“有问有答”栏目。上次发了问答 | 我适合做软件开发吗这篇文章,里面提到了“我是否适合做软件开发”和“如何開始行动”两个问题。这次我们来回答这个问题:我应该学哪种语言?

编程语言流行度在说什么

TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标。每月更新,这份排行榜排名基于互联网上有经验的程序猿、课程和第三方厂商的数量。

TIOBE的排名非常值得參考,但请注意这个排行榜不过反映某个编程语言的热门程度,并不能说明一门编程语言好不好。以下是2015年TIOBE的编程语言排行:

Stack Overflow是最火、最专业、最有效的IT技术问答站点,非常多机构或个人通过它的标签来分析编程语言的流行趋势。也具有非常强的可參考性。

Stack Overflow 2015年的开发人员调查结果中最受欢迎的技术例如以下:

最被爱的语言例如以下:

Github是全球最火最流行的开源码托管站点和社区,下图是其2015年8月份的数据,包括了最热的10大编程语言,以及2008年到2015年热门语言的变化趋势:

关于编程语言和技术的流行度排名有非常多非常多。它们在说什么?我们是否能依据它们来选择学习哪门语言?

编程语言的流行度说明了:

  1. 哪些语言当下一段时间内比較流行
  2. 比較近的将来(2~3年)哪些语言比較有生命力
  3. 语言的就业难度

所以。选择语言时,编程语言排行榜有一定參考价值。编程语言的热门程度非常大程度上决定了你能够进入什么样的公司,获得什么样的项目。

选择语言时你在选择什么

对还没入行的人来说,要选择一门编程语言。确实要考虑非常多因素。在这里,我把我知道的列出来。供刚開始学习的人參考。

1. 技术图谱

当你选择一门编程语言时,你不只选择了语言本身。还有环绕着这门语言产生了各种各样的应用框架。比方你选择C++,将来就可能接触到这些框架:

Boost,Qt。Silicon,tufao,TreeFrog。WTL,STL,libev,Cocos2d-x,Dlib,Ultimate++,Asio,TinyXML,libxml++。CEGUI、FLTK、wxWidgets、Ogre 3D、Cairo、Skia、OpenCV、CxImage、Json++、Json11、CppUnit、OpenSSL、Crypto++、C++React、OpenCL、OpenAL、Vorbis、Memcached、libcurl、SQLite……

除了直接与你所选语言相关的技术框架。另一些可能常常会与你所用语言搭配的其他语言,比方你选择C++。那Java、C、Python、JavaScript就是与它搭配使用比較频繁的语言。像Node.js,就是混合体了。像JNI,也在Java和C之间搭建了桥梁……

你终于会依据你选择的语言构建出自己的技术图谱,你的技术图谱决定了你将来的发展和你在企业眼中的价值。

从这点来讲。应当关注流行度高、应用广泛、有大公司參与的语言。

2. 行业

有机构通过分析与 C++ 语言相关的招聘信息得出的结果,使用C++语言的前三个行业是:金融、银行和游戏。接下来是:Front Office、通信、电子、投行、市场、制造业、零售业。

你选择了某种语言。就可能到该语言应用最多的行业里去。

所以,在选择语言时,有必要了解这种语言被应用最多的行业。

有时是你想做的产品决定了你要用的语言。比方你想做iOS上的游戏,那预计就得选择Objective-C比教靠谱。而假设你想做跨平台的游戏,支持Android和iOS,可能C++和Cocos2d-x会比較适合。

3. 薪水

技术本身无优劣,应当依据特定场景下适合不适合来选择和看待。打个比喻。产品和需求是脚,技术是鞋子。但,不可否认的是,不同的语言,在你择业时,薪水起点是不同的。

比方你选择Objective-C、JavaScript、Android。起点是不同的,到招聘站点搜索一下相应岗位用人企业给出的薪水范围就能够看出来。

职业规划公司Gooroo通过细致查看了美国、英国和澳大利亚的超过50万份的IT职位空缺。统计出了需求热度排名前10的语言相应的职位的薪水(http://www.sitepoint.com/best-programming-language-learn-2015-job-demand-salaries/):

排名语言招聘广告中出现比率平均年薪
1Java18%100,000美元
2JavaScript17%90,000美元
3C#16%85,000美元
4C9%90,000美元
5C++9%95,000美元
6PHP7%75,000美元
7JPython5.5%100,000美元
8R3%65,000美元
9Scheme3%65,000美元
10Perl3%100,000美元


语言有地区性差异,上面的数据可能更偏向美国。

国内我没找到这种数据。但语言与薪水有相关性,这是毋庸置疑的。

4. 同行多寡

不同语言使用的人数不同,你选择语言时还会选择和哪些人同行、和多少人同行。搞技术无人切磋是寂寞的。所以。使用人数多少也是一个考虑因素。而一门语言的绝对使用人数有时并不能影响你。相对的,你身边有多少人用可能会对你有非常大影响。此时地理因素又非常重要,比方Scala,可能北京有一些人用,西安则找不到几个。你要在西安用Scala,就非常少能找到同伴来沟通。

假设你的身边有有非常多和你一样学习该语言的人,那么在遇到困难的时候能够及时的寻求帮助。这一点非常重要哦。

2015年4月15日 JetBrains(牛B公司,各种IDE)公布了 CLion,,一个跨平台的 C/C++ IDE。还捎带着统计了C/C++程序猿及其他程序猿的数量。以下数据是全球范围内的,估算的哦:

  1. Java 有 900 万;
  2. C# 大约 780 万;
  3. JavaScript 大约 760 万。
  4. PHP 将近 600 万;
  5. C++ 大约 440 万;
  6. Python 有 400 万;
  7. Objective-C 大约 330 万。
  8. C 大约 190 万;
  9. Ruby 大约 180 万;

5. 主要看气质

语言有性格,会与人的气质相互影响。有人就喜欢C不喜欢Java,有人就喜欢Java讨厌C#,有人就喜欢C#憎恶PHP……为什么有时你对一种技术会有“相看两不厌,唯有敬亭山”的感觉?那是由于,你和这门技术气质相近。和创建者气质相近……

这里有一张使用不同语言的程序猿的气质图::

能參考?能參考?真的能吧……

总结

回想一下,事实上选择编程语言时常常考虑以下几个因素:

  1. 应用范围,即行业和产品所需
  2. 薪资多少
  3. 同行多寡,和语言有关,有时也和地理属性有关
  4. 热门程度

这些都能够通过互联网信息检索、整理得出,所以。你能够自己决定选择哪一门语言喽。


很多其他精彩文章,參看“漫谈程序猿”专栏。

困惑、成长、发展、增值、新知,尽在微信订阅号“程序视界”:

程序视界

原文地址:https://www.cnblogs.com/yjbjingcha/p/7258952.html