一个在 .NET 一线战斗了十年的 C# 程序员的内心独白

这是我的一个内心独白,内容有点长,希望你能耐心地看完。

估计看到标题,大部分人都会说:哇!大牛!膜拜……之类的。至于是不是大牛,那我不知道,毕竟我依然有很多地方不懂,特别是现在已经流行的 Redis ,集群,那些所谓搭建高性能架构的技术,我一个都没用过,毕竟我不在互联网公司,做的基本上都是全栈相关的工作,从前端到后端再到数据库,除了设计不搞,其他都磨练出来了。

写这篇文章其实主要是心寒和有点失落吧,首先,在各大招聘网站上 .NET  的需求越来越少,即使有,要求的技术还是十年前那一堆,什么 aspx mvc wcf 这些;

其次,在知乎、头条、CSDN 这种大家常去的站点,时不时都有 JAVA C++ 或者现在的新气之秀 Python 以及最近很火的各种 AI 技术,而我看见最多的就是在说以阿里巴巴为最终目标的 JAVA  各种分布式技术,然后回复里各种热闹,回头一看曾经的 JAVA 对手的 .NET 在哪呢?几乎没有任何文章出现,要么你就得自己搜关键字才能找到几篇。

第三,就是各大论坛、公开课、分享会等大佬云集的地方,根本就没有 .NET 的身影,而 JAVA C++ 那都是一抓一大把的。

而且我好多以前的同事,大部分都转了 JAVA。每每想到这里,心里不禁一声长叹,这到底是为什么?然后又会反问我自己,还能坚持多久?到底是什么原因造成了 .NET 市场如此萎靡?我查了很多资料,问了很多人,网上也有很多人有过总结,其实我也很认同他们。不是微软本身的问题,也不是开源不开源的事情,JAVA 一直开源,又有多少人把整个 JAVA 的源码都精通了?

反过来想想 .NET 的初衷,估计很多人都是因为 C# 比 JAVA 简单而选择它的吧?我也是如此。当初学编程的时候我上的北大青鸟,而一开始学的就是 JAVA。那个时候的编辑器用的是 JBuilder,这东西已经被淘汰了,写一个 Hello World 那叫一个心累啊,光配置就得记很多步骤,各种看不懂的错误,还是在老师的奇奇怪怪的帮助下跑起来的。我那个心里当时就是万马奔腾啊,砸电脑的心都有了,简直是愚蠢至极!!所以在最后考核的时候我完全是自暴自弃,第一学期的毕设根本就是靠其他同学混过去的。当第二学期接触到 C# 之后,看到现在宇宙第一 IDE 的 Visual Studio (那会儿还是 2003 版本,比起现在差远了),一个 F5 就可以看到 Hello World ,瞬间自信心和决心就充满了整个身体,这才是编程啊!!所以后来的一年我很努力,而且毅然决然地选择了 C# 作为最终从事的方向。

外界对 .NET 似乎还是有很多误解,所谓的拖控件就是低级人员玩的。不知道你们用 JAVA 的玩 Swing 包的时候有没有羡慕 Winform(当年学 java 的时候用 swing 包做客户端程序),还有不管是 .NET 的 asp.net 还是 JAVA  的 jsp,难道你们做的界面是自己写的么?就一个下拉菜单来说,java 得循环输出 select 的 option,而 .NET 只需要 DataSource 做个数据绑定就完了,这是小儿科吗?这叫用户体验!!效果是一样的,效率却是大相径庭!!!你们产品经理所谓的简约、极致、用户思维不就是这个吗?使用编辑器的不就是这些语言创造者的用户吗?

我也面试过很多人,刚开始都是满心欢喜,一有面试的来,不管我现在多忙我都第一个举手申请我去面试,但是久而久之我已经丧失了那一点信心,后来就让水平还可以的同事代劳了,因为我觉得足够了,除非他们觉得还可以,我就会进行第二面,不过基本上都会被我打回原形。同样是七八年经验的,问一些基础,答不上来的大有人在,更别说一些七八年本来就该掌握的设计模式,多线程,分布式之类的了,一问工作内容,大多数都是cv模式(Ctrl+C,Ctrl+V),写写业务逻辑,连单元测试也没有。别看他工作七八年,开发水平和两三年的没啥区别。而且不乏从微软、IBM 等大公司出来的,虽然这些都是外包公司,可能核心业务不会给你,或者底层架构不会让你参与,牛逼的人除外,但明显这些人都不牛逼。

