回答一個(gè)滿級(jí)讀者的問題。
他問我怎么看一個(gè)消息與一件事。
消息是硅谷的支付巨頭,一夜之間裁員40%,因?yàn)橛辛薃I,不需要那么多人維護(hù)代碼了。
一把干掉4成人,還只是第一期。
看到這個(gè)消息,他就聯(lián)想到這些年,那個(gè)四處忽悠人去讀計(jì)算機(jī)的某網(wǎng)紅名師。
今年,最早被忽悠的那批孩子也該畢業(yè)了,面臨軟件行業(yè)的大地震,何去何從?
我知道你想說什么,你想說網(wǎng)紅名師是第二個(gè)羅冥燈。
羅靈童昔日號(hào)稱行業(yè)冥燈,做什么行業(yè)什么玩完。網(wǎng)紅名師也一樣,他鼓勵(lì)什么行業(yè),什么行業(yè)遭遇巨震。
昔日是土木,現(xiàn)在輪到計(jì)算機(jī)了。
我個(gè)人是這么看的,不要功利化計(jì)算機(jī),也不要神話計(jì)算機(jī)。
站在學(xué)科的視角下,計(jì)算機(jī)的本質(zhì)是數(shù)學(xué),就像英語的本質(zhì)是一門文化。
你不能跟我講數(shù)學(xué)沒有用了,文化沒有用了,那你干脆說人類沒有用了。
如果我們不看本質(zhì),你只看某一個(gè)時(shí)期它的應(yīng)用,計(jì)算機(jī)被當(dāng)成了編程,英語被當(dāng)成了翻譯。
那么它們各自都有各自供不應(yīng)求的年代。
20多年前,翻譯是很緊俏的,就像司機(jī)那時(shí)候也很緊俏,大部分老板不會(huì)開車,所以要聘?jìng)€(gè)司機(jī),如果再是個(gè)做外貿(mào)的,那就要請(qǐng)個(gè)翻譯。
這個(gè)現(xiàn)象到十幾年前就大幅度緩解了。
因?yàn)楹髞淼睦习鍌儽容^年輕,不存在自己不會(huì)開車,自己連英文都看不懂的局面。
所以不是開車沒用了,英語沒用了,而是它被普及了。
如果你把計(jì)算機(jī)看作編程,那是同樣的問題,它不是沒用了,而是被普遍,被廣泛應(yīng)用了。
計(jì)算機(jī)的本質(zhì)是數(shù)學(xué),你讀了一個(gè)計(jì)算機(jī)系,就相當(dāng)于你讀了一個(gè)應(yīng)用數(shù)學(xué)系。
你學(xué)了四年數(shù)學(xué),這是可以理解的,但如果你說你學(xué)了四年編程,這是不可能的。
我舉個(gè)很簡(jiǎn)單的例子,我是90年代末讀大學(xué)的,讀的是信電系,和計(jì)算機(jī)系同屬計(jì)算機(jī)學(xué)院。
他們學(xué)的我們基本上都學(xué),他們不學(xué)的物理類的,我們也學(xué)。
我大一的時(shí)候,就可以開發(fā)網(wǎng)站,如果你把那個(gè)也當(dāng)作編程的話,那我會(huì)編程。
我學(xué)了多久呢?大概一天吧。
也就是說,一個(gè)人,從什么都不會(huì),到可以自己開發(fā)網(wǎng)站,一天盡夠了。
我們那代人,初中的時(shí)候,還學(xué)過BASIC,也是很快的事兒。
編程這東西你可以認(rèn)為就跟學(xué)下象棋的規(guī)則一樣,你覺得了解下象棋規(guī)則要多久,那學(xué)一門程序語言就要多久。
等我研二的時(shí)候,零幾年去公司里實(shí)習(xí),我依然是不會(huì)編程的。
你看,我初中時(shí)會(huì)用BASIC畫曲線,我大一就可以開發(fā)網(wǎng)站,不等于我工作后的第一天就會(huì)編程。
不會(huì)很正常,因?yàn)槌绦蛘Z言變了,工作環(huán)境也變了。
所以編程就像學(xué)棋,無非你學(xué)什么棋,你學(xué)過跳棋,象棋,不等于你第一次遇到圍棋就會(huì)下。
那不會(huì)怎么辦呢?不會(huì)學(xué)呀。
我零幾年做實(shí)習(xí)生的時(shí)候,學(xué)linux下的編程,大概用了一周多吧。
這就像你學(xué)一門新棋嘛。
我后來還會(huì)遇到很多新的編程,windows下的編程,各種OS下的編程,等等等等。
你說這些誰會(huì)在學(xué)校里教你?
沒法教呀。
都是現(xiàn)用現(xiàn)學(xué),現(xiàn)遇到現(xiàn)學(xué),因?yàn)楸緛硪簿椭恍枰粌商欤敹嘁恍瞧诘氖聝海l還專門給你開一門課程呢?
開了課也沒意義的,學(xué)校里是考C語言的,考完沒啥用的。
這就像你學(xué)象棋幾個(gè)小時(shí)就夠了,你能不能靠下象棋混飯吃,那是另一件事。
那和你后來遇到的工作任務(wù),需求場(chǎng)景有關(guān)。
不是說教你象棋規(guī)則的當(dāng)天能解決的。
所以這個(gè)世界上沒有誰是去大學(xué)里學(xué)了一門手藝叫編程。
你去讀計(jì)算機(jī)系,就是學(xué)了四年數(shù)學(xué)。回頭你要編程,去了公司都是現(xiàn)學(xué)現(xiàn)用。
于是,一個(gè)程序員,如果你把自己的職業(yè)壽命寄托在編程上,你當(dāng)然熬不到35歲。
更重要的是,編程這門手藝,本身就會(huì)不斷演進(jìn),不斷嵌套。
俗稱前人寫好的程序,會(huì)變成一個(gè)通用的模塊,被封裝起來,供后人調(diào)用。
就像搭積木,搭到最后,很多元素積木不用再去重新開發(fā)了,開發(fā)過了,組裝就行了。
也就是說,即便沒有AI的誕生,人類在編程這件事上,也是不斷打造各種工作流,以提升效率的。
09年我做架構(gòu)師的時(shí)候,干的就這事兒,不斷的用虛函數(shù)與實(shí)例化的方式,來提升效率。
讓10個(gè)人可以干過去100個(gè)人的活。
所以,一個(gè)人,你把希望寄托在我學(xué)過一門或者幾門程序語言,我就可以靠它吃一輩子的飯上,這個(gè)想法本身就是很荒誕的。
這不是哪個(gè)網(wǎng)紅名師能許你的前程,這個(gè)行業(yè)本身就沒有這種前程。
我們信電系過去的老話講,只有做模擬電路的,可能被淘汰的速度稍微慢一些,因?yàn)榈恕?/p>
哪怕是數(shù)字電路的,都被淘汰的很快的。
硬件尚且如此,何況軟件呢?
所以我那天講,探樹,是活不下去的,想要活下去,得學(xué)會(huì)探路。
對(duì)軟件這個(gè)行業(yè)來說,你把目光聚焦在我掌握了多少門程序語言,多少現(xiàn)有的軟件框架,這個(gè)就是探樹。
你只是搜集了一籮筐的爛樹根,樹葉。
你掌握再多有門檻么?沒多少門檻的。
你掌握再多編程語言也不可能同時(shí)需要這些,我當(dāng)時(shí)需要什么,我當(dāng)時(shí)現(xiàn)學(xué)什么都來得及。
一個(gè)老碼農(nóng)真正的價(jià)值從來不在于他的職業(yè)生涯里都用過什么語言,而在于他經(jīng)歷過多少項(xiàng)目,多少業(yè)務(wù)。
所以我們過去選架構(gòu)師,并不是誰掌握了更多的程序語言,就選誰。
而是誰更會(huì)扯淡,我們才選誰。
這個(gè)扯淡,就是探路。
我們站在一家乙方供應(yīng)商的視角下來看問題。
你覺得編程是最重要的么?
一個(gè)項(xiàng)目,如果都落實(shí)到要編程了,其實(shí)絕大部分有商業(yè)價(jià)值的事情,早就解決了。
真實(shí)的訴求從來不是我要編程,而是我要滿足什么業(yè)務(wù)?以及我要用什么代價(jià)來滿足業(yè)務(wù)?
沒人給你錢,你編程么?你哪怕編筐也是為了賣吧?
所以首先要明白,我到底要做什么業(yè)務(wù)?人家客人是為了業(yè)務(wù)買單的,又不是為了程序。
那么人家愿意買單,就有個(gè)預(yù)算的問題,他愿意買多少單?
我這個(gè)程序怎么編,是業(yè)務(wù)限制的,是代價(jià)限制的。
他那個(gè)業(yè)務(wù)本身就只值5臺(tái)服務(wù)器的錢,我編了個(gè)程序運(yùn)行要10臺(tái)服務(wù)器的資源,我這不是賠本么?
你看到了?這些才是架構(gòu)師的思維。
架構(gòu)師本身是個(gè)扯淡的工作,甚至你自己編不編程都沒那么重要。
你的任務(wù)是派活而不是干活。
你更像工廠里的下單員,你要把客戶的需求拆解成咱廠子里不同環(huán)節(jié)的工人們,能夠理解的生產(chǎn)任務(wù)。
這個(gè)過程需要你不停的扯淡,和產(chǎn)品經(jīng)理扯淡,和銷售扯淡,和部門經(jīng)理扯淡,和測(cè)試部門扯淡,和碼農(nóng)們扯淡。
你能扯,比你會(huì)編,重要得多。
很多碼農(nóng)不到35歲就被干掉了,是因?yàn)樗芙^扯淡。
他更喜歡等產(chǎn)品經(jīng)理,架構(gòu)師們和客戶扯清楚了,再通知他需要編什么。
那么隨著技術(shù)的演進(jìn),哪怕沒有AI,漸漸自動(dòng)化的工作流,也會(huì)把你取代的。
因?yàn)橐坏┏肚宄艘陕铮桑@個(gè)確定性的技術(shù)動(dòng)作本身是有很多科技手段,把它優(yōu)化掉的。
上面這還只是討論乙方架構(gòu)師的層面。
如果你做了系統(tǒng)架構(gòu)師,行業(yè)架構(gòu)師,那重點(diǎn)就從業(yè)務(wù),挪到商務(wù)上了。
你要弄清楚這個(gè)領(lǐng)導(dǎo)到底有什么說不出口的需求,他到底有啥顧慮。
有時(shí)候,他們集團(tuán)原先的開發(fā),即便毫無價(jià)值,也得想辦法利用起來。
你要是把人家的前期工作都干掉,那人家怎么向上交代?
對(duì)于甲方來說,這不變成什么什么資產(chǎn)流失了?他位置還能保住么?
所以沒用的廢代碼,你也得采納,這是人情世故。
他有很多要罩的廠商,即便你覺得用不上,你也得安排一個(gè)有用的理由,技術(shù)上還得能說通,這還是人情世故。
而且開發(fā)完了之后,還得能夠讓他指定的人,有能力維護(hù)。
就像一個(gè)真正的名將,操心的不只是打贏仗,而且要確保打贏了之后的那個(gè)攤子,即便交給一個(gè)被上面指派下來的太監(jiān),也是能夠運(yùn)營(yíng)的。
這里面有太多的人情世故。
也就是說,行業(yè)架構(gòu)師把人的利益梳理清楚了,才能夠浮現(xiàn)軟件架構(gòu)師所需要的那個(gè)業(yè)務(wù)需求。
軟件架構(gòu)師分解了業(yè)務(wù)需求,才輪到碼農(nóng)們有程序可編。
這就是為啥多年以來,我一直告誡讀者們,知道干啥,比干,重要得多。
前者才是我那天第四個(gè)話題提到的探路,后者,甚至連探樹都算不上,你只是在聽從安排,搬木頭。
十幾年前,我記得某一年春運(yùn),火車票上線線上搶票的業(yè)務(wù)。
有個(gè)歲數(shù)比我還大的程序員,搶票搶不到,急了,花了幾個(gè)小時(shí),寫了個(gè)搶票軟件,不僅自己搶到了,還替同事們搶。
我看了下他那個(gè)軟件的源代碼,就交代給他一個(gè)私活。
私活的內(nèi)容就是我那天講的,塔勒布的用極小的本金,去搶高回報(bào)率的事件。
因?yàn)楸举|(zhì)是一樣的,搶票和金融交易里的搶單有啥區(qū)別?沒區(qū)別的。
我此前寫過一版程序,讓他去改成另一種程序語言。
他幫我改后那版搶單的程序,拿去金融市場(chǎng)里做交易,比如幫我多賺了多少多少錢,我會(huì)因此分給他錢么?
不會(huì)的。
他哪怕自己開發(fā)的程序,他能掙錢么?不能。因?yàn)樗筒恢牢医淮麑懙某绦蛴迷谏兜胤健?/p>
這就是你知道要干啥,比干活本身值錢得多。
如果你能幫我改進(jìn)算法,你可以成為合伙人,如果你只能編程,那又不值錢。一個(gè)交易系統(tǒng)值錢的是算法,又不是編程這個(gè)行為。
你不開發(fā),我空了自己也能開發(fā),我沒空我把任務(wù)分解下,分給多個(gè)人去開發(fā),開發(fā)完了我自己組裝起來就能用。
所以,計(jì)算機(jī)系學(xué)生的前途真不是編程能決定的,是你自己到底能不能探索出那條路,決定的。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.