微軟亞洲研究院首席研發(fā)經(jīng)理鄒欣在工作之余,出版了幾本書,其中《編程之美》、《構(gòu)建之法》在程序員界頗具名氣。他還是在微博社交網(wǎng)絡(luò)平臺(tái)擁有 30 余萬粉絲的大 V。既然寫書,可能也是個(gè)讀書人?這次,我們請(qǐng)他談?wù)勊矚g的專業(yè)書。
我今天想通過三個(gè)公式,向大家介紹 IT 行業(yè)中一些有趣的書。
第一個(gè)公式:程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法
Algorithms + Data Structures = Programs
中文版:《算法 + 數(shù)據(jù)結(jié)構(gòu) = 程序》
作者:Niklaus Wirth
推薦理由:《算法 + 數(shù)據(jù)結(jié)構(gòu) = 程序》是一本經(jīng)典書籍,我在大學(xué)三年級(jí)的時(shí)候,要做編譯原理課的項(xiàng)目,就去圖書館借了這本書看。當(dāng)時(shí)覺得這種經(jīng)典書籍一定非常難懂,結(jié)果卻出乎我的意料,這本書對(duì)編譯原理和程序設(shè)計(jì)的各種技術(shù)講解得非常清晰。說實(shí)在的,它比我們課堂上用的自編教材好多了。后來隨著閱讀書籍的增加,我發(fā)現(xiàn)要真的弄懂一個(gè)領(lǐng)域,還是要讀那個(gè)領(lǐng)域經(jīng)典的書,而且這些大部頭的經(jīng)典往往非常好懂(當(dāng)你有耐心的時(shí)候)。
編程領(lǐng)域還有很多好書,今天我們主要講軟件工程和創(chuàng)新方面的書,所以編程方面只列一本。
第二個(gè)公式:軟件 = 程序 + 軟件工程
很多 IT 專業(yè)的同學(xué)不但不看書,連程序都寫得少,考試就靠老師劃的重點(diǎn)。談起專業(yè)書,有人問,專業(yè)書是否都充斥著好多原則和教條,需要?jiǎng)澲攸c(diǎn)線和背誦的,例如 “二十三條設(shè)計(jì)模式”?其實(shí)并不對(duì),IT 行業(yè)這幾十年有這么多有趣的技術(shù)、人物、故事,這些都在各種有趣的書里面,錯(cuò)過這些書,實(shí)在太可惜了。本文中推薦的書都很有意思,而且能引起思考,并不強(qiáng)求大家劃重點(diǎn)和背誦。
Agile Software Development, Principles, Patterns, and Practices
中文版:《敏捷軟件開發(fā):原則、模式和實(shí)踐》
作者:Robert C. Martin
推薦理由:這本書從實(shí)踐出發(fā),講解了敏捷方法、OO 設(shè)計(jì)原則和設(shè)計(jì)模式。這本書并不是靜態(tài)地羅列并贊美 N 種設(shè)計(jì)原則和模式,而是分析原則和模式產(chǎn)生的必要性和使用的時(shí)機(jī)。例如對(duì)于 “單一職責(zé)原則(SRP)”、“開放封閉原則(OCP)”,作者寫到:
變化的軸線僅當(dāng)變化實(shí)際發(fā)生時(shí)才具有真正的意義。如果沒有征兆,那么去應(yīng)用 SRP,或者其他原則都是不明智的。
遵循 OCP 的代價(jià)也是昂貴的…… 顯然,我們希望把 OCP 的應(yīng)用限定在可能會(huì)發(fā)生的變化上?!?… 最終,我們會(huì)一直等到變化發(fā)生時(shí)才采取行動(dòng)。
回頭看看許多大學(xué)在編程和軟件工程課上給學(xué)生布置的作業(yè),有 “變化的軸線么”? 有需求的變化么?沒有!那既然不用考慮任何變化,為何不把所有的功能放在一個(gè)大類里面,或者就寫在 main () 函數(shù)里面?管他什么 SRP、OCP 原則、內(nèi)聚、耦合、信息隱藏?當(dāng)在課程中沒有足夠復(fù)雜性、易變性的軟件工程要求的時(shí)候,學(xué)生的低質(zhì)量作業(yè)恰恰是明智地完成了老師的要求。有同學(xué)還陷入 “軟件工程的原理沒用” 的誤區(qū):
"
哎,你看我搞了一通宵,就寫好了程序,得了高分。也不用啥軟件設(shè)計(jì)的原則,事先也不用需求說明書,也不留什么文檔,就搞定了,軟件工程對(duì)我沒用!
"
這是值得軟件工程老師深思的。
Refactoring: Improving the Design of Existing Code
中文版:《重構(gòu):改善既有代碼的設(shè)計(jì)》
作者:Martin Fowler
推薦理由:“Make it work, make it right, make it fast, make it extensible.” 這本書提供了許多在 OO 開發(fā)模式下 “make it right”、“make it extensible”的建議。重構(gòu)是 “不改變軟件可觀察行為的前提下改善其內(nèi)部結(jié)構(gòu)”。我們想把程序的結(jié)構(gòu)變好,方便程序員理解、測(cè)試、維護(hù) (right),也方便將來的擴(kuò)展 (extensible)。大學(xué)生們交了軟工大作業(yè)之后,還會(huì)去理解、測(cè)試、維護(hù)、擴(kuò)展它么?如果沒有,那就解釋了為何在大學(xué)里沒有人理解重構(gòu)的意義,也沒有得到軟件工程的鍛煉。
很多同學(xué)認(rèn)為,科學(xué)和理論很重要,軟件工程似乎就是多寫代碼。這種觀點(diǎn)是非常錯(cuò)誤的。計(jì)算機(jī)科學(xué)與軟件工程各有自己的特點(diǎn)和側(cè)重點(diǎn),要在這兩個(gè)領(lǐng)域取得成就,就要按照不同領(lǐng)域的規(guī)律來實(shí)踐。計(jì)算機(jī)科學(xué)家 Tony Hoare 精辟地總結(jié)過兩個(gè)學(xué)科的不同側(cè)重點(diǎn):
Engineering—An Endless Frontier
中文版:《工程學(xué):無盡的前沿》
作者:歐陽(yáng)瑩之
推薦理由:本書作者論證了當(dāng)今的工程學(xué)不僅是科學(xué)的合作者,而且應(yīng)該處于等量齊觀的地位。
譯者之一李嘯虎對(duì)本書的解讀是:
哲學(xué)家的宗旨是:“我思,故我在?!?/p>
科學(xué)家的宗旨是:“我發(fā)現(xiàn),故我在。”
而工程活動(dòng)主體(工程師和企業(yè)家)的宗旨則是:“我構(gòu)建,故我在?!?/p>
工程師構(gòu)建了新的軟件、新的交流工具(互聯(lián)網(wǎng)),讓新一代的科學(xué)家們能在此基礎(chǔ)上作更多的科學(xué)研究。
最近火熱的 AI 的主要核心算法在三十年前就已經(jīng)出現(xiàn),為何三十年前 AI 沒有突破,而現(xiàn)在才有大規(guī)模的突破?因?yàn)楣こ處煷罱嘶ヂ?lián)網(wǎng)和與互聯(lián)網(wǎng)相關(guān)的各種應(yīng)用,讓大量的數(shù)據(jù)能產(chǎn)生并為科學(xué)研究所用;并且,計(jì)算機(jī)體系結(jié)構(gòu)工程師、芯片工程師、軟件工程師設(shè)計(jì)和實(shí)現(xiàn)了各種分布式算法,讓以高性能 GPU 為代表的算力能有效率地為 AI 訓(xùn)練服務(wù)。這才讓 AI 有了今天百花齊放、百家爭(zhēng)鳴的繁榮景象。
工程學(xué)不是別的學(xué)科的附庸,它有自己的規(guī)律,我們工程師要認(rèn)真研究和探索。
Dreaming in Code
中文版:《夢(mèng)斷代碼》
作者:Scott Rosenberg
推薦理由:很多同學(xué)胸懷大志,覺得自己技術(shù)很牛,萬事俱備,就差一大筆啟動(dòng)資金了;也有同學(xué)發(fā)現(xiàn)了很好的想法,就差一個(gè)給力的程序員。如果把技術(shù)和想法結(jié)合起來,創(chuàng)業(yè)賺大錢豈不是如同探囊取物一般簡(jiǎn)單?這本書就講了這樣一個(gè)故事:一個(gè)有技術(shù)大牛、資金和宏大目標(biāo)的團(tuán)隊(duì),為何七年做不出一個(gè)好軟件?作者 Scott 忠實(shí)地記錄了這個(gè)團(tuán)隊(duì)七年中的各種折騰、各種軟件工程的錯(cuò)誤。這些實(shí)踐中的錯(cuò)誤和對(duì)錯(cuò)誤的分析,價(jià)值遠(yuǎn)遠(yuǎn)大于那些成功學(xué)的雞湯和煽情的新聞報(bào)道。
軟件開發(fā)離不開人:人的動(dòng)力,人的發(fā)展
PeopleWare: Productive Projects and Teams
中文版:《人件》
作者:Tom Demarco、Timothy Lister
推薦理由:由一群人組成的團(tuán)隊(duì)怎么樣才能提高軟件開發(fā)的效率?把辦公區(qū)搞成整齊劃一的格子間有助于電源線和網(wǎng)線的布置和衛(wèi)生的清理,但是對(duì)工程師的效率有正面還是負(fù)面的影響?IT 工業(yè)有軟件、硬件,它們都很容易被替換,那么在 IT 工業(yè)中的人是否也是統(tǒng)一規(guī)格,隨時(shí)可以替換的 “人件”?這本書通篇講述了相反的觀點(diǎn):不是把人當(dāng)作零件來用,而是要尊重人,發(fā)揮人的潛能,通過有情商的人來創(chuàng)造高效率的團(tuán)隊(duì)。在這樣的原則下,很多令人煩惱的問題都有不錯(cuò)的解決方案:如何提高效率、如何處理質(zhì)量和成本的矛盾(注:它們沒有矛盾,高質(zhì)量會(huì)帶來低成本和愉悅的團(tuán)隊(duì))、人員去留、團(tuán)隊(duì)文化等等。本書特別適合互聯(lián)網(wǎng)公司的中層領(lǐng)導(dǎo)來閱讀。
Professional Software Development
作者:Steve McConnell
推薦理由:“軟件工程” 和 “計(jì)算機(jī)科學(xué)” 有什么區(qū)別和聯(lián)系?現(xiàn)在軟件和 AI 都很時(shí)髦,那么熱潮過后呢?如果軟件工程是一個(gè)獨(dú)立的 “職業(yè)”,那么個(gè)人、機(jī)構(gòu)和整個(gè)行業(yè)應(yīng)該有什么樣的原則、規(guī)范和行為準(zhǔn)則?例如,現(xiàn)在的醫(yī)生都要通過嚴(yán)格的考試獲得行醫(yī)執(zhí)照,你才有信心把自己的身體和各種個(gè)人信息交給醫(yī)生。那么,碰到一個(gè)自學(xué)編程、號(hào)稱能做 AI 應(yīng)用的業(yè)余愛好者,客戶似乎很輕易地就把自己的電腦和各種信息都交給了 TA,這是一個(gè)成熟產(chǎn)業(yè)應(yīng)該有的現(xiàn)象么?這本書可以給你這些問題的答案。
Programmers at Work
中文名:《編程大師訪談錄》
作者:Susan Lammers
推薦理由:本書是 19 位 1980 年代的優(yōu)秀程序員的采訪錄。和這本書的中文名字暗示的不一樣,他們當(dāng)時(shí)還是不是“大師”,而是在第一線每天寫代碼的工程師。在計(jì)算機(jī)行業(yè)發(fā)展的早期,計(jì)算機(jī)的能力還是很有限,但是這些程序員無一例外都認(rèn)為計(jì)算機(jī)能極大地改變社會(huì),十分熱情地投入他們的工作,他們堅(jiān)信星星之火可以燎原。幾十年過去了,回過頭看看那些先鋒人士總結(jié)他們成功的經(jīng)驗(yàn),他們對(duì) “未來” 的期望(有些預(yù)計(jì)非常準(zhǔn)確?。欠浅S幸馑嫉氖虑?。
Coders At Work
中文版:《編程人生:15 位軟件先驅(qū)訪談錄》
作者:Peter Siebel
推薦理由:本書是對(duì) 15 位頂級(jí)程序員的深入采訪,600 頁(yè)內(nèi)容中有非常多的心得可以在軟件工程的實(shí)踐中借鑒。這些優(yōu)秀工程師、科學(xué)家閱人無數(shù),對(duì)于優(yōu)秀程序員的特點(diǎn), 都說是 “熱情”。
但是如果在面試時(shí)問 “你對(duì)技術(shù)有熱情么?”所有回答都是肯定的。如何判斷一個(gè)程序員是否真正有熱情?他們的建議是:
你要在場(chǎng)景中、對(duì)話中感覺對(duì)方的 “熱情”。如果一個(gè)念了 5-7 年計(jì)算機(jī)專業(yè)的人,不能 “兩眼放光” 地給你講他自己最得意、最激動(dòng)人心的項(xiàng)目或創(chuàng)造,如果他除了老師的作業(yè)和實(shí)驗(yàn)室的項(xiàng)目之外,沒有別的想法,也不能對(duì)你所在的領(lǐng)域提出深刻的問題,你覺得這種人有多少 “熱情”?
Code Complete (2nd Ed)
中文版:《代碼大全 (第二版)》
作者:Steve McConnell
推薦理由:本書是軟件開發(fā)的百科全書,是這個(gè)領(lǐng)域必讀的一本書。“Code Compete” 是指軟件開發(fā)過程中的一個(gè)狀態(tài) “代碼完成”,表示所有該寫的代碼都寫出來了(可能還有很多 bug)。中文名比較誤導(dǎo),這本書并不是包括所有千奇百怪的代碼。
另外一本經(jīng)常被引用的是:《人月神話》,我個(gè)人感覺,這兩本經(jīng)典都被大多數(shù)人買來裝飾了書架,并沒有認(rèn)真讀、經(jīng)常讀,不然我們軟件行業(yè)就不會(huì)還有那么多不靠譜的項(xiàng)目計(jì)劃和那么多 bug 了。
第三個(gè)公式:企業(yè) = 軟件 + 商業(yè)模式
顛覆式創(chuàng)新,有規(guī)律嗎?
Where Wizards StayUp Late: The Origins of the Internet
作者:Matthew Lyon、Katie Hafner
推薦理由:這本書用生動(dòng)的筆觸描述了互聯(lián)網(wǎng)在美國(guó)建立的過程,有許多計(jì)算機(jī)科學(xué)和工程的早期人物在此出現(xiàn),很多我們現(xiàn)在習(xí)以為常的規(guī)矩(例如 email 中的 @符號(hào))就是那時(shí)候出現(xiàn)的。
Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age
作者:Michael A. Hiltzik
推薦理由:本書講述了施樂公司 PARC 研究院的故事,可歌可嘆。1970-1980 年代的天才和怪才們?cè)谝粋€(gè)非計(jì)算機(jī)專業(yè)的 “外行” 領(lǐng)導(dǎo)下,在遠(yuǎn)離公司總部的硅谷做出了很多開創(chuàng)性的工作,包括四項(xiàng)圖靈獎(jiǎng)水平的創(chuàng)新。遺憾的是,這些創(chuàng)新死于施樂公司內(nèi)部的短視和官僚流程中,但是這些創(chuàng)新深深地影響了之后的計(jì)算機(jī)行業(yè) —— 包括蘋果和微軟。
我記得書里面講了這樣一個(gè)故事:一個(gè)學(xué)歷不高的小伙子很有熱情,非常想加入 PARC,但是研究院沒有正式名額了,研究院的人非常愛才,就把他召了進(jìn)來,不能開正式的工資,就以 “打印機(jī)耗材” 等名義,撥錢給他,算作他的報(bào)酬。很多年后,這個(gè)小伙子在多媒體領(lǐng)域做出非常出色的成就?,F(xiàn)在言必稱創(chuàng)新、愛才的各種研究院敢這么做么?
這本書的標(biāo)題很難被翻譯成中文,大家看過書后,可以試一試,歡迎留言分享你的翻譯。
浪潮之巔
作者:吳軍
推薦理由:本書講述了各個(gè)科技公司在各次技術(shù)浪潮中的命運(yùn)。公司領(lǐng)導(dǎo)的洞察力和科技、商業(yè)模式、資本的適當(dāng)結(jié)合,是公司走向浪潮之巔的訣竅。
關(guān)于創(chuàng)新的書有很多,下面的四本書兩兩成對(duì),都是作者在第一本成名作后的二十年左右,寫了第二本書,進(jìn)一步拓展了原有理論,并給出了第一本書中問題的答案:
The Innovators Dilemma
中文版:《創(chuàng)新者的窘境》
作者:Clayton M. Christensen
Competing Against Luck
中文版:《與運(yùn)氣競(jìng)爭(zhēng)》
第一本書的推薦理由:成功的大公司能聽取用戶的意見,把精力投入增量改進(jìn)現(xiàn)有產(chǎn)品中;成熟的價(jià)值鏈從多方面阻止公司去冒險(xiǎn)嘗試新興領(lǐng)域;同時(shí),公司為了爭(zhēng)取更高的利潤(rùn)率,不得不忽視萌芽階段的小市場(chǎng);專家對(duì)新興市場(chǎng)的分析往往基于現(xiàn)有經(jīng)驗(yàn),結(jié)論往往大錯(cuò)特錯(cuò)!就這樣,往往有一些名不見經(jīng)傳的小公司從薄利的小市場(chǎng)切入,使用比較粗糙的顛覆式技術(shù),慢慢掀翻了大公司。
第二本書的推薦理由:怎樣創(chuàng)新?如何找到用戶真正需要解決的問題?不能光說 “窘境” 而不給出解藥。這本書提出了 “Jobs To Be Hired”理論,來指導(dǎo)如何提高創(chuàng)新產(chǎn)品的成功率,而不是只靠運(yùn)氣。
Cross the Chasm
中文版:《跨越鴻溝》
作者:Geoffrey A. Moore
Escape Velocity: Free Your Company's Future from the Pull of the Past
第一本書的推薦理由:很多人認(rèn)為大眾對(duì)技術(shù)的接受是一道連續(xù)的曲線:一個(gè)好技術(shù)在實(shí)驗(yàn)室取得專家的好評(píng),接著就得到早期嘗鮮者的追捧,然后大眾開始跟進(jìn),開始大賣,一舉改變世界。然而,Moore 指出在早期嘗鮮者那里有一道鴻溝(chasm,可以讀作 “開森”),很多早期產(chǎn)品只有某種新技術(shù),但不能解決用戶真正的需求,它就會(huì)掉在溝里,IT 界的專業(yè)人士應(yīng)該聽說過很多這樣的故事,很多高大上的技術(shù)創(chuàng)新,在技術(shù)圈子里引起了陣陣叫好聲,但是它們往往跨不過鴻溝而折戟市場(chǎng),成為非常小眾的產(chǎn)品,或者失敗。作者在這本書里還分享了眾多關(guān)于打造暢銷產(chǎn)品的真知灼見。
第二本書的推薦理由:一個(gè)行業(yè)大家都了解,大家的招數(shù)都差不多,都在類似的軌道中打轉(zhuǎn),沒有明顯的贏家。除了降價(jià),你似乎想不出什么辦法,怎么辦?這本書教你如何分析決定產(chǎn)品成功的各種因素,如何調(diào)整動(dòng)能和勢(shì)能,讓你的產(chǎn)品比別人好十倍,獲得 “逃離速度”,別人的產(chǎn)品還在辛苦地繞著地球轉(zhuǎn),你的產(chǎn)品已經(jīng)擺脫了地球引力,一飛沖天了。一個(gè)團(tuán)隊(duì)的資源和時(shí)間非常有限,我們可以開發(fā)各個(gè)方面的新功能,你通過什么方法來取舍,決定優(yōu)先級(jí)?Geoffrey 提倡的四個(gè)象限的分析方法獨(dú)具一格。
企業(yè)成長(zhǎng)需要什么精神:Build To Win
我們做軟件有各種做法:
Build To Learn:開發(fā)軟件,構(gòu)建系統(tǒng)的目的是做進(jìn)一步的試驗(yàn),試圖發(fā)現(xiàn)客觀規(guī)律或某個(gè)試驗(yàn)方法的優(yōu)點(diǎn)與缺點(diǎn)。這些項(xiàng)目經(jīng)常是科研論文的基礎(chǔ)工作。
Build To Show:為了突出地展現(xiàn)某個(gè)技術(shù)的作用,開發(fā)一些演示為目的的軟件,這些項(xiàng)目很吸引眼球,經(jīng)常獲得新聞報(bào)道,但是功能未必全面或?qū)嵱谩?/p>
Build To Serve:為了服務(wù)一定范圍的目標(biāo)用戶而構(gòu)建的工具等,有時(shí)以公開的 SDK 形式發(fā)布,讓別的研發(fā)人員使用。
Build To Win:以在市場(chǎng)上贏得用戶為目標(biāo)而構(gòu)建的軟件。這也是種種科學(xué)發(fā)現(xiàn)、技術(shù)突破最好的試金石。所有以營(yíng)利為目的的公司和團(tuán)隊(duì)都在為此努力。
下面推薦幾本體現(xiàn)了 “Build To Win” 精神的書:
盛田昭夫:日本制造精神是這樣創(chuàng)造的
作者:江波戶哲夫
推薦理由:這本書描述了以索尼公司創(chuàng)始人盛田昭夫?yàn)榇淼哪且淮夹g(shù)人員朝氣蓬勃的創(chuàng)新精神,和各種關(guān)于創(chuàng)新、冒險(xiǎn)的故事。這套書有很多值得技術(shù)人員和企業(yè)家學(xué)習(xí)的地方。他們創(chuàng)新的第一個(gè)產(chǎn)品是電飯鍋!但是由于技術(shù)不過關(guān),這個(gè)創(chuàng)新失敗了。但隨后,他們?cè)谑珍洐C(jī)、電器和游戲機(jī)開創(chuàng)了一個(gè)時(shí)代。
索尼公司的電飯鍋產(chǎn)品
Hard Drive
作者:James Wallace、Jim Erickson
推薦理由:本書客觀描述了 Bill Gates 的成長(zhǎng)和微軟公司的前 15 年的發(fā)展。讀了這本書,你就不會(huì)相信各種關(guān)于微軟早期成功的小道消息了。當(dāng)被問到成功秘訣時(shí),Bill 的回答很簡(jiǎn)短:“You've got to drive hard”。這里 “Hard Drive” 不是指硬盤,而是指 “猛踩油門”。
Inside Intuit
作者:Suzanne Taylor、Kathy Schroeder、John Doerr
推薦理由:商業(yè)理論會(huì)談到 “先發(fā)優(yōu)勢(shì)”(Frist Mover Advantage)和 “后發(fā)優(yōu)勢(shì)”(Second Mover Advantage),Intuit 的創(chuàng)始人分析了市場(chǎng)上所有個(gè)人財(cái)務(wù)軟件的情況,發(fā)現(xiàn)市場(chǎng)上已存在 46 家公司,他們自嘲說自己有 47th Mover Advantage。結(jié)果就是這第 47 名的后來者最后成為了市場(chǎng)的 “老大”,打敗了包括微軟公司在內(nèi)的諸多對(duì)手。Intuit 早期的兩位工程師還創(chuàng)下了軟件行業(yè)最早的結(jié)對(duì)編程記錄 ——1987 年 3 月,為了趕進(jìn)度,他們兩人輪換一人敲代碼,一人在旁邊指揮,連續(xù)工作了六十小時(shí)。
Revolution in The Valley: The Insanely Great Story of How the Mac Was Made
中文版:《硅谷革命:成就蘋果公司的瘋狂往事》
作者:Andy Hert***eld
推薦理由:作者 Andy 是 Mac 早期團(tuán)隊(duì)成員,這本書記錄了 Apple 公司的一群年輕人創(chuàng)造 Macintosh 的故事。這些故事有些振奮人心,有些很幽默,有些比較瘋狂。我特別喜歡里面的 “圓角矩形框” 的故事:
在設(shè)計(jì) Macintosh 界面的時(shí)候,技術(shù)牛人比爾用了各種技巧,讓 Mac 能很快地畫出各種圓形和橢圓,這在 1981 年的 Mac 機(jī)器上是很了不起的事情。因?yàn)榈谝话娴?Mac 都沒有浮點(diǎn)計(jì)算芯片,運(yùn)算開方和乘除法都很慢。Bill 的算法只用加減法,就做到了畫橢圓,所以速度非常快。他激動(dòng)地給喬布斯演示,喬布斯說:“你也可以把帶圓角的矩形框畫得很快吧?” 比爾有點(diǎn)不爽,因?yàn)楫a(chǎn)品經(jīng)理不但不衷心佩服這個(gè)技術(shù),而且還提了新的要求。他說:“不,沒法做,實(shí)現(xiàn)不了,而且我們不需要這樣的圓角矩形框!” 喬布斯認(rèn)真地指出來辦公室里很多物件都是有圓角矩形框,而且他還把比爾拉到屋外散步,一邊走,一邊指出周圍生活中的各種圓角矩形,它們正是用戶非常熟悉的用戶界面元素。比爾只好說 “我試試看……”。第二天,比爾就實(shí)現(xiàn)了快速畫圓角矩形框的算法,這就是 Mac、iPhone、iPad 上面用戶習(xí)以為常的圓角矩形框的來歷。
你也可能注意到了,有些操作系統(tǒng)上的圖標(biāo)默認(rèn)是直角的矩形框,這兩種設(shè)計(jì)影響你使用的效率么?影響你對(duì)它們 “美” 的評(píng)價(jià)么?
Steve Jobs
中文版:《喬布斯傳》
作者:Walter Isaacson
推薦理由:《喬布斯傳》中有很多關(guān)于個(gè)人成長(zhǎng)、情商、創(chuàng)新、項(xiàng)目管理、企業(yè)成長(zhǎng)的經(jīng)驗(yàn)教訓(xùn)。它也讓我們?nèi)媪私饬藛滩妓股械拈W光點(diǎn)和不那么閃光的地方。
在年輕的時(shí)候,我很不喜歡看人物傳記,覺得那都是宣傳和吹牛。當(dāng)我有了一些人生閱歷、能耐心讀書的時(shí)候,我發(fā)現(xiàn)有些傳記還是很有看頭的。例如在《杰克?韋爾奇自傳》中,杰克在回顧了自己幾十年來招聘員工時(shí)所犯的錯(cuò)誤:
根據(jù)應(yīng)聘者的外表和畢業(yè)學(xué)校來決定是否錄用。(后來他發(fā)現(xiàn):有些人徒有其表,外強(qiáng)中干)
在亞洲招聘時(shí),如果應(yīng)聘者的英語(yǔ)說得不錯(cuò),我就很有可能接受了他。(后來他發(fā)現(xiàn):語(yǔ)言能力不是全部能力)
我對(duì)那些受過多門學(xué)科教育,有著多個(gè)學(xué)位頭銜的簡(jiǎn)歷十分偏愛。(后來他發(fā)現(xiàn):有些人不能集中精力在某一項(xiàng)業(yè)務(wù)上,容易散漫,不愿承諾,缺乏對(duì)任何一件事情的緊張與熱情)
走了這么多彎路后,杰克意識(shí)到真正要尋找的是那些充滿了熱情,希望做出點(diǎn)成績(jī)來的人 —— 這和我們前面看到的編程大師的總結(jié)挺像的,可能大家都走過類似的彎路吧?
In Search of Excellence: Lessons from America's Best-Run Companies
中文版:《追求卓越》
作者:Thomas J. Peters、Robert H.、Jr. Waterman
推薦理由:這本上世紀(jì)八十年代的書調(diào)查了當(dāng)時(shí)美國(guó)優(yōu)秀公司的管理經(jīng)驗(yàn),總結(jié)了卓越管理的幾大要素。里面關(guān)于惠普公司的故事給我留下很深印象:惠普公司的創(chuàng)始人看到公司管理人員下班時(shí)把儀器庫(kù)房都鎖起來了,很生氣,命令庫(kù)房都不上鎖,這樣員工可以拿儀器回家做各種實(shí)驗(yàn)。
在書中當(dāng)年作為正面例子出現(xiàn)的公司如惠普、IBM 現(xiàn)在都碰到了新挑戰(zhàn),而有些公司已經(jīng)不存在了(如王安電腦)。是舊的管理原則不起作用了,還是新的領(lǐng)導(dǎo)層不再真正追求卓越,而是把精力花在創(chuàng)新公司的 logo 這種表面文章上了?下面是我體會(huì)比較深的兩個(gè)原則:
崇尚行動(dòng)。實(shí)施 “走動(dòng)管理”,到問題現(xiàn)場(chǎng)去;鼓勵(lì)試驗(yàn)。
用交流、培訓(xùn)、保障和獎(jiǎng)勵(lì)代替死板的員工手冊(cè);高層主管實(shí)行 “不關(guān)門制度”,任何人都可以上門交流。
后記
我估計(jì)你們會(huì)問:為什么推薦的書單有這么多老書?
20 世紀(jì)末,有人問軟件工程專家戴維?帕納斯(David Parnas):將來會(huì)有什么令人興奮的軟件工程技術(shù)出現(xiàn)?他回答:最有用的技術(shù)不在將來,而是已經(jīng)出現(xiàn)好些年了,只不過我們沒好好用。我們同樣也可以說,優(yōu)秀的書已經(jīng)出現(xiàn)好些年了,只不過我們沒好好讀。
還有人問:在繁忙的工作之余,你怎么有時(shí)間寫完三本書?
我曾經(jīng)在《Weinberg On Writing: The Fieldstone Method》書中學(xué)到了一個(gè)方法:當(dāng)寫作遇到阻礙時(shí),我會(huì)上網(wǎng)逛逛,通常會(huì)發(fā)現(xiàn)一些和軟件工程有關(guān)的案例或趣聞?shì)W事,就把它們都收集起來以備不時(shí)之需?!毒幊讨馈?、《構(gòu)建之法》中的一些內(nèi)容,就是來自于網(wǎng)上看到的討論,以及和同事閑聊中得到的靈感。
IT 行業(yè)不光有 996, 還有很多有趣的人、有趣的書, 大家平時(shí)喜歡哪些書?歡迎留言分享。
-
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7300瀏覽量
87547 -
IT
+關(guān)注
關(guān)注
2文章
840瀏覽量
63415 -
硅谷
+關(guān)注
關(guān)注
1文章
121瀏覽量
16522
原文標(biāo)題:《編程之美》作者鄒欣:三個(gè)公式,23本有趣的書
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論