在Java大环境下.NET程序员如何夺得一线生机
先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜:
笔者从业十余年,一直是在.NET圈子摸爬滚打,曾经也有几次机会可以转Java,但或许是懒惰,或许出于对微软的信任,也或许是相信市场供求关系的调整,总之,没有换过语言,一直追寻微软脚步,实践各种新技术并扩充知识面。身边也有不少.NET技术人员换成了Java,有些发展的着实不错,有些也不尽人意。回头望去,可能真的应了那句话“选择比努力更重要”。
现实中我们得正视自动的短板,笔者说说自己在.NET技术落地上遇到的一些困难,我想大家或许都多多少少遇到过,应该有些共鸣:
1 普遍对.NET技术的不信任
两个架构师出了两套方案,.NET的和Java的,很难得到公平的对待。即便Java的方案粗糙,但公司更信任Java一些,毕竟大环境如此,人也好招。而且很多领导也不太懂技术,看不出不同方案间悬殊的差距。Spring全家桶也着实给力,一套下了,基本通吃。虽然.NET Core如今发展的也不错,但还是有人气没市场吧,一些招.NET Core的公司,可能面试题都不知道怎么出,自己公司也不用,就是面试上聊聊。
2 在大数据处理上的短板
.NET其实很早就能做大数据项目了,有本地的也有云端的,本地的太生僻,没人知道,也很少有.NET开发去学习,云端的更是用不起,笔者身边倒是有一位做.NET大数据的同僚,他的话很中肯,“你跟人家讲.NET做大数据,人家心里就是‘呵呵’”。
3 流计算的空缺
.NET的流计算刚刚开源,这时候资料太少,基本不会用。
4 Azure着实消费不起
讲真,笔者用过2年多的Azure真的很好用,但是就是真真儿的贵呀,中小企业更喜欢包年的产品。
5 不好招人
虽然行情不好,很多人找不到工作,但是企业就是招不到合适的人。现在,.NET方面的硬手,以当年的老人为主。因为近些年,社区、书籍、培训机构、学校对.NET都比较冷淡。.NET新技术的书籍很少,大多都比较浅显。新人获取知识的途径受限,对.NET技术的理解并不理想。如果不知道如何检索微软放出的资源,就很难与时俱进。微软的很多资料是没有中文版本的,很多人还是难以接受英文文档。总之,硬手不好招,上半年招到个会AOP的,感觉跟中奖了一样。
然后,正题来了,能看到这里说明,大家也都是.NET同僚。面对冷清的市场环境,我们该如何应对呢,我说下自己的想法:
1 如果你还年轻而且又有野心和精力,还是换Java或者别的语言吧
.NET的性价比比较低。你需要掌握微软的产品和技术,还需要学习非微软平台的产品和技术,要了解微软的Azure,最主要的你英文要好,因为英文是.NET继续走下去最大的砍儿。总之,就是学的多,学的杂,学的累,然后挣钱少,不好找工作,不少工作需要英文。
2 如果不想换语言了,那么应该做以下这些准备
学习英语 学习英语是我们首要的任务,.NET主流的大公司除了万达以外,我了解的都是外企在用,英语交流将会成为最大的障碍。
学会检索微软的资源 微软提供的3类资源比较有营养:第一,微软项目最佳实践,就是微软的代码,比如:ABP、eShop;第二,微软提供的电子书,比如《Cloud Design Patterns》;第三,MSDN上一的一些不错的博文。
多多实践开源技术 比如Docker,K8s等
Azure Azure微软一直在推,有条件的话还是学习学习,没条件的看下文档了解下,有些外企在用,比如斯伦贝谢、微软,你比别人了解的多,就能脱颖而出。
总之,在Java大环境下.NET程序员如何夺得一线生机的方法就是——学英语+学习微软官方代码/文档+开源技术。
如果,你没有动力,想要放弃,我觉得有三点,我们要比Java有优势一些:
第一,VS的最好用的IDE。
第二,外企不太在意程序员年龄,国外65岁的程序员都有,所以进入外企可以降低下中年危机的风险。
第三,有些东西Java不擅长,比如与微软产品的集成如AD、SharePoint、Exchange,还有Window客户端应用开发方面。
然后,七夕节了,你想想你不努力,你老婆发消息怎么回复。
祝大家,七夕节快乐,工作虽忙,也别忘陪伴家人哦。
作者:MeteorSeed