1. 程式人生 > >計算機基礎六大課:教材推薦

計算機基礎六大課:教材推薦

如果是計算機科班出身的程式設計師,以下的六門課將是大學四年中會學的最最重要的六門課,可以說這六門課構成整個電腦科學的基礎。

 

為了深刻理解這幾門基礎,我踩過無數的坑,終於總結出了一篇精選的書單。這麼說吧,這篇書單的含金量高到我都想傳給我兒子。如果能把以下列出的這幾門課對應的這幾本教材都讀懂、吃透、融會貫通,那麼至少,在未來的學習和工作生涯中,你將會感覺幸福的多。

 


 

1. 計算機組成原理(Computer Organization Concepts):

  • 《Computer Organization and Design: The Hardware/Software Interface》
  • 《Computer Architecture: A Quantitative Approach》
  • 《Computer Systems: A programmer's Perspective》

三本書的難度依次遞增,建議從上往下看。這三本啃透,計算機的上上下下里裡外外就都門兒清了。

推薦和王爽的《組合語言》一起看,有奇效。

 


 

2. 資料結構與演算法(Data Structure and Algorithm):

  • 《Data Structure and Algorithm in C》-- 標籤:資料結構,C
  • 《Algorithm》-- 標籤:傳說中的大紅書,java
  • 《Introduction to Algorithms》-- 標籤:傳說中的演算法導論

推薦閱讀順序,從上往下,《Data Structure and Algorithm in C》和《Computer Organization and Design: The Hardware/Software Interface》一起看能事半功倍。

 


 

3. 作業系統(Operation System):

  • 《Modern Operating System》-- 標籤:作者大神(Andrew S. Tanenbaum & Herbert Bos),一本足矣

如果時間充足,大膽地寫一個mini作業系統吧,只有這樣才能把它的所有吃透。

 


 

4. 編譯原理 (Compiler Concepts):

  • 《Enhineering a Compiler》-- 標籤:傳說中的寫編譯器

親自碼!親自碼!親自碼!重要的話說三遍。

如果時間充足,大膽地寫一個mini編譯器吧,只有這樣才能把它的所有吃透。


 

5.計算機網路(Computer Network):

  • 《Computer Network》-- 標籤:又見Andrwes S. Tanenbaum

 


 

 

6.資料庫相關(Database):

  • 《Database System Concepts》-- 標籤:經典,基石

如果時間充足···好吧我知道你沒那麼多時間,不過寫一個mini的資料庫系統(好吧,從檔案管理系統開始)確實也是一件特別有意思的事情。

 


 

除了王爽的《組合語言》(同樣是神作,強烈推薦),其他所有的教材都推薦英文原版閱讀。語言關是避無可避的一道門檻,它關係著技術和事業的發展瓶頸。不要偷懶,浴火重生吧。

 

如果按照上面的規劃踏實地完成下來,在所有的書讀完後,你還會有三個重量級的專案經歷在手中,寫過編譯器,寫過資料庫,寫過作業系統。哇塞,感覺簡直吊炸天了有木有!

 

雖然這三個底層的專案都是mini的,肯定不會有啥商業價值,但那將昇華你的技術水平。自此以後,你看到的將完全是另一個世界,那是萌新的你當時原來可望而不可即的世界,那是大神們的世界。嗯,一起向著那個夢想中的世界努力吧。

 

以後再推薦和計算機所需的數學基礎教材。也會更新一些我的讀書筆記和隨筆。慢慢來,不著急。