Home > 閱讀 > 《程序員修煉之道》、《代碼之美》、《Real-time Rendering 3rd Edition》、《Physical-based Rendering》

《程序員修煉之道》、《代碼之美》、《Real-time Rendering 3rd Edition》、《Physical-based Rendering》

  • 2009-03-04 (三) 0:51
  • 閱讀

新年過後,Mil的開發進度有點慢,花了斷斷續續一個月才完成了一個簡單的 translate gizmo。要長期維持熱情真的不容易。由於沒甚麼Mil的進展可以看,今天也未想到做那個 story,就在此和大家分享這幾個月看過的書。

程序員修煉之道 (英文注釋版)
The Pragmatic Programmer: From Journeyman to Master

我對這書本來沒有很大的期望,而且它的書齡比較大,只是當作休閒讀物,但閱後喜出望外。除了有不少有用精闢的題示,還真的有不少能激發思考的寓言。分享幾個和程序員心理有關的例子,一個提示為

Tip 4: Don’t Live with Broken Windows

說的不是M記的Windows (笑)。故事是說一些研究人員發現,一個漂亮整潔城區如何開始衰落──當一個窗子破了沒修,就會令人覺得業主不關心那大廈,其他人就開始亂拋垃圾、塗鴉,不斷惡性循環,最終變成腐敗地區。

在我的過去,也有不少類似的項目。有時候不是時間的問題,而是心理上的問題。面對寫得不好的東西,沒心要把它弄好,最終只會是一些被廢棄的代碼。又或是,看到一些小bug沒去查,最後要花更多的時間精神去修正,或又是把它放棄。

每看到程序中有問題的地方,就不要容忍。問題可以是設計上的、編程上的。時刻要想著 refactoring。 不要把系統惡化。

另一個提示

Tip 30: You Can’t Write Perfect Software

這個也許是一個顯淺的提示,對我來說郤是一個反省的機會。從來,我希望可以寫出好的程式、好的代碼,希望可以追求完美。但這是不實際的。從來沒有完美的軟件,將來也不會有。軟件內不完美,使用軟件的人或軟件也不完美。要接受這個現實,並反過來令程式在不完美下完成工作。編寫 defensive coding、unit testing。不要為了避免有bug而寫一些「不對的保護」(例如函式內參數不對就直接返回),如果是有問題的,就讓它 crash (或assert等) 並找出問題來源,比匿藏那些問題好。

Beautiful Code: Leading Programmers Explain How They Think
代碼之美

相反,這本原來比較有期望的著作,閱後(沒有全部讀完)有點失望。

有些文章是有些趣味,有些覺得非常沉悶。總體來說,看不到作者們對「美」的看法。一些簡短程式做到比較複雜的功能 (例如 quick sort、regular expression),看上去是不錯的,雖然也不知道簡單是否是美。一些大系統 (例如 ERP…… 囧) 完全不知道他們從那個角度看到它的「美」。

或許,

Beauty is in the eye of the beholder

代碼需然用文字寫成,但是否和詩詞一樣,應用、或可用「美」這個形容詞去度衡量,是一個問題。

買這本書的人或許要三思。

Real-Time Rendering 3rd Edition

毫無疑問,這是一本非常好的書。1027頁、1416個參考文獻、全彩印刷、幾乎沒有廢話和無用插圖(嗯……第三版是有一些比較大的遊戲截圖)、非常全面的內容。開賣時 amazon還打折比買第二版還平宜,是超值的珍藏。第一次擁有這本經典 (第一版在大學圖書館借過,第二版在以前工作上採購過),第一次由頭到尾去閱讀,每個章節都看到自己不懂的新事物。第三版新加入的內容也對我有吸引力。雖然看過一次,但一次絕對不夠,有時間會再讀,再加深理解。

Physically Based Rendering

我在大學沒讀過計算機圖形學、沒寫過 Offline Renderer,所以想多學一些這方面的知識。而另一方面,也憧憬未來計算機圖形的硬件發展,Real-time Ray-tracing、Radiosity 也許會變成主流。這本書提供了理論基楚,和一個 Offline Renderer 的實作 (pbrt),是少有的理論與實際並重的書。

嘗試從頭到尾看一篇,但是後面關於 Monte Carlo Integration 和 Light Transport Equation 對我來說是很難。有時間會再看。

這本書的一個缺點是異常重 (5.5磅 = 2.5 公斤),在床上看腹部會感到很大「壓力」;相對的優點是可以訓練手部肌肉。

閱讀計劃

由於看過《程序員修煉之道 (英文注釋版)》,想繼續看幾本類似的原文書,包括 Kent Beck 的注釋版:

  • Implementation Patterns
  • Test-Driven Development by Example

注釋版是挻方便的,英文生字也不用查字典。

最近還發現剛剛這兩本 Morgan Kaufman 的大陸版英文原文版:

  • 3D Game Engine Design 2nd Edition
  • The Art of Multiprocessor Programming

第一本是剛2009年出版的,現在還斷貨。這書值得參考,尤其是數學部份。

第二本的原書是上年出版的,大陸版也是上年出版。這新書一直想讀,因為自己在這方面比較弱,面對 multi-core 的年代,一定要多多學習。

英文版除了原汁原味,還可以溫習英語,而且有些大陸版的原文書的人民幣價格比原書美金價格還低。真好。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://miloyip.seezone.net/wp-trackback.php?p=94
Listed below are links to weblogs that reference
《程序員修煉之道》、《代碼之美》、《Real-time Rendering 3rd Edition》、《Physical-based Rendering》 from Milo的遊戲開發

Home > 閱讀 > 《程序員修煉之道》、《代碼之美》、《Real-time Rendering 3rd Edition》、《Physical-based Rendering》

Search
Feeds
Meta

Return to page top