lifesinger 发表于 2023-11-4 04:08:49

你有没有注意到Java越来越卷了?

近些年来,身边做Java的人越来越多,感觉烂大街都是

suidywu 发表于 2023-11-4 04:09:22

java市场非常的大,在增长期,就会有非常大量的需求,工作岗位非常多,但是在下行期,竞争就会异常激烈,这是非常市场化非常符合供需关系的
招人几千个简历挑不过来,投的人能被看到的概率当然小,而且java没有地方可以躲了,因为以往火的都是靠web后端和安卓撑起来的,然后培训就非常固化了,流水线生产才符合市场需要
所以其他行业搞游戏的,搞mes,搞客户端,搞工控,招java也是白招
最终导致招聘网站里的java岗位只是一个数字而已,根本卷不过,以往有些人就喜欢贴个工作岗位数量来说哪个好,现在也看明白了
现在游戏也是下行,也卷不过,但可以往数字孪生方向走
所以c#搞搞wpf搞搞vue或者angular,做做某些领域里的东西,还是比较好玩的,方向比较多,也没那么卷

冰点精灵 发表于 2023-11-4 04:09:37

现在才发现?我来具体说说吧,从多个方面来聊,具体怎么就越来越卷了,在哪方面越来越卷了,让大家心理有底吧。我主要从15年前左右,跟现在做对比。
Jvm方面
十五年前
如果是应届生,敢往简历上写是jvm三个字母,就已经远远甩出其他同学了,如果面试官问到jvm,还能模糊的说上一两句关于jvm一些解释执行的原理,那就更加加分了。至于启动参数,如果说自己做过关于OOM方面的实验,那是真的人中龙凤,那个时候,99%的学生都弄不明oom到底是啥都而且总是跟c语言的那啥内存溢出、内存泄露混淆,一说oom就扯到那里去了,所以他们的基础其实不扎实,理解都不到位。
包括类加载器这方面,15年前,真正能懂类加载器的,那就更是凤毛麟角了,更不要说知道使用场景并且使用好了,对于懂类加载器的同学,能够知道Java的动态性语言的特性就很不错了,至于Java动态特性到底好在哪,没有谁理解。
大部分学生的上限是什么?基本上就是面向对象的基本特征,接口抽象类区别,类访问权限,顶多会聊聊hashmap的原理就已经够很多同学喝一壶了。
不要说应届生吧,其实那个时候,很多面试官都不一定清楚这些东西,那个时候大概是移动互联网出现的前夕,主要还是做一些pc端的网站,大部分的站点都不存在什么高并发的说法,甚至白天重启也无所谓,这样就导致了程序员其实还是在研究功能实现阶段。都是在研究哪个功能用工具去实现很方便,比如那个时候很流行JavaApplet,入行十年以下的我敢说绝对没听过这个东西,面试者都喜欢把会这个技能写到简历上去,其实也是可以加分的。
而现在呢?
你说你会用这个工具实现那个功能?你会用那个工具实现那个功能?面试官一句话就噎死你,他说这个不就是看个文档照着做就行了吗?难度在哪?你裤裆里还有没有其他技术?没有的话下一个。
现在应届生,很多都已经把jvm相关的东西实现出来了,主要是网络上太多这样的课程了,对于class文件的每一个结构都能整清楚,有的学生还自己去实现了这个反编译的程序了。你说jvm启动参数,更是如数家珍,很多参数连我们这种工作这么多年的都不一定听过,但是他们知道,并且知道用在什么场景下。
类加载器就不用多说了,现在的应届生基本上能够理解语言的动态特性了,有一本深入理解Java虚拟机,想必大家肯定是读过了,但是在十五年前看这种书,就像现在研究jvm源码一样,显得太高端了。从这里也可以预见,再过10年,那肯定个个都精通jvm源码了。
你面试要问个hashmap,这应届生会觉得你是在侮辱他,他能给你扯到线程安全方面来,如key大量冲突,会形成环这么细的问题。如果问工具包的源码,如今并发包肯定是起步吧?并发包,我是在工作了三四年后才知道有这么个东西的,现在成了应届生的标配。
当然,现在的应届生能懂这些,这肯定是得益于线上课程的结果,自己能整到这一步怎么可能?可想而知,以后只会越来越卷。
大学课程
我们以前上大学的时候,发现自己是真的懒散,大学的课程一半以上都是不懂的,当然考试肯定是能过的。
上网络课程的时候,什么奇偶校验码、海明威校验码、数据碰撞、多路复用等等这些东西,听得云里雾里,也就知道这么个东西,网络只知道一个tcp、ip方面的协议,知道拥塞控制、知道慢启动、知道滑动窗口就差不多了。现在的学生,如果只知道这些,就相当于文盲,就说慢启动吧,那么控制慢启动的细节是如何做到的?慢启动的算法为什么是翻倍再递增?能不能对这个tcp实时抓包进行分析和演示?基本上我所知道的花样,人家都能玩出来。
至于算法,你以为是会快排序算法?十五年前,最火的就是快速排序了,甚至快速排序都是中高端的问题了,然而现在你说个快排序,那简直太low了。
现在的学生,把《算法导论》看完,那是基本操作,当然网上肯定是有这方面的课程的,但是那个时候看《算法导论》,就跟看天书一样,不是那种数学素养非常好的学生,根本无法吸收里面的东西,现在的学生,一上来就敢和你聊里面的np难题,敢当场旋转红黑树,扬言可以徒手写出牛顿迭代法,模拟退火算法、玻尔兹曼机、蒙特卡洛算法等,你敢不敢和他们来一场正面pk?
至于数据库,十五年前的时候,其实就学会个了一个东西,那就是写sql,期末考试的时候,老师把那个sql语句的套路帮我们总结出来,基本上大部分的sql都能写出来了,这样的话数据库也就算会了。
现在,会写sql了也叫会数据库了?面试过一个应届生,直接上手oracle的RAC环境,性能诊断、优化、hint信手拈来,集群、一致性、实例崩溃,只聊原理,会用,谁不会用?会用那就不能叫会。
操作系统?不少学生已经开始实现微内核操作系统了,我问怎么实现的,他说是从0到1实现的,从内存管理的伙伴系统、slab、内存分配器开始聊。再到tcp协议的实现方案,尤其是慢启动和拥塞控制这方面实现起来的难度,以及一中断程序、地址空间管理、多任务多批道处理等等。有的还能在自己的操作系统上安装浏览器了,可以实现简单的上网。
然而,我们那个时候,操作系统就会背诵一些内存管理、进程管理,连个银行家算法都不知道在哪会用到。至于操作系统相关的网络管理、什么io外设等,都是好像懂了,好像又没懂的状态,反正大家都一样。
项目经验
十五年前,应届生会写图书管理系统,已经算是会干活了,有些同学,借书的时候还考虑到了线程同步问题,这就是加分项了。
复杂一点的,能做出来小游戏,界面顺滑,玩法新鲜,那就是优秀的学生了。
现在,天上掉下个林妹妹,砸死10个人,8个经常就精通高并发的。
你让应届生说说线程安全方面,他能跟你从单核cpu讨论到多核cpu,进而跟你说到多线程cpu,各种时间片轮换算法优缺点,jvm线程和操作系统线程的细节方面差异,各种状态的线程,以及线程同步的10个方法,jvm,的线程底层逻辑,synchronized原理,偏向锁、轻重锁等等,还能跟你聊到内存屏障等细节问题和设计原理,你说要圆他就给你圆,你说要方他就给你方。
我说的线程方面,重点是人家能举例子,项目中用到了,图书管理系统,借书还书这里,使用了cas实现了乐观锁,还考虑到了aba问题,借书的核心代码,还防止了指令重排,为了防止指令重排带来的问题,并且要保持借书不多借,还特意使用了volatile这个变量。
你如果问介绍下volatile,立即两眼放光,从多级缓存,cas操作,比较交换等等高端原理来聊了,惭愧,这些概念,我这个老码农工作了好多年才会,更别说用到项目中去了。
结论
结论没什么说的了,肯定是越来越卷了。
从我的观察中发现,突然变得卷,就是因为移动互联网的到来,后台Java开发开始顺序崛起,移动互联网起来之后没多久,就诞生了好多培训机构,这些培训机构一开始是自己会一点就去教了。
后来,培训机构开始寻找大厂程序员出来做兼职,那么培训机构的水平也随之提高了,培训的学员也水平提高了。
现在呢?培训机构直接就培训架构师了,直接按照某巴巴的p几来培训了,比如你想达到p8水平是么,那么请报名我们的某巴p8课程吧。
以前是大家都不喜欢培训机构出来的学员,而现在,企业直接就会给员工购买一些培训机构的课程,以提高员工的技术水平,可想而知,现在的培训机构也卷起来了,他们才掌握着技术的前缘,你说会不会越来越卷?

xinjing 发表于 2023-11-4 04:10:17

知足了java吃了这么久的螃蟹了,未来程序员应该回归到个体户阶段,未来轮子+AI一个好的程序员完全可以比上一个团队 ,找准一个行业或者一上

无非95 发表于 2023-11-4 04:10:55

有没有发现今年考公务员也越来越卷了?看看今年考公数据,几千个人竞争一个岗位的情况,还不在少数。再来说说考编,有没有发现对学历的要求越来越高了?好些都要求是研究生,并且对研究生的本科学历院校也有要求。你说卷不卷?相比这些,Java行业好多了,不用拼爹 ,靠的就是实力。
但话说回来,如果你不适合学Java,还是不要去凑人数了。

天狼啸月 发表于 2023-11-4 04:11:39

早几年就开始卷的
页: [1]
查看完整版本: 你有没有注意到Java越来越卷了?