標籤:
原文:假如我是電腦系老師
假如我是電腦系老師, 我會先讓我的學生先去讀一下《編碼:隱匿在電腦軟硬體背後的語言》這本書, 搞明白一個個簡單的邏輯門電路到底是怎麼組成電腦的, 弄清楚電腦軟體語言和硬體之間到底是怎麼關聯起來的,然後再去上電腦群組成原理,類比電路,數字電路等專業課, 你會發現境界不同了,你會開啟“上帝視角”進行俯視, 只需要通過這些專業課程補全知識的細節就可以了。
看完了《編碼》, 我會推薦我的學生再深入一步, 看一看《深入理解電腦系統》,它把作業系統,電腦群組成原理,數字電路,編譯原理,網路,電腦體繫結構等程式員需要瞭解的核心知識彙集在一起, 讓你迅速的打下紮實的基礎。
如果還有學生想再延伸一下, 看看《圖靈的秘密》吧, 瞭解下電腦的數學原理,圖靈機的構造和應用。
假如我是C語言老師, 我會讓我的學生去扔掉譚浩強的C語言的書 , 去好好看看K&R 合著的《C程式設計語言》, K&R 指的是兩個人, 其中R 就是Dennis M.Ritchie -- C 語言發明人 , 所以應該看看下了C語言這個金蛋的“母雞”所寫的書。 這本書簡潔,平實,如果你看不懂, 我勸你還是離開電腦專業, 去找個更有前途的方向吧 :-)
假如我是資料結構老師, 我會讓我的學生首選Sedgewick 和 Wayne合著《演算法》這本書學習資料結構和演算法, 這是一本極為優秀的入門書, 有大量的圖來展示演算法, 比嚴蔚敏的《資料結構》好太多了, 我上大學的時候怎麼沒人告訴我呢? 學過了這本書以後,不僅掌握了資料結構的只是,還有一個極好的福利,那就是會對Java這門語言有個基本的瞭解,為將來學習Java這門應用廣泛, 就業能力強的語言打下基礎。
我當然會要求我的學生把書中的習題都做一遍, 這樣在以後的編程工作中,只要不是設計演算法, 基本上就不會碰到什麼問題了。
有餘力的學生可以再看一下《演算法導論》,學霸們可以研究下高納德的《電腦程式設計藝術》。
假如我是作業系統老師, 我會推薦我的學生讀一下《30天自製作業系統》, 親自動手體會一下作業系統的製作, 把書本知識都用起來。 另外Linux 0.0.1的源碼也是必讀的, 尤其是電腦加電以後,怎麼把作業系統給Boot起來的。
假如我是資料庫老師, 我會要求我的學生閱讀SQLite的源碼, 一個開源的嵌入式關聯式資料庫, 只有那麼幾萬行c 語言代碼, 吃透以後功力絕對大漲。
假如我是網路老師, 我會推薦我的學生看一下《TCP/IP詳解》,尤其是將來想做通訊和網路的同學, 幾乎是必備。 可惜中文版翻譯的比較爛, 中英文對照看吧 。
假如我是編譯原理老師,嗯,這門課挺難的, 在實際項目中直接使用不是很多,但是一定要瞭解原理, 最著名的書就是龍書《編譯原理》了。 對於那些一門心思想發明個自己語言的同學,一定要去看看《程式設計語言實現模式》, 它會教你寫真正實用的解析器、翻譯器、解譯器等語言應用。
寫了這麼多, 悲哀的發現,沒有一本是國內寫的教材.......
還有, 我也不是電腦系老師
【轉載】假如我是電腦系老師