先说说对于如今程序员圈中的对于.net技术爱恨交织的一种现象。
首先来说“恨”。
从收入上看,在国内,.NET 开发者的平均薪资水平在JAVA,C/C++,Python等主流开发语言中是倒数的水平。这里特别拿Java来对比一下,Java与C#语法十分相近,因而许多C#程序员都会去转Java,Java在国内的生态与市场占有率远高于C#,主流打大公司如BTA等都会使用Java/c/c++作为主要的开发语言,提供的高新岗位也大多为如Java开发工程师,C/C++开发工程师,而很少看到BTA这样的大厂会招收.NET开发工程师。这是不是可以认为以.NET 平台自居的C#已经没有生存空间?想通过C#入门的小白都应该转而去学Java?
答案:是也不是。
首先,.NET 开源晚,直到2016年才推出.NET CORE 1.0正式宣告其拥抱开源,而在这之前,开源的Java已经形成了十分良好的生态,拥有众多优秀的“轮子”,占领了大部分的市场。这的确是事实。然而,面对众多语言的围攻,C#也确实有其死忠粉的维护。
从行业上看,Java在任何一个领域都有着大量的市场份额,从web前后端,安卓,物联网,大数据分析等。但是C#也有其不可撼动的领域,那就是制造业或者实体业中的软件市场,譬如上位机,mes系统,erp系统,诸如此类。当然上述领域在.net core推出后也逐渐形成了生态。
现在说说“爱”。
首先,.NET程序员由于其所处的行业特性,决定其相对于许多的互联网公司加班更少,或者基本不加班。尤其在一些制造型企业,要做的基本就是维护老项目,不像互联网公司有新产品的上线需求,更新换代很快,加班是常态。其次,与Java的大市场份额相对应的是巨大的Java程序员供给,这里培训机构“贡献”很大的力量,需求大,竞争也大。而.net的小圈子里,小的人才供给也自嗨得很。再次,.NET技术,尤其是.net core推出以后,使用.net core进行项目的开发真是用的人才知道,真香定律。微软在.net 上的战略布局也让人相信.net core会成为一门热门技术,会逐渐夺回市场。
补充:.NET开发web应用必须掌握的技术:
(1)深入掌握:Asp.net core mvc 架构
(2)熟练掌握:主流数据库如Mysql,SQL Serve,Oracle等以及EFcore等orm框架
(3)基本掌握:JavaScript,以及主流前端框架如Jquery,Vue等,以及Json,Ajax等
(4)熟悉了解:Html,Css
个人拙见,望交流指正。