对IT职业、学习软件开发的人员来讲,开发语言真是五花八门、至关凌乱。做为过来人,在刚刚入行时也经历过语言选型的苦恼,花费不少时间学习的语言找不到合适的工做岗位、或者试图用一种语言去解决全部问题,虽然说任何一种语言理论上均可以解决某个问题,但每种语言的特性和用法不同,解决问题的效率也不同,薪水也不同。前端
语言就是开发者的工具利器,选对了语言,解决问题事半功倍,并且不一样行业不一样语言的薪酬差别也很大。但愿本文对入门者的开发语言选型以及打算转行其它语言的同行有所帮助,也欢迎同行关注我,与我交流。c++
谈到开发语言的前景,业内通常都会参考TIOBE指数,TIOBE指数是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,此类排行只是反映某个编程语言的热门程度,并不能说明一门编程语言好很差,由于工具没有好坏之分,适合的就是最好的。程序员
TIOBE指数每个月更新一次,对世界范围内开发语言的走势仍具备重要参考意义,该指数能够用来检阅开发者的编程技能是否符合趋势,以及什么编程语言是应该及时掌握的,从而作出是否有必要做出转行的决定。web
上图是TIOBE 2020年的开发语言热门度排行榜,咱们只针对前十以及前二十中的主要开发语言进行介绍,前二十里面有些事国内不经常使用的就不在此介绍了。算法
若是你是计算机相关专业,确定学习过C语言;若是你不是计算机相关专业,打算从事软件开发,也建议你将C语言做为启蒙语言,由于编程的许多关键概念,好比结构体、数组、指针、内存管理等等都是参考C语言标准。数据库
C语言是目前流行语言中最接近硬件的语言,语言特性越接近硬件,它的执行效率就越高,一般开发效率会越低(费劲)。不少硬件的固件、嵌入式程序以及对程序执行效率有特殊要求的,都须要使用C语言开发,这也是C语言为何可以流行40多年经久不衰,不可替代的缘由。若是你打算从事硬件开发或者挑战高性能开发,C语言是最佳选择。编程
Java是目前最大众化的开发语言,已经流行了将近20年。在Java流行的前10年,它和C#.net统治着各类应用程序的开发;近10年,Java在服务端和桌面应用开发领域应该是在逐渐减小(由于出了不少后起之秀),但因为Android移动应用的普及,Android移动应用开发只能使用Java,因此Java依然保持流行。后端
Java语言的通用性很强,也就是说Java开发者的横向跨行业发展空间和纵深垂直发展空间都是目前最大的,工做机会也是目前(2020年)最多的。注意,是我说的是只是当前的现状,个人判断是Java在服务端开发的方面会愈来愈少,Java之因此还能保持流行,很大程度上取决于Android移动应用开发只能使用Java,别无选择,以及大数据Hadoop生态是用的Java语言。若是你打算从事服务端开发,Java已经不是最好的选择,由于学习成本相对较高;若是你打算从事Android移动应用开发也只能选择学习Java语言。数组
Python是目前公认的最容易上手的开发语言,容易到什么程度?如今儿童编程教学领域,用的就是Python。由于Python上手容易,这也促使基于Python的现成轮子(开源库)不少,不少问题都有现成的库和代码,直接就能使用。任何事物有两面性,Python容易上手,但他的单线程解释语言的特性,决定了他的执行性能不高,并且也不符合如今CPU多核多线程的发展趋势。浏览器
不少性能要求不高的应用服务端,均可以用Python快速实现,Python这种胶水语言的通用性也很强,可是很难将性能作到极致,因此Python开发者也很难挑战业界高薪。一般,Python除了用于开发通常应用(实现功能就行,别的要求不高)以外,自动化运维、自动化测试、人工智能、大数据岗位会将Python做为工具脚本语言,这样Python与运维、测试、人工智能、大数据等相结合以后,也是能够胜任高薪的,注意,是须要与另外一种技能组合使用才能挑战高薪,单纯的Python开发者薪酬广泛偏低(学习投入与收益成正比)。
C++和C语言属于宗亲,都比较接近硬件,只是C语言是面向过程的开发语言,C++与C语言相比更具有面向对象特性,所以C++的开发效率要比C语言高,但C++与C语言的性能相差无几,因此在高性能开发领域,不少开发者都使用C++而不使用C语言,硬件开发领域依然使用C语言(这是无可替代的)。
若是你想挑战高薪,从事高性能开发,C和C++是不错的选择。
C#与Java曾经流行于同一个时代,甚至超越Java的流行,Java有Android移动应用开发继续保持流行,但C#的流行很快就衰退了。如今除了构建微软家族各类桌面应用以外,不多开发者会选择C#,如今C#依然可以排到前五,是由于Windows桌面应用(如办公软件、游戏软件)还有很大需求,毕竟大多数人都还在用微软的Windows操做系统。但C#的流行度,就目前来看,很难持续。
当前,新手不多有人会选择C#,除非工做所属行业或者因为历史遗留问题,必须使用C#开发(国内是这样,国外可能不太同样)。
在TIOBE上VisualBasic .Net居然能排到第六的位置,你是否是以为很奇怪,我也以为很奇怪。但仔细想一想,也有必定的合理性。在2000年先后的5年(大概10年期间),最流行的开发工具,当属微软的Visual Studio莫属了,那时的大多数开发者都是使用VisualBasic .Net,后来有一部分转向了C#,由于C#同属微软体系,但C#的代码比VisualBasic .Net更简洁。也就是说15年前最流行的VisualBasic .Net如今排到第六有其合理性,毕竟瘦死的骆驼比马大。
当前,新手连比VisualBasic更简洁的C#都不会选择,更别说选择VisualBasic .Net了。除非工做所属行业或者因为历史遗留问题,必须使用VisualBasic .Net开发(国内是这样,欧美使用VisualBasic比国内要更多)。
JavaScript在TIOBE上才排到第七,也是我很不理解的,由于在我心目中JavaScript是最流行最通用的开发语言,几乎每个Web页面都须要用到JavaScript。JavaScript是世界上最流行的脚本语言,由于你在电脑、手机、平板上浏览的全部的网页,以及无数基于HTML5的手机App,交互逻辑都是由JavaScript实现的。简单地说,JavaScript是一种运行在浏览器中的解释性的编程语言。在当今Web世界里,只有JavaScript能跨平台、跨浏览器驱动网页,与用户交互,你没有其它选择。并且随着Nodejs生态的完善,用JavaScript也能够实现服务端和桌面应用程序。
JavaScript跟Python差很少容易上手,若是你是新手入门,或是打算从事Web前端开发,或者打算从事全栈开发(前端后端都能拿下),JavaScript是最省心的选择,前端和后端技术栈一致,都是JavaScript。全部的互联网产品和互联网企业,没有不须要JavaScript开发的。
PHP是公认的作网站开发效率最快的编程语言。PHP原意为Personal Home Page的缩写,后来改名为 "PHP: Hypertext Preprocessor超文本预处理器",它就是为作网站而生的开发语言。如今不少网站、开源建站系统都是用PHP开发的。PHP除了用于作网站,也不多用于别的应用,若是你打算从事网站开发、建站工具开发,PHP是不错的选择。PHP开发者的薪资水平和其它建站语言开发者相比,一般偏低。
SQL结构化查询语言是一种能被数据库理解的语言,是每个开发者都必需要会的开发语言,由于几乎没有软件不须要使用数据库。因此无论你是哪一种语言的开发者,都必须熟悉SQL,先是学习通用的SQL语法,而后再结合某种数据库学习基于某种数据库的SQL语法,好比MySQL,各类数据库的SQL略有差别。
Go语言是谷歌公司近些年推出的一款开发语言,属于后起之秀,对于web服务器开发、网络开发以及命令行程序开发来讲,它是又一个很是不错的选择。Go语言的语法风格和C/C++很接近,性能也不比C/c++差多少,是一种真正兼顾性能和开发效率的语言,这也是Go语言迅猛流行的根本缘由。若是你打算从事互联网行业,挑战高性能开发和高薪酬,Go语言是不错的选择。
对于初学编程的人来讲,选择Python或JavaScript能够提升入门的学习效率;对于想从事Android移动应用开发的人来讲,只能选择Java;对于想从事苹果iOS移动应用开发的人来讲,再也不选择Objective-c而是选择Swift;对于想从事Web前端开发或者全栈开发的人来讲,JavaScript是很好的选择(还需熟练HTML和CSS);对于web后端开发来讲,PHP、Java、Python和Go语言均可以,建议选择Go语言(不只高效并且高薪);对于硬件开发,首选C语言;对于高性能的算法实现,首选C++;无论从事哪一种语言开发,都须要熟悉SQL语言。
至于开发者的薪酬,除了看从事哪一种开发语言和所属行业以外,关键看你处在哪一个段位。国内一线城市开发者的薪酬,初级(1-2年)在10K左右,中级(3-5年)在20K左右,中高级(5年以上)在30k左右,更高级开发者的年薪百万以上也很常见。
那么是否是开发者的薪酬与语言类别就没有关系了呢,固然不是,每一个行业的薪酬水平是不同的,而不一样行业一般使用的语言也不同,举个例子,用Python支撑一个生产型非互联网企业的门户网站(单机秒并发不超过100),和用Go语言支撑一个千万级秒并发用户的互联网应用相比(单机秒并发超过2000),固然是后者Go语言开发者的含金量更高(高几倍甚至几十倍),而一个千万级秒并发用户的互联网应用一般不会使用Python开发。
另外若是你想更好的提高你的编程能力,好好学习C/C++编程知识的话!那么你很幸运~
C语言C++编程学习交流圈子,QQ群1095293493【点击进入】微信公众号:C语言编程学习基地
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比本身琢磨更快哦!
编程学习书籍:
编程学习视频: