星期一, 2月 11, 2008

現代嵌入式系統專案開發實務

不只開發需要速度,讀書也需要速度,唸了萬惡醫學系以後,深深感覺到讀書速度對知識吸收總量的重要性。人的生命有限,讀書速度不夠,首先就不會想讀,就算讀了,下場也是倒在書桌前面還不曉得書本在講什麼,就算拿出無限毅力,硬是讀進去,你會發現那些讀中文書和共筆的懂得比你多很多很多(這是最悲哀的地方)。比如讀內科聖經Harrison還有病理聖經Robbins的時候,自己預習往往讀了一大堆機轉,還是不曉得書本要表達什麼,然後半小時內立刻忘光,往往都是老師粗略講一遍有了架構以後回頭來查才能真的記住。所以現在都學乖,要讀大書以前,一定是先看老師講義或Wikipedia,先大概抓住這個主題到底要講什麼,才會翻開聖經書來唸。

上面是和電腦無關的題外話,但是會想看嵌入式系統的書是一樣的原因,主要是想要透過一些相對省力的方式,來對計算機的架構有個簡單而通盤的瞭解(恐龍書和Linux 0.01核心剖析我就先免了,謝謝)。連續好幾天走路去何嘉仁書局報到就把它讀完了(謹在此感謝萬惡醫學系給我的訓練.....),個人認為這本書很特別,文筆好,內容豐富深入淺出,非常值得讀。

其他的書可能會教怎麼把Embedded Linux移植到ARM CPU的系統上,特定的開發工具要怎麼用。這本書卻是以實務和通則的角度入手,從「要不要接案」一路講到「怎麼結案」,涵蓋領域橫跨作業系統架構、專案管理、軟體工程,兼具理論架構和實際開發經驗,甚至會講一些團隊合作(如:如何讓RD和測試人員不要打架),法律和商業問題等(比如測試還沒完成客戶就急著出貨,要怎麼做未來才沒責任)。書的內容都是實務入手。比如在講記憶體管理的地方,這本書會告訴你為甚麼記憶體要管理,malloc/free怎樣挖記憶體給別的程式,Stack、Heap管不好程式會怎麼出錯(附上系統管理老鳥追bug的悲慘故事),但是這本書不會告訴你現階段最好的演算法它的時間和空間複雜度是什麼。

這本書的行文風格非常輕鬆,不同於一般教科書平鋪直述演算法或程式實做細節的作法,這本書完全是用「講故事」的方法在行文,書本第一章會有一個菜鳥來公司應徵,然後專案經理(「PM老大」)對菜鳥訓話。後面的章節就完全寫成菜鳥和「老鳥」(系統老鳥,韌體老鳥等)對話和人物互動的形式。以菜鳥的學習路程和疑問為時間軸,從不會到會的過程逐步貫串書本的各個主題。生動活潑,輕鬆好懂,舉例,比如談到QA/QC的部份,一般課本可能就直接搬paper出來,講QA/QC怎麼做,ISO怎麼規定。這本書卻是講一個故事:PM老大剛從QA/QC人員的會議回來,對菜鳥抱怨「今天腦袋被那些不懂實況的QA/QC人員強姦一整天,現在(頭腦)還在痛」然後菜鳥就會問,PM老大就會開始帶理論,QA/QC為甚麼重要,精神是什麼,一般作法是什麼,然後講這些理論為甚麼在人員少、工時趕、客戶刁的情況下不適用,他的專案中怎麼變通。

這本書是我在寒假讀完的第一本電腦書,比ITOA好讀多了,ITOA只把圖論前的東西大部分看完而已,還早得很orz

3 則留言:

hiperli 提到...

您好~我是悅知文化的編輯-Hiper,冒昧打擾您,因為您所撰寫的這一篇書評頗為懇切,我們想要收錄在此書的第二版中,作為部落客真情推薦的內容,在此詢問您的意見,不知是否有這個意願呢?感謝您~

d8888 提到...

可以啊,沒問題^^

Hiper 提到...

那真是太感謝您了,第二版的內容比起第一版更加豐富喔!!感謝您的支持與鼓勵。