寫給每個新手的書——評《程式設計師的自我修養》

依舊伊利丹發表於2010-03-05

如果你是高手,LinuxHacker或者geek,請繞行。

但如果你是新手

如果你曾好奇過windows系統目錄下和軟體目錄下大堆大堆的dll檔案是什麼

如果你曾疑惑過我寫下的程式碼經歷的怎樣的歷程最後怎樣到達了記憶體,編譯器每天用,它到底做了什麼

如果你已經學習或接觸了C,彙編,計算機結構,但還是沒辦法把三者的關係理的很順很清或者對應起來

那麼深入研讀一下這本書絕對是對你的一大幫助

這本書一步步的剖析了一個程式的前世今生,從程式碼的編譯,到連結,到執行時虛擬空間物理空間的對映,到記憶體的分配,無不一一展開,還原一個程式本來的面目。

也許作為一個coder,可以一輩子不瞭解這些,僅僅用掌握的程式設計技術,各種奇妙的函式,也可以編出合格的程式來,但是就像《深入淺出MFC》作者形容不瞭解MFC的機制而使用MFC程式設計的人那樣,“編出的只是一些拼積木一樣的玩具”。

如此,我們大概可以窺見這個或被詬病的書名背後深重的含義了。

本書在發掘這些機制的過程中也體現了用實踐驗證猜測的好習慣,往往用一些很簡單的程式碼(相信C++或者彙編的初學者都能看得懂,因為我自己就是)就將一些不為人知的祕密大白於天下,對於菜鳥們動手能力的鍛鍊是個很好的潛移默化的範本。

就像此書中引用的一句無法考證其作者的話說的那樣:任何計算機的問題都可以通過增加一個層來解決。

隨著各種問題的解決,計算機的層增加的越來越多,我們這一代新成長的程式設計師離底層也越來越遙遠了,而且可能還會越來越遠。因此常聽人感嘆,計算機技術有多麼的日新月異,多有追趕不及的感傷。我身處校園也常感到周圍同學的困惑:我們學的東西是否過時了,我們未來的路在何方,我們老在追趕,何時才能站在技術革新的風口浪尖上。。。

但是這本書隱約給了我們一個回答,總有些東西是不會變的,就像一顆大樹再怎麼繁茂,它總是植根於大地。而連結裝載這些東西,就是軟體技術的根,把握住了根,我們就能順藤摸瓜,摸清各個枝杈的脈絡走向,這就是以不變應萬變之道。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15783504/viewspace-628691/,如需轉載,請註明出處,否則將追究法律責任。

相關文章