对于新入行的人,选什么语言要考虑的因素

对还没入行的人来说,要选择一门编程语言,确实要考虑很多因素。在这里,我把我知道的列出来,供初学者参考。
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的语言对应的职位的薪水(Best Programming Languages For Job Demand and Salaries, 2015,下面表格中的比率指某种语言在招聘广告中出现的比率,年薪指平均年薪,单位美元):
排名语言比率年薪
($) 1 Java 18% 100,000
2 JavaScript 17% 90,000
3 C# 16% 85,000 4 C 9% 90,000 5 C++ 9% 95,000
6 PHP 7% 75,000 7 Python 5.5% 100,000 8 R 3% 65,000 9 Scheme 3% 65,000 10 Perl 3% 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 万;

所以,选择编程语言,是要综合去考虑行业、技术图谱、薪水等各方面因素。我的建议是,要先看你想到哪个行业做哪类产品,然后看这类产品用什么语言,那你就选择这种语言。

假如你想做工业控制或者驱动开发,那C++是必须的。假如你想做页游,那JS也可以。假如你想做电商,Java是首选。假如你想做金融系统,C++恐怕也是用得比较多的……









https://zhuanlan.zhihu.com/p/59598383
https://zhuanlan.zhihu.com/p/59599381

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值