好久没到园子里面逛了,回来看了看,.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调优?你一个医疗行业网站定制的公司,能有多高的并发?!

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

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

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

刚才专门问了一下,还是没转,继续扛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是段子——确实是养懒了,卷不动了,现在只有办个培训班才能维持的了生活这样子。我当时要是去卷大厂,说不定都财务自由了。

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

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

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

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

(数字代表视频大小,单位: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

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

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

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

C#和Java,究竟选哪个方向?我只说事实,你自己分析……的更多相关文章

  1. 这是一名Java学者关于学习方向的建议

    无可厚非,编程是一门艺术.但是辉煌的背后必须是一段辛苦的奋斗过程,而过程的引导方向就是最重要的一环.Java语言可谓是引领了编程的潮流,你会是怎样去学的呢? 这是一名Java学者的学习方向的建议 注: ...

  2. Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结

    Atitit.swift 的新特性 以及与java的对比 改进方向attilax 总结 1. defer关键字1 2. try!形式存在的“不失败”机制3 3. Guard 4 4. swift的新语 ...

  3. java就业前景发展方向分析

    随着信息化的发展,IT培训受倒了越来越多人的追捧.在开发领域,JAVA培训成为了许多人的首选!java拥有强大的开发者的数量已超过了之前的900万,将近97%的企业电脑也在运行着java,其下载量每年 ...

  4. 099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类

    099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类 本文知识点:编写并测试Subject类 说明: ...

  5. 101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联——方案二

    101 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 05 通过方法实现学生类与专业类关联--方案二 本文知识点:通过方法实现学生类与 ...

  6. java程序怎么在一个电脑上只启动一次,只开一个进程

    目录 <linux文件锁flock> <NIO文件锁FileLock> <java程序怎么在一个电脑上只启动一次,只开一个进程> 方案1: 单进程程序可以用端口绑定 ...

  7. Java生鲜电商平台-电商数据运营统计与分析

    Java生鲜电商平台-电商数据运营统计与分析 今天分享将会分为以下几个方面来阐述: 1. 作为运营我们需要统计与分析的几个核心数据是什么? 2. 核心数据对业务的指导价值在哪里呢? 3. 作为产品PM ...

  8. 098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类

    098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类 本文知识点:编写并测试Subject类 说明: ...

  9. Java开发工程师(Web方向) - 04.Spring框架 - 第2章.IoC容器

    第2章.IoC容器 IoC容器概述 abstract: 介绍IoC和bean的用处和使用 IoC容器处于整个Spring框架中比较核心的位置:Core Container: Beans, Core, ...

随机推荐

  1. springboot+springsecurity+mybatis plus注解实现对方法的权限处理

    文章目录 接上文 [springboot+springsecurity+mybatis plus之用户授权](https://blog.csdn.net/Kevinnsm/article/detail ...

  2. Struts2中将表单数据封装到List和Map集合中

    一.将表单数据封装到Map集合中 1.创建MapAction类 import cn.entity.User; import com.opensymphony.xwork2.ActionSupport; ...

  3. 使用基于Roslyn的编译时AOP框架来解决.NET项目的代码复用问题

    理想的代码优化方式 团队日常协作中,自然而然的会出现很多重复代码,根据这些代码的种类,之前可能会以以下方式处理 方式 描述 应用时可能产生的问题 硬编码 多数新手,或逐渐腐坏的项目会这么干,会直接复制 ...

  4. Java基础之浅谈集合

    Java基础知识.关于List.Set.Map接口的了解,以及ArrayList.LinkedList.HashSet.TreeSet.HashMap.TreeMap...

  5. AcWing 158. 项链 (最小表示法)

    项链 题源:https://www.acwing.com/problem/content/160/ 题目 原理:最小表示法 找字典序最小的字符串 循环移位,破环成链 (把原串复制一倍) memcpy ...

  6. HCIE笔记-第一节-网络的基本概念

    R&S= 路由交换 Datacom =数通 =数据通信 某个设备产生了数据之后,借助整体的网络到达目的地的过程. 网络历史 -- 数通为什么产生? 1946年:世界上第一台计算机诞生.军事 科 ...

  7. switch语法

    1. js 代码 // 1. switch 语句也是多分支语句 也可以实现多选1 // 2. 语法结构 switch 转换.开关 case 小例子或者选项的意思 // switch (表达式) { / ...

  8. Python打印表格

    使用Python在终端打印表格 import prettytable table = PrettyTable(['Title1', 'Title2', 'Title3']) table.add_row ...

  9. 【第二课】从零开始学习Linux(学习笔记)

    之前工作会接触Linux,会常用的命令和服务,看过一些书,缺乏系统的学习和整理,现在放空自己,从零开始学习. 每日学习打卡: 2022-04-04

  10. DDT数据驱动性能测试(一)

    DDT数据驱动性能测试(一) 一.csv数据文件设置 1.使用场景:测试过程中需要使用手机号码等大量数据时,用random函数随机生成数字:也可以使用Excel拖动生成一批手机号,也有可以从数据库中导 ...