舉秀才,不知書(shū)。舉孝廉,父別居。寒素清白濁如泥,高第良將怯如雞——桓靈時(shí)童謠。
有些東西是基礎(chǔ),比如coding。
搞軟件的,如果連coding都不會(huì),有一個(gè)算一個(gè),全都是南郭先生。
就好像只會(huì)小學(xué)語(yǔ)文肯定是文盲;但小學(xué)語(yǔ)文都不會(huì)的還不如文盲一樣。
沒(méi)錯(cuò)。我再重復(fù)一遍:如果你連coding都不會(huì),那么不好意思,你,對(duì)計(jì)算機(jī),一無(wú)所知,狗屁不通!
你隨便叫自己什么都可以,但就是別說(shuō)你懂計(jì)算機(jī)。
因?yàn)槟愕哪X袋,壓根就不存在理解軟件開(kāi)發(fā)領(lǐng)域最最粗淺概念的物理基礎(chǔ)。
很早前,我就在一個(gè)問(wèn)題下提過(guò):996等問(wèn)題,恰恰是因?yàn)檎麄€(gè)中國(guó)互聯(lián)網(wǎng)達(dá)成了壟斷、各大巨頭再無(wú)生存之憂,這才開(kāi)始搞各種幺蛾子。
當(dāng)年競(jìng)爭(zhēng)最激烈、隨時(shí)可能在和亞馬遜、msn、icq等巨頭的進(jìn)攻下死去時(shí),國(guó)內(nèi)這些企業(yè)卻恰恰相反,注重合理管理制度,不僅不追求加班,反倒向國(guó)際標(biāo)準(zhǔn)靠攏,要求程序員每周40~200行代碼。太多了反而會(huì)因?yàn)橘|(zhì)量問(wèn)題影響進(jìn)度。
企業(yè)生存無(wú)憂,用人標(biāo)準(zhǔn)自然寬松;寬松的用人標(biāo)準(zhǔn)使得這些人魚(yú)目混珠,魚(yú)目混珠的這些人反過(guò)來(lái)又惡化了辦公環(huán)境,造成嚴(yán)重內(nèi)耗……
有能力賣(mài)能力;沒(méi)有能力,當(dāng)然只能主動(dòng)挑起內(nèi)耗。
為什么說(shuō)“只要沒(méi)學(xué)好coding,計(jì)算機(jī)就不可能學(xué)懂”呢?
因?yàn)閏oding是一切的基礎(chǔ)。將來(lái)你學(xué)到的每一句話,最終都對(duì)應(yīng)于具體的一行或多行代碼。
并行并不是外行想象的并行,它還可能是“分時(shí)復(fù)用”;“分時(shí)復(fù)用”究竟是什么,你必須對(duì)CPU對(duì)計(jì)算機(jī)其它硬件如何協(xié)作了如指掌——哪怕錯(cuò)了一個(gè)時(shí)序都會(huì)有災(zāi)難性后果。
但即便如此,你也未必能把它寫(xiě)成程序。因?yàn)槿魏嗡剖嵌菐?lái)的后果都要比簡(jiǎn)單的時(shí)序嚴(yán)重得多,也復(fù)雜得多。
沒(méi)有親手把它實(shí)現(xiàn)出來(lái)、調(diào)試正確,你都不過(guò)只是口頭禪罷了。
中斷、DMA以及各種緩沖區(qū);總線、換碼、命令字……各種“可怕”的概念綜合起來(lái),才是操作系統(tǒng)。
不會(huì)coding,以上你全都不可能理解;會(huì)了coding,從以上概念到操作系統(tǒng),仍有很長(zhǎng)很長(zhǎng)的一段路。
操作系統(tǒng)仍然只是個(gè)起點(diǎn)。
網(wǎng)絡(luò)棧,虛擬執(zhí)行;集群,仲裁機(jī),單點(diǎn)失效……全都是實(shí)實(shí)在在的、簡(jiǎn)單的若干行代碼寫(xiě)就。
顯然,如果沒(méi)有真正想過(guò)這些功能的核心代碼是什么樣子,你念的仍然只是口頭禪。半點(diǎn)不比搜索引擎高明。
可以毫不夸張的說(shuō),現(xiàn)代計(jì)算機(jī)領(lǐng)域的任何突破首先就是一個(gè)算法。結(jié)構(gòu)化程序設(shè)計(jì)歸根結(jié)底是執(zhí)行現(xiàn)場(chǎng)保存與恢復(fù)的算法,面向?qū)ο笫莿?dòng)態(tài)綁定相關(guān)的一系列算法。然后,緩存,隊(duì)列,集群,大數(shù)據(jù),歸根結(jié)底都是算法。甚至就連比特幣都是拜占庭將軍問(wèn)題的解決算法。
如果你不能把這些算法理解透徹,那么你是如何分析它的呢?出了問(wèn)題你能解決嗎?
如果簡(jiǎn)單的本地算法都能把你難倒,那些分布式算法,那些諸多未必可靠節(jié)點(diǎn)參與、卻要找出可信結(jié)果的算法,你,有資格過(guò)來(lái)燒腦嗎?
都玩成專(zhuān)家了,都要每天分剖那些燒腦的分布式算法、那些“連參與貢獻(xiàn)算力的節(jié)點(diǎn)都要納入管理”的高級(jí)算法你都要了如指掌;結(jié)果單線程玩玩鏈表,你搞不定了?跨欄跑玩多不會(huì)過(guò)門(mén)檻了?誰(shuí)信你誰(shuí)傻。
誠(chéng)然,某些小學(xué)奧數(shù)題有時(shí)候也能難住數(shù)學(xué)教授。這我們能理解。但數(shù)學(xué)教授總不能參與小學(xué)數(shù)學(xué)考試都考不及格吧?
因此,我敢確定肯定以及斷定,凡基礎(chǔ)算法都學(xué)的一塌糊涂的,現(xiàn)在那些新名詞他也只是會(huì)說(shuō)說(shuō)罷了。壓根不存在理解的任何可能。
同時(shí),我還敢確定肯定以及斷定,如果不保持coding,不持續(xù)活動(dòng)自己的腦子,不管當(dāng)年你的算法學(xué)的有多溜,現(xiàn)代那些集群之類(lèi)高級(jí)知識(shí)(對(duì)應(yīng)著難度極大的分布式算法),你絕對(duì)玩不到精髓。
專(zhuān)家和操作手冊(cè)有什么不同?
答案是,專(zhuān)家知道每件事背后的原理。
計(jì)算機(jī)專(zhuān)家知道任何一件事、一個(gè)模塊、一個(gè)功能,是如何被圖靈機(jī)、馮諾依曼/哈佛結(jié)構(gòu)實(shí)現(xiàn)和執(zhí)行的。
他的腦子里有一個(gè)動(dòng)態(tài)的機(jī)器,所以他可以在軟件實(shí)現(xiàn)之前知道它應(yīng)該是什么樣子。這就是專(zhuān)家的價(jià)值。
想要讓腦子里有一個(gè)動(dòng)態(tài)的機(jī)器,你就必須親自的、一個(gè)齒輪一個(gè)齒輪、一條指令一條指令的搭建過(guò)它。
coding做的,就是這個(gè)訓(xùn)練。
沒(méi)有coding的“磚家”,他的腦子里絕對(duì)不會(huì)有一個(gè)活動(dòng)的、精確的機(jī)器;沒(méi)有這個(gè)機(jī)器,就沒(méi)有推演能力,就和一本死手冊(cè)沒(méi)有任何區(qū)別。
敲關(guān)鍵字,返回搜索結(jié)果,這是免費(fèi)的搜索引擎的功能;審視各種信息,推演之,然后去偽存真、在工程開(kāi)始之前預(yù)言其成功/失敗,這才是專(zhuān)家的不可替代性。
連簡(jiǎn)單的、初級(jí)的算法都理解不來(lái),你,相信這樣的“磚家”居然會(huì)有清晰的頭腦,能夠幫你把握紛繁復(fù)雜的現(xiàn)實(shí)、帶領(lǐng)團(tuán)隊(duì)做一個(gè)高難項(xiàng)目并走向成功?
“可是”,你爭(zhēng)辯說(shuō),“我親眼見(jiàn)他們把資深程序員訓(xùn)的一愣一愣???我親眼見(jiàn)資深程序員聽(tīng)他的指揮、而且真把項(xiàng)目做出來(lái)了???”
這就叫混飯吃的藝術(shù)——也叫領(lǐng)導(dǎo)的藝術(shù)。
所謂領(lǐng)導(dǎo)的藝術(shù),說(shuō)白了就四個(gè)字:說(shuō)太平話。
什么叫“說(shuō)太平話”呢?
搜“軟件工程”,你會(huì)發(fā)現(xiàn)很多總結(jié)。什么高內(nèi)聚、低耦合,什么高扇入低扇出……
這些就是太平話。說(shuō)出來(lái)絕對(duì)不會(huì)錯(cuò),但結(jié)合不了實(shí)際就沒(méi)半點(diǎn)用——想結(jié)合實(shí)際?好啊,你先學(xué)會(huì)coding。不會(huì)?不會(huì)就當(dāng)太平話用。
好了,背會(huì)了太平話,現(xiàn)在你能當(dāng)領(lǐng)導(dǎo)了。Linus/卡馬克來(lái)照樣訓(xùn)的他灰孫子一樣。
——領(lǐng)導(dǎo),您看這設(shè)計(jì)……行嗎?
嗯?!做到高內(nèi)聚低耦合了嗎?
——差不多吧……應(yīng)該優(yōu)化到極致了……
咄!什么叫應(yīng)該!我要聽(tīng)確定!
——好,確定優(yōu)化到極致……
停!怎么個(gè)確定?你能證明嗎?
——這……這兩個(gè)目標(biāo)有時(shí)候甚至是互斥的……
回去討論討論。我們是專(zhuān)業(yè)團(tuán)隊(duì),要做就做到最好!
——是!
看到了嗎?一點(diǎn)有用信息都沒(méi)輸出,但照樣在內(nèi)行前不露竊。
那要遇到杠精,非要你說(shuō)點(diǎn)人話呢?
好辦。
——領(lǐng)導(dǎo),您看這次這設(shè)計(jì)……
不好。打回重做!
——哪里不好?IBM都這樣……
IBM就不能超越了?
——那您說(shuō)說(shuō),怎么超越?
啪!這是你的工作!搞不定我申請(qǐng)換人!
——我還就和你杠上了!哪里有問(wèn)題,你今天非給我劃個(gè)道道不可!
喂?好的,我馬上去。(一轉(zhuǎn)臉)我要見(jiàn)個(gè)客戶(hù)。你好自為之。
——老子不干了!
先提交辭職信,等我回來(lái)處理。
你看,只要是稍有復(fù)雜度的工作,玩好這幾板斧,混一輩子不難。再?gòu)?qiáng)的大牛到你手下也得吃癟。
這些人的得勢(shì),就是996漸成時(shí)尚的背后真相。
那么,這種人有辦法識(shí)別嗎?如何證明我這個(gè)“不會(huì)coding什么都不行”的論斷呢?
簡(jiǎn)單。調(diào)走他,看看沒(méi)有他在、且資源有充足的前提下(比如指派一個(gè)只懂管理不懂技術(shù)的經(jīng)理過(guò)去),他的團(tuán)隊(duì)是不是還能完成項(xiàng)目;看看完成的項(xiàng)目是否具有同等甚至更好的質(zhì)量、更快的實(shí)現(xiàn)速度。
齊宣王使人吹竽,必三百人。南郭處士請(qǐng)為王吹竽,宣王說(shuō)之,廩食以數(shù)百人。
宣王死,湣王立,好一一聽(tīng)之,處士逃。
果然,混飯三板斧又出來(lái)了。
第一板斧,你是學(xué)生社會(huì)很復(fù)雜。
第二板斧,你唯技術(shù)論但技術(shù)不能解決所有問(wèn)題。
第三板斧,我很高明,雖然你看不懂;雖然天下就沒(méi)人看的懂我的高明,我也沒(méi)法證明我的高明,但我還是高明。
針對(duì)第一板斧:我認(rèn)為,你丫是必須把所有人都定義成學(xué)生,才好施展你的忽悠。
但我還是想知道,除了“你們low你們沒(méi)見(jiàn)過(guò)世面你們必須聽(tīng)我的”,你們還能說(shuō)出哪怕半拉人話嗎?
除了一邊裸著小雞雞在風(fēng)中搖擺、一邊假裝自己穿有很漂亮的衣服之外,您還有別的什么技倆施展嗎?
裝穿衣服這招早過(guò)時(shí)了。八百年前的古老騙術(shù),不能就這么一直用下去吧?
針對(duì)第二板斧:你要應(yīng)聘產(chǎn)品經(jīng)理,哪怕你讓識(shí)別手機(jī)殼顏色我都沒(méi)話說(shuō);但既然你丫來(lái)應(yīng)聘技術(shù)職位,我覺(jué)得你還是得懂點(diǎn)技術(shù)。
技術(shù)領(lǐng)域不談技術(shù),你丫還能談點(diǎn)什么?
技術(shù)領(lǐng)域你談商業(yè),那你為什么不去應(yīng)聘市場(chǎng)經(jīng)理?過(guò)去做程序必須轉(zhuǎn)管理,現(xiàn)在不轉(zhuǎn)管理了,轉(zhuǎn)市場(chǎng)?但轉(zhuǎn)了你就出去啊,還賴(lài)在技術(shù)這塊做什么?
茅坑是拉屎的地方,技術(shù)這廟小,容不下您這不拉屎的大神。
不然您端著一碗吮指原味雞高踞于一坨熱騰騰的大便之上,下面摳摳塞嘴里吸吸——哪怕您覺(jué)得很合適很優(yōu)雅,別人也忍不住惡心啊。
有點(diǎn)公德好不好。
針對(duì)第三板斧:你的確可以裝逼,而且一旦你裝到一定程度,那些外行甚至低水平的業(yè)內(nèi)人士還真沒(méi)法戳穿你了。但他們沒(méi)法戳穿不等于別人也沒(méi)法戳穿。
很簡(jiǎn)單,請(qǐng)回顧一下,你是怎么爬上去的。解決了什么疑難問(wèn)題、做出過(guò)什么突出貢獻(xiàn)。
您就是想把自己吹成“圣人生而知之”,圣人也有常人可以理解的小時(shí)候。
哪怕您是來(lái)自未來(lái)的穿越人士,那么也一定有捧您上位的第一桶金。亮出來(lái)讓大伙見(jiàn)識(shí)見(jiàn)識(shí)。
據(jù)說(shuō)某些官員/商人不敢談自己的發(fā)家史;我想身為技術(shù)人員,您不至于也不敢談自己是如何發(fā)跡的吧。
RECOMMEND
- 點(diǎn)個(gè)在看你最好看 -
聯(lián)系客服