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


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

编程语言流行度在说什么

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. 热门程度

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


更多精彩文章,参看“漫谈程序员”专栏。

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

程序视界

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foruok

你可以选择打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值