热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

你知道不同开发语言的薪酬差距吗?

对IT职业、学习软件开发的人员来说,开发语言真是五花八门、相当凌乱。作为过来人,在刚刚入行时也经历过语言选型的苦恼,花费很多时间学习的语言

对IT职业、学习软件开发的人员来说,开发语言真是五花八门、相当凌乱。作为过来人,在刚刚入行时也经历过语言选型的苦恼,花费很多时间学习的语言找不到合适的工作岗位、或者试图用一种语言去解决所有问题,虽说任何一种语言理论上都可以解决某个问题,但每种语言的特性和用法不一样,解决问题的效率也不一样,薪水也不一样。

语言就是开发者的工具利器,选对了语言,解决问题事半功倍,而且不同行业不同语言的薪酬差异也很大。希望本文对入门者的开发语言选型以及打算转行其它语言的同行有所帮助,也欢迎同行关注我,与我交流。

各种开发语言

谈到开发语言的前景,业内一般都会参考TIOBE指数,TIOBE指数是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,此类排行只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,因为工具没有好坏之分,适合的就是最好的。

TIOBE指数每月更新一次,对世界范围内开发语言的走势仍具有重要参考意义,该指数可以用来检阅开发者的编程技能是否符合趋势,以及什么编程语言是应该及时掌握的,从而做出是否有必要作出转行的决定。

上图是TIOBE 2020年的开发语言热门度排行榜,我们只针对前十以及前二十中的主要开发语言进行介绍,前二十里面有些事国内不常用的就不在此介绍了。

C语言

如果你是计算机相关专业,肯定学习过C语言;如果你不是计算机相关专业,打算从事软件开发,也建议你将C语言作为启蒙语言,因为编程的许多关键概念,比如结构体、数组、指针、内存管理等等都是参考C语言标准。

C语言是目前流行语言中最接近硬件的语言,语言特性越接近硬件,它的执行效率就越高,通常开发效率会越低(费劲)。很多硬件的固件、嵌入式程序以及对程序执行效率有特殊要求的,都需要使用C语言开发,这也是C语言为什么能够流行40多年经久不衰,不可替代的原因。如果你打算从事硬件开发或者挑战高性能开发,C语言是最佳选择。

Java

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的现成轮子(开源库)很多,很多问题都有现成的库和代码,直接就能使用。任何事物有两面性,Python容易上手,但他的单线程解释语言的特性,决定了他的执行性能不高,而且也不符合现在CPU多核多线程的发展趋势。

很多性能要求不高的应用服务端,都可以用Python快速实现,Python这种胶水语言的通用性也很强,但是很难将性能做到极致,所以Python开发者也很难挑战业界高薪。通常,Python除了用于开发一般应用(实现功能就行,别的要求不高)之外,自动化运维、自动化测试、人工智能、大数据岗位会将Python作为工具脚本语言,这样Python与运维、测试、人工智能、大数据等相结合之后,也是可以胜任高薪的,注意,是需要与另一种技能组合使用才能挑战高薪,单纯的Python开发者薪酬普遍偏低(学习投入与收益成正比)。

C++

C++和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#开发(国内是这样,国外可能不太一样)。

VisualBasic .Net

在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

Javascript在TIOBE上才排到第七,也是我很不理解的,因为在我心目中Javascript是最流行最通用的开发语言,几乎每一个Web页面都需要用到Javascript。Javascript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,以及无数基于HTML5的手机App,交互逻辑都是由Javascript实现的。简单地说,Javascript是一种运行在浏览器中的解释性的编程语言。在当今Web世界里,只有Javascript能跨平台、跨浏览器驱动网页,与用户交互,你没有其它选择。而且随着Nodejs生态的完善,用Javascript也可以实现服务端和桌面应用程序。

Javascript跟Python差不多容易上手,如果你是新手入门,或是打算从事Web前端开发,或者打算从事全栈开发(前端后端都能拿下),Javascript是最省心的选择,前端和后端技术栈一致,都是Javascript。所有的互联网产品和互联网企业,没有不需要Javascript开发的。

PHP

PHP是公认的做网站开发效率最快的编程语言。PHP原意为Personal Home Page的缩写,后来更名为 "PHP: Hypertext Preprocessor超文本预处理器",它就是为做网站而生的开发语言。现在很多网站、开源建站系统都是用PHP开发的。PHP除了用于做网站,也很少用于别的应用,如果你打算从事网站开发、建站工具开发,PHP是不错的选择。PHP开发者的薪资水平和其它建站语言开发者相比,通常偏低。

SQL

SQL结构化查询语言是一种能被数据库理解的语言,是每一个开发者都必须要会的开发语言,因为几乎没有软件不需要使用数据库。所以不管你是哪种语言的开发者,都必须熟悉SQL,先是学习通用的SQL语法,然后再结合某种数据库学习基于某种数据库的SQL语法,比如MySQL,各种数据库的SQL略有差异。

Go语言

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++编程学习交流圈子,点击进入微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍:

编程学习视频:

 


推荐阅读
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文讨论了同事工资打听的话题,包括同工不同酬现象、打探工资的途径、为什么打听别人的工资、职业的本质、商业价值与工资的关系,以及如何面对同事工资比自己高的情况和凸显自己的商业价值。故事中的阿巧发现同事的工资比自己高后感到不满,通过与老公、闺蜜交流和搜索相关关键词来寻求解决办法。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了新款奇骏的两个让人上瘾的功能,分别是智能互联系统和BOSE音响。通过对新款奇骏的配置和功能进行评测,探讨了这两个新增功能的使用体验和优势。此外,还介绍了新款奇骏的其他配置和改进,如增加的座椅和驾驶辅助系统,以及内饰的舒适性提升。对于喜欢音响的消费者来说,BOSE音响的升级也是一个亮点。最后,文章提到了BOSE音响的数字还原能力,以及7座版无法配备BOSE音响的原因。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • Excel数据处理中的七个查询匹配函数详解
    本文介绍了Excel数据处理中的七个查询匹配函数,以vlookup函数为例进行了详细讲解。通过示例和语法解释,说明了vlookup函数的用法和参数的含义,帮助读者更好地理解和运用查询匹配函数进行数据处理。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 字符常量与变量的定义及使用方法
    本文介绍了字符常量与变量的定义及使用方法,包括字符常量的定义、值和转义字符的表示方法;字符串常量的定义和结束标志;字符型数据与整型数据的区别;字符型变量的定义和内存占用;字符串变量的运算方法。同时提醒注意字符串常量不可赋值给字符型变量,需使用数组或指针进行存取。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • C语言判断正整数能否被整除的程序
    本文介绍了使用C语言编写的判断正整数能否被整除的程序,包括输入一个三位正整数,判断是否能被3整除且至少包含数字3的方法。同时还介绍了使用qsort函数进行快速排序的算法。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有