4

C#和Java,究竟选哪个方向?我只说事实,你自己分析…… - 自由飞

 1 year ago
source link: https://www.cnblogs.com/freeflying/p/16359401.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

C#和Java,究竟选哪个方向?我只说事实,你自己分析……

好久没到园子里面逛了,回来看了看,.NET有点式微呀?Java/Spring/Linux……比以前多了很多,为什么?博客园可是.NET的大本营了呀!

好吧,我承认,飞哥也动摇了,去年在ASP.NET的基础上,开了一期Java Web班。给大家汇报一下心得体会吧:

其实我最开始学(2008年),学的是Java,但进公司干活(2009年),一直用的都是.NET。我入行的时候,Java还没现在火,C#/WinForm/ASP.NET2.0,正是如日中天的时候。

2019年,开始办培训班,Java就已经大行其道了。做市场调研的时候,几乎所有(规模大名气响)的培训机构,都开了Java班;只有极个别的培训班,明面上宣传又.NET班,但后期就会变着花儿的让你转Java。我有点懵:为什么会这样?.NET凋零如斯了吗?

了解了一下,这些培训机构的通用说法就是:Java的岗位多,工资高,.NET不行了……

本着科学和实事求是的精神,我做了一个小小的调研,非常简单,大家都可以试试:找一个招聘网站,分别用Java和.NET/C#关键字进行搜索,对比他们的结果。根据我们长期的观察,Java岗和.NET岗工资几乎没有差别,但岗位数量Java是.NET的3-5倍之多!所以……

我“逆向思维”了一下:找工作难不难,不只是看岗位多少的,还要看求职人数呀!学Java和学.NET的人数比例又是多少呢?我们做的是培训班,就只考虑野生程序员吧,呵呵,这样一算,不得了,还有学.NET的野生程序员么?Javaer和.NETer的比例怕是10:1,是100:1吧!?

所以我下定决心,就讲ASP.NET全栈开发,我最拿手的!

然后,2年过去了……

源栈出去的同学,就业那是没得说,so easy,秒拿offer,印证了我之前的推测,和很多同行的感受:.NET真不好招人。(所以我们源栈的同学就好就业嘛,^_^)

而且我也理解了为什么其他大型培训班不讲.NET:更新太快了,培训讲师怕是跟不上。呵呵,我上一期的讲义,下一期照着讲就翻车。

似乎一切都很美好,只有一点:来源栈咨询的学员,很多直接问我们教不教Java?

当时我一是有点烦了,(.NET更好找工作)解释得烦了,这么一个简单的道理,翻来覆去的说,不想解释了;二是有点飘了,觉得我们可以扩大规模了,.NET的盘子毕竟只有这么大,我们规模还小的时候没关系,以后万一源栈做大了呢,要未雨绸缪……

在ASP.NET的课程全部录制完成之后,我想了想,C#和Java不是挺接近的吗?我花点时间就把它也录了吧!

我承认,我是骂着录完Java的。

讲C#的时候,每天都感觉在吃糖;讲Java的时候,感觉每天都在吃屎。

那时候我真心觉得搞Java的工资高点是应该的,毕竟有句话叫做“钱难赚,屎难吃”嘛。

从IDE(我脑子抽抽了用的eclipse),到语法特性(我用的Java 8),再到环境配置(Spring/Hibernate),没一个省心的,鼠标都被我摔坏了一个。最烦的就是这些问题,全™都是些技术无关逻辑不通的狗屁问题。