名人都说过类似的话:“真正的能力是在八小时之外才能体现”,见仁见智去理解吧,毕竟公司的业务不是你想改就能改的,所以很多新技术都需要你自己在这八小时之外自己去捣鼓,高手都是这么过来的,为什么他们是高手?因为他们挖的坑和填的坑比你看到的坑都多出好几倍!付出肯定有回报,但你得先付出!

废话说太多了,说回来,其实不是 .NET 差,而是靠谱的 .NET 开发人员太少了。有多少半路转行了?转成 JAVA 因为看到了 JAVA 工资高。目前是这个状况,但如果你看到的只有钱,再过十年,你的水平就像刚才说的和那些混了七八年的人一样的话,肯定会被淘汰的,毕竟年龄大了,水平和俩仨年的一样,公司会要你吗?你真的以为 C# 差吗?你玩的游戏有几个不基于 .NET 的 Framework 框架呢?U3d很火,用的是 C# 开发,但招人还是一样的困难。所以不是 C# 没市场,是你没市场。

由于大多数的 .NET 从业人员不靠谱,造成早期大量的老旧项目越来越难更新。思想高度上升到企业层面,是不关心技术的,只关心成品,反正都要重做,而市场上 JAVA 人员很多,所以就转成了 JAVA,毕竟现在的公司都不差钱了。

为什么那么多 .NET 人员不靠谱?除了自身不努力之外,大部分学编程的都是培训学校出来的。而我近期查了一下,很多培训学校,像达内、千峰,以及用.NET培训起家的传智播客都已经把.NET给取消了,只有北大青鸟还留着,别的我不知道。因为市场很小,所以这就形成了一个死循环,没有优秀的.NET人员出来,市场就更小,市场小了学校就不愿意去培养了……然后我查看了一下北大青鸟的.NET教材大纲,winform wpf asp.net web service mvc......还是十年前的那种教材……连现在互联网最流行的 webapi技术都没提到,更别说 .NET Core 这种新技术了。世界在进步,但是教材还是在十年前,这和大学毕业还找不到工作的有啥区别?

我去,居然写了这么多了……果然是满腔热血啊……其实我希望的是搭建一个只属于我们.NET人的生态圈,网上资料一大抄我已经见怪不怪了。我一直立志于培养出一批又一批合格的.NET人,所以加了很多群,帮助他们解决问题。我的风格是给思路而不给答案,就是想让你们能学会独立思考,远离cv模式(除非你很懂这块),学会动手而不是动嘴。

码农猩球的初衷就是想聚集.NET人们,每个人拿出自己的一点贡献,无论这个贡献有多少,凝聚起来的力量那是无限的,同时也给自己一个向前进的机会,而不是原地踏步。这里都是我们的心血,都有我们的感情和梦想,如果我们都不把自己当回事,谁还会把我们当回事呢?目前看来我也不知道我写的东西帮助了多少.NET人,或许在某些角度来看写的并不是很好,我希望我能用自己的行动告诉我们.NET人,只要有心,梦想就一定会实现。所以我坚持了十年。

说回来,目前的码农猩球是我下载的别人的开源系统,我还进行了一点点二次开发。如果你愿意为我们.NET人做更多的贡献,为码农猩球的重建贡献自己的一点点力量,欢迎加入官方群(号码在内容末尾);或者你只是想完成一个小目标,走好自己的路,同样也可以加入技术群(号码在内容末尾)。无论怎样的选择,我都希望你们能坚持下去,如果不是因为理想和梦想,我们不会选择同一条道路。

我是周大侠,一个一直以C#为核心语言的研发追梦工程师,希望你能跟我一起追梦下去。

如果你认可我,希望你能把这篇文章转发出去,让更多像我们一样的.NET追梦人能走在一起。

文章出处:码农猩球http://www.dotnetstar.club/cms/c-35/comid-0

上一篇:apache在windows下的命令安装与报错解决


下一篇:Steve Yegge:Google面试秘籍