你知道各类开发语言的薪酬差距吗?高薪在于适合,而不在于广度!

对IT职业、学习软件开发的人员来说,开发语言真是五花八门、相当凌乱。

作为过来人,在刚刚入行时也经历过语言选型的苦恼,花费很多时间学习的语言找不到合适的工作岗位、或者试图用一种语言去解决所有问题。

虽说任何一种语言理论上都可以解决某个问题,但每种语言的特性和用法不一样,解决问题的效率也不一样,薪水也不一样。

语言就是开发者的工具利器,选对了语言,解决问题事半功倍,而且不同行业不同语言的薪酬差异也很大。

希望本文对入门者的开发语言选型以及打算转行其它语言的同行有所帮助。


 

各种开发语言

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


 

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

1. Java


 

Java是目前最大众化的开发语言,已经流行了将近20年。

在Java流行的前10年,它和C#、.net统治着各种应用程序的开发。

近10年,Java在服务端和桌面应用开发领域应该是在逐渐减少(因为出了很多后起之秀)。

注意,是我说的是只是当前的现状,我的判断是Java在服务端开发的方面会越来越少,Java之所以还能保持流行,很大程度上取决于Android移动应用开发。

如果你打算从事服务端开发,Java已经不是最好的选择,因为学习成本相对较高。

 

2. C语言


 

如果你是计算机相关专业,肯定学习过C语言;如果你不是计算机相关专业,打算从事软件开发,也建议你将C语言作为启蒙语言。

因为编程的许多关键概念,比如结构体、数组、指针、内存管理等等都是参考C语言标准。

C语言是目前流行语言中最接近硬件的语言,语言特性越接近硬件,它的执行效率就越高,通常开发效率会越低(费劲)。

很多硬件的固件、嵌入式程序以及对程序执行效率有特殊要求的,都需要使用C语言开发,这也是C语言为什么能够流行40多年经久不衰,不可替代的原因。

如果你打算从事硬件开发或者挑战高性能开发,C语言是最佳选择。

 

3. Python


 

Python是目前公认的最容易上手的开发语言,容易到什么程度?现在儿童编程教学领域,用的就是Python。

因为Python上手容易,这也促使基于Python的现成轮子(开源库)很多,很多问题都有现成的库和代码,直接就能使用。

任何事物有两面性,Python容易上手,但他的单线程解释语言的特性,决定了他的执行性能不高,而且也不符合现在CPU多核多线程的发展趋势。

很多性能要求不高的应用服务端,都可以用Python快速实现,Python这种胶水语言的通用性也很强,但是很难将性能做到极致,所以Python开发者也很难挑战业界高薪。

 

4.C++


 

 

C++和C语言属于宗亲,都比较接近硬件,只是C语言是面向过程的开发语言,C++与C语言相比更具备面向对象特性。

因此C++的开发效率要比C语言高,但C++与C语言的性能相差无几。

所以在高性能开发领域,很多开发者都使用C++而不使用C语言,硬件开发领域依然使用C语言(这是无可替代的)。

如果你想挑战高薪,从事高性能开发,C和C++是不错的选择。

 

5.C#


 

C#与Java曾经流行于同一个时代,甚至超越Java的流行,Java有Android移动应用开发继续保持流行,但C#的流行很快就衰退了。

现在除了构建微软家族各种桌面应用之外,很少开发者会选择C#,现在C#依然能够排到前五是因为Windows桌面应用(如办公软件、游戏软件)还有很大需求。

毕竟大多数人都还在用微软的Windows操作系统,但C#的流行度,就目前来看,很难持续。

当前,新手很少有人会选择C#,除非工作所属行业或者由于历史遗留问题,必须使用C#开发(国内是这样,国外可能不太一样)。

 

6、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比国内要更多)。

 

7、JavaScript


 

JavaScript在TIOBE上才排到第七,也是我很不理解的,因为在我心目中JavaScript是最流行最通用的开发语言,几乎每一个Web页面都需要用到JavaScript。

JavaScript是世界上最流行的脚本语言,因为你在电脑、手机、平板上浏览的所有的网页,以及无数基于HTML5的手机App,交互逻辑都是由JavaScript实现的。

简单地说,JavaScript是一种运行在浏览器中的解释性的编程语言。

在当今Web世界里,只有JavaScript能跨平台、跨浏览器驱动网页,与用户交互,你没有其它选择。

随着Nodejs生态的完善,用JavaScript也可以实现服务端和桌面应用程序。

 

8、PHP


 

PHP是公认的做网站开发效率最快的编程语言。

PHP原意为Personal Home Page的缩写,后来更名为 "PHP: Hypertext Preprocessor超文本预处理器",它就是为做网站而生的开发语言。

现在很多网站、开源建站系统都是用PHP开发的。

PHP除了用于做网站,也很少用于别的应用,如果你打算从事网站开发、建站工具开发,PHP是不错的选择。

PHP开发者的薪资水平和其它建站语言开发者相比,通常偏低。

 

9、SQL

SQL结构化查询语言是一种能被数据库理解的语言,是每一个开发者都必须要会的开发语言,因为几乎没有软件不需要使用数据库。

所以不管你是哪种语言的开发者,都必须熟悉SQL,先是学习通用的SQL语法,然后再结合某种数据库学习基于某种数据库的SQL语法,比如MySQL,各种数据库的SQL略有差异。

 

10、Go语言


 

Go语言是谷歌公司近些年推出的一款开发语言,属于后起之秀,对于web服务器开发、网络开发以及命令行程序开发来说,它是又一个非常不错的选择。

Go语言的语法风格和C/C++很接近,性能也不比C/c++差多少,是一种真正兼顾性能和开发效率的语言,这也是Go语言迅猛流行的根本原因。

如果你打算从事互联网行业,挑战高性能开发和高薪酬,Go语言是不错的选择。

 

11、Objective-c和Swift

Objective-c和Swift是两种不同的开发语言,为什么放在一起介绍,因为这两种语言都是用于开发iOS移动应用的。

原来开发iOS移动应用是用Objective-c开发,Objective-c是一种对C语言进行面向对象封装的语言。

后来各种语言都在追求语法的简洁性,Objective-c跟其它语言相比不够简洁,于是就出现了一种更简洁而且兼容Objective-c优点的语言Swift。

现在大部分iOS移动应用还是用Objective-c开发的,但苹果公司的生态系统在逐步推荐Swift。

如果你打算从事iOS移动应用开发,只能选择Objective-c和Swift,二者相比选其一。

 

12、关于开发语言选择的总结性建议

  对于初学编程的人来说,选择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++编程学习交流俱乐部!【点击进入】

问题答疑,学习交流,技术探讨,还有超多编程资源大全,零基础的视频也超棒~

原文地址:https://www.cnblogs.com/huya-edu/p/14241693.html