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