如何看待2022年秋招Java后端开发岗一片红海?

我猜是转行去CV和NLP想当“人上人”的俊才们,发现自己卷不上“一等人上人”的算法岗,于是转投“二等人上人”的后端岗。

虽然这些人的简历数量多,造成了“表面上内卷”,但是其中包含大量转行的只会Python调参的,其实面前端客户端他们一样会挂。

对了,很多高校2018年开始,逐渐成立了人工智能本科专业,这批本科生2022级才保研,2024/2025届才投入秋招战场呢,大部队还在后面呢。

问内存模型,不知道。

问注解本质,不知道。

问反编译,不知道。

问耦合和解耦,不知道。

但凡是稍微要写两行代码debug一下才能究其根本的问题,一问三不知……

面试跟考试背书一样……全是一些套路,背得滚瓜烂熟……

就跟那个著名的“画一条线值1块,知道画在哪里值99块”的寓言里讲的一样。

会写代码值1块,知道什么地方什么时候为什么写代码,值99块。

when, where, why你都不知道,你就知道增删查改背面试题,那怎么不红海

PS:

spring boot这个东西就跟当年我学的mfc一样。

会用spring boot根本不代表一个人会java了。

你笑人家mfc用魔改宏,

结果自己java用反射用得飞起……

这些框架里,魔改的东西太多了……

自己用起来不求甚解,面试起来一个个都头头是道……

听哥一句,你不往深了搞,是涨不了码的……

但我也不是建议大家钻研很深,对各种奇技淫巧非常熟练的意思;

我是指,你得更了解一门语言的底层实现,才能更好地使用它。

不要以为你不懂杠杆原理就可以用跷跷板……

会坐跷跷板值1块,会修跷跷板值99块,跷跷板总要坏的。

热点人追涨杀跌,人菜瘾大,被割韭菜,可喜可贺。

在解释这句话之前,我们先来考虑一件事情:都在说这是内卷,但内卷是什么意思呢?

简单的说就是零和或者负和游戏,玩着玩着觉得很不对,出来抱怨环境。

比如高考是负和游戏,加班是负和游戏,房价是负和游戏,说这些东东是内卷没什么问题,因为环境就是这样的,你改变不了。

但是你在找计算机行业的入场卷啊,环境就是这个领域的代码啊,为什么别的人能写你不能写?

我再说得直白一点,为什么别人能做大蛋糕,你就不行?

我们具体看一看蛋糕是如何做大的:

0:从无到有做一个领域(发明蛋糕):如Tim Berners-Lee发明互联网一样

这需要天时地利人和,可遇不可求,pass

1:提出自己的框架,整合统一一个领域,或者至少收录各种知识进一系列书里面:龙书,Comp Arch a quantitative approach,TAOCP

这需要成为行业领头羊,pass

2:在一个领域进行革命:RISC vs CISC,Unix vs Multics

这需要挑战领头羊,pass

3:开疆扩土:比如alexnet打入CV,deepmind用DL做蛋白质折叠,大数据社会学,深度学习驱动的数据库,做形式化验证编译器,前端人用Node做后端

4:后排支援:写Tensorflow来做深度学习,写Spark做大数据,写React Svelte做前端

ok,那你012做不出来,情有可原,给我我也做不来,但你为什么做不来34?你写不了tensorflow,写一个小小的,对着一个特有use case的quantization/deployment/inference tool还不行吗?再不济做一个higher这样的东东,或者写一个算法库啊。deepmind用ml做蛋白质折叠,为啥你不能用ml做考古学,去算生物树,jeff dean搞了个deep rl for place and route,你没钱流片,还不能整dl for fuzzing了?

这还真整不出。我就来分析一下为什么。

你要整alexnet,当时没框架,要手写cuda,做gpu调优,你就会调python,整不来

你要整深度学习数据库,你好歹要知道数据库长啥样,但你逃课import torch刷分去了,整不来

你要整node,这是runtime,但你没学操作系统跟C,去学css的四种写法了,整不来

你要整svelte,这是编译器跟frp,但是你编程语言课去学js的⑨种坑了,整不来

你定一个小目标,我就整一个库,只需要领域知识!

。。。。。

但是你还是整不来。

连higher这种两千代码的东东,都要python元编程,这要的码功也不是就会import torch然后写飞天面条神教代码的你整得来的。

就算没有python元编程,一个项目也需要码功支撑,知道代码应该怎么怎么组织,怎么怎么样重构,要测试什么东东,这些软工&码功知识也不是天上掉的。

换句话说,你要在一个领域做出很多有意义的成果,你要基础cs知识。这也是为什么大学四年不会就教你怎么用react的原因。但你没学。

你不能开创新领域,也不是龙头,前不能开疆扩土,后不能后排支援,就会守着自己的一亩三分地做谁都能做的高端看门老大爷,不优化你优化谁?

这是你人菜。

ok,人菜可以,那为什么你不去找简单点的工作呢?再不济做三和大神,也可以做一天耍三天啊。

你想做人上人。你看不起传统CS。你想弯道超车,想吃红利,想高薪水,想摘low hanging fruit。

于是你去看其他人怎么找low hanging fruit的,然后跟着做。

笑死我了,其他人做X是去摘low hanging fruit,是在创造,

你再去跟着做X是去做创人,表演东北二人转给大家看吗?

别人早就摘完了,你吃不到红利,反而变成那个红利了。

更重大的问题是,新兴领域往往迭代快,半衰期短(圆角骑士魔理沙:半条命),那怕你进去了,很快就因为较难积累而丧失竞争力。

这是你瘾大。

那我怎么办?

首先,别all in。all in成功的是杨立昆死守联结主义30年,最后时机成熟破局,是Xavier Leroy天神下凡,一波compcert打消所有对formal verification现实可能性的质疑。你敢买垃圾股然后carry垃圾股一飞冲天吗?还是就敢追涨杀跌?

历史上,手机端火热现在凉凉,前端火热现在凉凉,机器学习火热现在也要凉凉。以后看到新的火热领域,就看着这些凉凉的歪脖子树,思考一下吧。

然后,乖乖的有整个cs的一个体系的学习。arch -> os -> compiler -> database + (network->distributed system)。Basic Programming + Algorithm + Discrete Math + Linear Algebra + PL + SE。去看顶级大学(如四大)的公开课。大学设计这些为重要课程不是在逗你玩的,就是因为这些东东进可攻,让你做X for Y方向,退可守,一个方向没岗位还能做其他的。这是海量教授精确计算出来的,比我懂更比你懂。

假设一年两学期,一学期两门课,这些也就3年,时间完全够(不够自己看着办缩减内容,但一定要做作业)。如果自己的大学本身要上一些课,那就两个课对比一起上。这样课业不高,会提早上完(而且上的时候也有自己的时间)。剩下的时间可以去投入自己感兴趣或者认为潜力大的领域,又或者火热的领域。反正你在剩下的时间化身鼠鼠人,你也肯定能找到工作。

如果你还嫌卷,还想all in,建议去做程序员vtuber,vtuber一分钟几十万上下,不比你996牛逼。