計算機體系結構和彙編語言-關於體系結構的書遍地都是,而且也大同小異,倒是彙編有一本非常好的書。《80x86彙編語言程序設計教程》(清華大學出版社,黑色封面,楊季文著)。你需要着重學習386後保護模式的程序設計。否則你在學習現代操作系統底層的一些東西的時候會覺得是在看天書。
計算機操作系統原理-我們的開發總是在特定的操作系統上進行,如果不是,只有一種可能:你在自己實現一個操作系統。無論如何,操作系統原理是必讀的。這就象我們爲一個芯片製作外圍設備時,芯片基本的工作時序是必需瞭解的。這一類書也很多,我沒有發現哪一本書非常出衆。只是覺得在看完了這些書後如果有空就應該看看《Inside Windows 2000》(微軟出版社,我看的是E文版的,中文的書名想必是Windows 2000 技術內幕之類吧)。
數據結構和算法-這門課程能夠決定一個人程序設計水平的高低,是一門核心課程。我首選的是清華版的(朱戰立,劉天時)。很多人喜歡買C++版的,但我覺得沒有必要。C++的語法讓算法實現過程變得複雜多了,而且許多老師喜歡用模塊這一東西讓算法變得更復雜。倒是在學完了C版的書以後再來瀏覽一下C++的版的書是最好的。
軟件工程-這門課程是越到後來就越發現它的重要,雖然剛開始看時就象看馬哲一樣不知所云。我的建議是看《實用軟件工程》(黃色,清華)。不要花太多的時間去記條條框框,看不懂就跳過去。在每次自己完成了一個軟件設計任務(不管是練習還是工作)以後再來回顧回顧,每次都會有收穫。
Windows 程序設計-《北京大學出版社,Petzold著》我建議任何企圖設計Windows 程序的人在學習VC以前仔細的學完它。而且前面的那本《Inside Windows 2000》也最好放到這本書的後面讀。在這本書中,沒有C++,沒有GUI,沒有控件。有的就是如何用原始的C語言來完成Windows 程序設計。在學完了它以後,你纔會發現VC其實是很容易學的。千萬不要在沒有看完這本書以前提前學習VC,你最好碰都不要碰。我知道的許多名校甚至都已經用它作爲教材進行授課。可見其重要。
上面的幾門課程我認爲是必學的重要課程(如果你想做Windows 程序員)。