頂級程序員的思維方式評《代碼之美》第五條牛逼
公司里曾在北美作為產(chǎn)品研發(fā)經(jīng)理的資深人物某日和我閑聊,說到中美程序員的差別,北美的程序員,尤其是發(fā)明那些根本性東西比如JAVA, 比如Message機制,用得都是非常簡單的辦法,一方面,英語作為母語,與程序設(shè)計語言更加靠近,比中國的象形文字來的近,另一方面,這些北美的程序員似乎都深諳大道至簡的道理,代碼都寫得很簡單,當然問題的思維方式更為系統(tǒng)。相對的來說,國內(nèi)的技術(shù)人員總是習慣把問題復(fù)雜化,不僅理解問題復(fù)雜化,解法也復(fù)雜,有時正是因為沒有理解核心代碼的設(shè)計,反而使得解法更加背道而馳。 《代碼之美》這本書,剛好給了一些關(guān)于北美(但不限于)的頂級程序員的例子,與其說它是講代碼之美,到不如說是講他們的思維方式,我們甚至可以窺見他們的價值觀,個人的體會是,這本書里面的頂級程序員們體現(xiàn)了以一系列思維習慣值得國內(nèi)同行參考:
第一:非常認真全面的研究問題/客戶需求,比如在為霍金開發(fā)只用一個按鈕的交互軟件時,他們很快意識到按鈕不止表達01,按扭的時長可以成為一種模擬輸入,從而為長按和短按分別設(shè)計更細化的選項,由此簡化了后面的設(shè)計。
第二:總是希望用一個個案抽象一種模型,并用于更大的范圍,前面的程序可以服務(wù)給盲人,Google著名的MapReduce算法開始用于統(tǒng)計百萬億網(wǎng)頁上的詞頻率,后來用于所有分布式環(huán)境
第三:永遠尋求簡單的方式來解決問題,不過有個技巧,就是可以把復(fù)雜的難題恰當?shù)姆指。MapReduce算法體現(xiàn)了一種簡約之美,如同我們常講的中間件,屏蔽一切分布式,普通的程序員都可以依靠MapReduce和GFS來寫用于上千臺機器的分布式應(yīng)用。 在另一章開源ERP5的項目中,復(fù)雜的ERP項目的一級類僅有五個,Resouce, Node, Path, Movement, Item, 這些概念加上Order和Delivery的業(yè)務(wù)基本項構(gòu)成了基礎(chǔ)業(yè)務(wù)模型,這個設(shè)計思維有點像說宇宙是四大元素組成的。 另一個不錯的案例來自Linux內(nèi)核小組關(guān)于驅(qū)動的研究。 這個模型的抽象能力的缺乏,估計是中國工程師的軟肋,也是思維復(fù)雜化的原因。硅谷軟件人才IC(India/China)比比皆是,但能夠定義軟件行業(yè)的,還都是白人;蛟S,這個刪繁入簡的抽象能力,早在中國人學(xué)語文的時候被虛情假意的形容詞淹沒了。
第四:對于技術(shù)難題的靈感需要等待,從這本書看起來,軟件天才是不存在的,幾位頂級程序員都遇到一籌莫展的問題,有些幾個月也沒有解法,有的是某次喝咖啡的靈光一閃,或者干脆關(guān)鍵的程序都是在喜馬拉雅山下的山村寫的。
第五:他們都懷有程序改變世界的信心,在關(guān)于安全通訊的一章結(jié)尾,作者深信他們對于世界的民主化在做貢獻,在他們看來:人類文明的代碼,越來越需要程序員對其進行重新編程,然后重新接入社會這個操作系統(tǒng)中。比如,基因序列分析,商業(yè)軟件,計算機建模,更不要說互聯(lián)網(wǎng)上的多次革命,Email, Blog, SNS, VoIP。
這下理解為什么Google敢于對抗各國政府。
PS:但是對抗不了中國政府啊。
編輯:admin 最后修改時間:2019-07-31