在此之前,我一直以为JavaScript是最恶心的;在此之后,我觉得Java也好不到哪里去:

  • JavaScript恶心在它的语法,但这个至少是可控的,恶心的语法你可以不写,出了bug你可以断点调试,总是有反馈有进展的;
  • Java的恶心在它的配置(语法糖没C#甜我都还可以忍),配置出问题,又没个提示或者瞎JB乱搞的提示,那才是真的把人都搞疯了!

我当时就在想哟:我是十年的老码农,英语还马马虎虎过得去(所谓的开源“社区支持”在中文网里我只能呵呵了),勉勉强强能搞定这些乱七八糟的问题,培训班刚毕业的学生,咋整?

他们可不是我教什么,公司就用什么的:我讲课用的eclipse,公司用IDEA呢;我讲的Spring,公司用struts呢;我讲的Hibernate,公司用的mybatis呢?或者其他更小众的框架啥的……Java的框架组件这么乱这么碎,咋整?

关键是时间有限呀,我们源栈标准学制是6个月,其他很多培训机构5个月,甚至4个月都搞定收工,还要讲什么docker/redis,呵呵,这样出去的学生,搞个毛线!难怪用人单位恨死培训班了。

说实话,第一期的Java学员,还是比较争气,都学完了学成了。

但找工作,……,那真的是一言难尽啊!

我感觉我都坑了他们一把,心里还有点过意不去。比如一个重庆的同学,我觉得他学得真的好,mybatis、linux、redis这些都自己学会了,比很多学ASP.NET的同学强多了!所以我想,要个8-12K的薪水不算高吧?因为.NET的同学在重庆7K还是不难的,还没他学得好。

找了一个月,最后5K收场。他说,如果前面几个6-7K的答应了,感觉有戏,但找了一个月,累了,也被打击够了,先有份工作学着吧。

面试卷得一逼。重庆一个普普通通公司初级岗,问JVM调优,问多线程和锁,问大流量高并发的处理……初级岗啊!能把if...else写利索,能把功能实现就谢天谢地了好吧?你让他去JVM调优?你一个医疗行业网站定制的公司,能有多高的并发?!

49387-20220609090028345-238863511.png

说白了,就卷呗,反正市面上不缺人。“面试造火箭,工作拧螺丝”嘛。

我们.NET的同学求职,基本上当时/当天发offer;Java,一面二面三面……还放你鸽子。

最有意思的是,这个同学,入职一个月以后,公司鼓励他们转C#,转过去就直接加工资:

49387-20220609082746576-520173822.png

刚才专门问了一下,还是没转,继续扛Java!小伙子,有点东西呀……

-------------------------------

本来是想理中客的,写着写着好像就专门黑Java一样,(*/ω\*)

这样不好,还是给Java说点好话:

  1. 如果你要进互联网公司,.NET肯定不行的,很难,超级难,进去了也不是核心部门,可能是去做ERP
  2. 学Java确实锻炼人,入门的难度和C#/.NET比,真不是一个级别的。C#如果(理解)能力够,甚至都可以自学,visual studio一装,后面就直接啪啪啪了嘛;Java能不能自学,可能要靠天意——配环境的时候人品爆不爆!?多少人就死在安装Java配环境变量上?(顺便吐槽一下Java教程,为啥都要从cmd配环境变量讲起?IDE他不香么?)
  3. Java知名度更高,哪怕是个小白,也能张口就“加瓦”;C#就完蛋了,“你们教的那个C井C叉啥的……”,“嗯嗯,点呢特还是多呢特……”太特么羞耻了!

其他,其他真说不出来了,毕竟C#也开源跨平台了,……

或者,学Java可以当卷王?憋笑,真的,中国最卷的程序员就是搞互联网那一帮人!^_^,卷得昏天黑地。我做.NET做了十年,加班的时候屈指可数,好久好久都一直以为什么996是段子——确实是养懒了,卷不动了,现在只有办个培训班才能维持的了生活这样子。我当时要是去卷大厂,说不定都财务自由了。

 

49387-20220609084853948-1120253875.gif

(嗯,是的,想得挺美!)

一不小心水了这么多字,要有干货!

干货下一篇吧,下次一定,O(∩_∩)O哈哈~

真的,我这次录课程,就专门把Java/JavaScript/C#这几门语言共同的部分,剔了出来的,就是要看看,所谓的“主流编程语言大同小异”,究竟怎么个大同怎么个小异?数据说话:

49387-20220609140348543-652597338.png

 49387-20220609141810212-513762204.png(数字代表视频大小,单位:G)

面对过程(分支循环函数)和基本的面向对象语法层面(封装继承多态),Java和C#的区别不大,共有:C#:Java = 20.14:4.91:2.51 ≈ 8:2:1

但到了高阶类库(见下图)部分,Java和C#找共同的部分就难了,共有:C#:Java = 7.47 :16.7 :14.5 ≈ 3:7:6

49387-20220609150012840-2068295320.png

下一次,童靴们有兴趣的话,我挨着把Java和C#不一样的地方,给大家过一遍。以前觉得一个合格的C#程序员,3天就可以转Java,还是想当然了一些,哈哈……

这里还是安利一个写代码的小姐姐:源栈小九,先,O(∩_∩)O哈哈~

49387-20220609150838594-1930697497.png

 赶紧的,说不定还能看到飞哥……


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK