现在的存量.Net程序员基本上大部分都应该30+了,年轻的.Net程序员基本上都很难胜任现在的.Net工作,造成这种状况的原因是因为过去对.Net的边缘化太严重导致的,总结起来无非也就那几个原因。
五个原因
第一个原因就是老生常谈的不跨平台,尽管.Net后来居上,在2015年左右推出了.NetCore,但是一些不明就里的人还是认为.Net不跨平台。
第二个原因就是生态,很多人认为.Net生态不行,其实也是因为在.NetCore没出现之前的旧观念,现在Java主流的技术,在.Net里面基本都可以找到平替。反观Java,.Net有的东西Java不一定有!
第三个原因就是国内技术生态,其实很多人说.Net生态不行,主要指的是技术生态。现在大部分主流的科技公司或者大型的互联网公司还是使用Java得比较居多,因此,Java人才会比.Net多很多。我之前做了一个统计,目前国内Java人才保有量大概是.Net程序员的十余倍!
第四个原因是薪资,如果相同水平的.Net程序员和Java程序员在同一家公司任职的话,如果Java程序员的薪资是2万,那么.Net程序员可能只能拿到1.5万甚至更少。
第五个原因是近两年才冒出来的,那就是“信创”,曾经一直流传着.Net被移出信创目录,我看好像后面又有人说信创可以使用.Net,但是我目前没有找到实质性的证据表明信创可以用.Net开发,也没有找到实质性的证据表明信创不可以用.Net开发。但是,就是因为这种不确定性,有些年轻程序员想要让自己的工作更加长久,也不会选择.Net!
有了上述几个原因,导致了现在.Net程序员大部分都是30岁以上的老.Net程序员。虽然现在也有一部分.Net程序员比较年轻,但是占比很小,而且他们当中有一部分还是因为公司需要,他们不得不学.Net!只要逮住机会,他们也会迅速转移其他技术栈。
.Net程序员难招
在这种情况下,一个公司想要招到一个比较好用的.Net程序员是难上加难!
现在.Net的常用框架基本上就三个,分别是MVC(.NetCore技术栈)、WPF和WinForm,后两者的技术栈还停留在.NetFramework,因此,招.NetFramework程序员比招.NetCore程序员要难上很多倍!
因为.NetFramework的确不能跨平台,再加上技术已经比较落后了,很多年轻程序员都不愿意去学。
我看到有些公司在招WPF程序员和WinForm程序员的时候竟然要求硕士!虽然说有这种要求的公司一般实力都很强大,但不知道以这种条件招.Net程序员要招到猴年马月才能招到。
一个很现实的问题是,.Net的上手成本很低,大学里学习编程的人是以考级为主的,放眼计算机等级考试,没有哪个等级是包含.Net开发的。因此现在这些30多岁的.Net程序员基本上学历都不高,大多数都是培训班里出来的。
所以,如果对现在的.Net程序员要求过高的话,比如学历要高,年龄要小,基本上就是等于招不到人了。
这里,我只描述大多数情况,不能一概而论,一些高素质高学历的.Net程序员手下留情!
但无论怎么说,.Net本来就很难了,没必要在招人的时候再制造一些障碍,真想把团队素质提升上来,那么最好不要使用.Net作为开发技术栈!
结语
最后,让.Net比较提气的是,目前Java的流行度已经和.Net的流行度持平了,按照目前Java流行度7.99%以及.Net流行度7.30%来看,估计.Net不需要多久流行度就要高于Java了!
但Java虽然现在比较疲软,但瘦死的骆驼比马大,程序员的保有量在那,即使Java程序员衰减了一半,其保有量仍然要比.Net高出很多倍!
如果有人问我,现在的.Net还能不能学,我会说能学,但是最好别学。世界上最好的编程语言不是PHP,我认为能够让程序员经久不衰的编程语言永远是C/C++!