如何看待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牛逼。