1. 程式人生 > >計算機程式設計學習之路好書推薦【轉】

計算機程式設計學習之路好書推薦【轉】

作為一個非科班出身的程式設計師,有時會遇到一些本來很簡單但自己怎麼也理解不了的東西,這就是基礎的匱乏,所以,為了彌補基礎,搜尋了一些學習方向,作為自己參考的讀物。本文轉載自:http://www.cnblogs.com/Wen-Man/archive/2011/08/08/2373763.html,另外隨時補充一些自己在學習過程中看到或其他人推薦的好書,以供學習參考。

【推薦的原則】

  1. 推薦的來源:
  • 大師的作品。
  • 我看過並且認為不錯的。
  • 我看過的書裡面經常引用的。
  • 我沒看過但是很多人都推薦的。
  1. 選書的原則:
  • 有國外的,不看國產的
  • 有原版的,不看翻譯的
  • 看大師的作品
  1. 看書的原則:
  • 不要看 C、C++、JAVA等語言類書籍

不過不要理解錯了,不管學什麼語言,永遠不要忘了語言是做什麼用的。語言只是一種工具,它的作用就是完成你的工作。不管把 C 的語法學得如何透徹,也不管把 C 的 trick 用的如何精妙,這並不能表示你會程式設計。要學會如何分析問題,如何設計程式,如何用一種具體的語言來實現。如果你只會做最後一步,你只是一個編碼者(coder),還不是一個程式設計師(programmer)。做一個 programmer,不要做 coder。總之,不要為了學語言而去學語言(除非你是個語言學家)。

  • 不要放棄對基礎知識的學習

所謂基礎知識,一般都有一個特點,那就是:它們可能看起來沒用,但如果你忽視它們的話,總有一天你會後悔莫及。所以,如果不想以後再後悔的話,就在今天多花點時間。

  • 明確學習目的

不管學什麼東西,學之前先弄明白自己要學的是什麼東西,它有什麼用,在你已經學和以後的發展方向中,它處於什麼位值。如果這些都不明白,就好比在茫茫的叢林裡面四處亂撞,就算能出去,也一定會走很多彎路。

  • 兼收幷蓄

對於軟體工程之類的東西,不象 C 語言有著嚴格的標準,最好的辦法就是兼收幷蓄,能看的都看,然後(最重要的)在此之上形成自己的思想(不然就什麼都白看了)。

  • 盡信書不如無書。

書裡寫的只不過是寫書的人認為正確的觀點而已。學習前人的知識和經驗,在此基礎上形成自己的知識結構、觀點和思維方式,才是學習的真正目的。

【計算機基礎】

計算機系統[Randal E. Bryant / David R. O'Hallaron]

Computer Systems : A programmer' s Perspective

本書主要介紹了計算機系統的基本概念,包括最底層的記憶體中的資料表示、流水線指令的構成、虛擬儲存器、編譯系統、動態載入庫,以及使用者應用等。書中提供了大量實際操作,可以幫助讀者更好地理解程式執行的方式,改程序序的執行效率。此書以程式設計師的視角全面講解了計算機系統,深入淺出地介紹了處理器、編譯器、作業系統和網路環境,是這一領域的權威之作。本書適合作為計算機及相關專業的本科生教材,同時也適用於程式設計人員參考閱讀。

模式分類 (第2版)[Richard O. Duda / Peter E. Hart / David G. Stork]

Pattern Classification (Second Edition)

本書的第1版是模式識別領域的奠基性著作。而今,Stork博士又從近年這一領域的最新成果中精選出重要的內容,對模式識別領域的發展進行了新的總結,並指明瞭對未來30年至關重要的問題。本書簡明易讀,新增的圖表使得許多統計和數學題材非常生動,最終以完美和諧的形式,引導讀者深入各種新的主題。

【計算機網路】

計算機網路 (第4版)[Andrew S. Tanenbaum]

Computer Networks (Fourth Edition)

Tanenbaum 的,好書呀...

TCP/IP 詳解卷1:協議[W. Richard Stevens]

TCP/IP詳解卷2:實現

TCP/IP詳解卷3:TCP事務協議、HTTP、NNTP和UNIX域協議

TCP/IP Illustrated, Volume 1 : The Protocols

TCP/IP Illustrated, Volume 2 : The Implementation

TCP/IP Illstrated, Volume 3 : TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols

講解 TCP/IP 協議的書有兩套經典的,這一套是 Stevens 的。既然是 Stevens 的,那還有什麼好猶豫的,想學就買。要注意的是,第二卷是講 4.4BSD 的 TCP/IP 實現的,看清楚了是實現哦,很變態的。

TCP/IP 網路互連技術卷1:原理、協議和體系結構 (第3版)[Douglas E. Comer]

TCP/IP 網路互連技術卷2:設計與實現 (第2版)

TCP/IP 網路互連技術卷3:客戶伺服器程式設計和應用BSD套接字版 (第2版)

TCP/IP 網路互連技術卷3:客戶伺服器程式設計和應用Windows套接字版

Internetworking with TCP/IP Vol I : Principles, Protocols, and Architecture (Third Edition)

Internetworking with TCP/IP Vol II : Design, Implementation, and Internals (Second Edition)

Internetworking with TCP/IP Vol III : Client-Server Programming and Applications, BSD Socket Version (Second Edition)

Internetworking with TCP/IP Vol III : Client-Server Programming and Applications, Windows Sockets Version

另外一套很經典的講 TCP/IP 協議的書,道格拉斯寫的,只要有時間就應該看。據說這套書出新版了,大家買之前多觀察觀察。

【數學(Mathematics)】

201604個人觀點:初學不看,精深後再看。因為數學在新人找工作時實際作用不大,對於基礎的Coding看似也沒什麼用,不過如果你想有一天晉升為大牛,它將為你提供基礎,主要學習的方向有:

離散數學

線性代數

概率論

圖論

高等數學

離散數學及其應用 (第五版)

Discrete Mathematics and Its Applications (Fifth Edition)[Kenneth H.Rosen]

這本書就憑它是全世界 500 多所大學指定教材的事實就足以說明一切。

具體數學:電腦科學基礎 (第2版)[Ronald L. Graham / Donald E. Knuth / Oren Patashnik]

Concrete Mathematics : A Foundation for Computer Science (Second Edition)

如果你打算學“計算機”而不是“電腦”的話,別忘了看這本書,講述了演算法的數學基礎。

【資料結構&演算法(Data Structures & Algorithms)】

201604個人觀點:初學不看,精深後再看,理由同數學一樣。

資料結構與程式設計 C 語言描述 (第二版)[Robert Kruse / C.L. Tondo / Bruce Leung]

Data Structures & Program Design In C (Second Edition)

大凡國外的資料結構教科書,都有一個共同的特點,就是他們的第一章都不是講的資料結構,而是軟體工程的基本原則。我個人認為這是十分必要的,特別是對於大多數沒有接觸過程式設計的同學來說,在資料結構這個可以說是第一次接觸程式設計的課程中能學習到基本的軟體工程原則,對於以後的學習是十分有好處的。至少,在我看來,寫一個亂七八糟的程式出來還不如什麼都不寫。在我看來,這本書有兩個優點:一、將軟體工程的基本原則貫穿全書;二、簡單,容易理解。

資料結構C++語言描述描述—應用標準模版庫 (第二版)[William Ford, William Topp]

Data Structures with C++ Using STL (Second Edition)

這本書的重點是:一、用面向物件的觀點解決資料結構問題;二、用 STL 解決資料結構問題。有興趣的同學可以看看這本書的第一版,看一看不用 STL 的 C++ 資料結構是什麼樣子的。

演算法導論 (第二版)[Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein]

Introduction to Algorithms (Second Edition)

經典,沒什麼好說的。我看過的幾本離散數學、資料結構、作業系統的書都引用到了這本書的內容。

計算機程式設計藝術[Donald E. Knuth]

第1卷基本演算法 (第3版)

第2卷半數值演算法 (第3版)

第3卷排序和查詢 (第2版)

The Art of Computer Programming, Volume 1 : Fundamental Algorithms (Third Edition)

The Art of Computer Programming, Volume 2 : Seminumerical Algorithms (Third Edition)

The Art of Computer Programming, Volume 3 : Sorting and Searching (Second Edition)

在計算機技術領域,Knuth = The Art of Computer Programming = 一切資料結構和演算法問題的答案。這一點就足夠了。

【資料庫(DataBase)】

資料庫系統導論 (第7版)[C. J.Date]

An Introduction to Database Systems (Seventh Edition)

我看過的離散數學等好幾本書上都引用了這本書的內容,其影響可見一斑。非常好的書,適合入門。不知道為什麼 china-pub 上面沒有影印的,我在學府都買到了。

資料庫系統概念 (第四版)[Abraham Silberschat / Henry F.Korth / S.Sudarshan]

Database System Concepts (Fourth Edition)

除了 Operating System Concepts,Silberschat 另外一本非常出名的書就是這個了。沒看過,大家看著辦吧。

【作業系統(Operating System)】

作業系統概念 (第六版)[Abraham Silberschatz / Peter Baer Galvin / Greg Gagne]

Operating System Concepts (Sixth Edition)

另外一本龍書,講作業系統的非常經典的一本書,優點是闡述概念非常清晰,容易理解。缺點就是純粹的概念,沒有講實現。在現實中具體的實現往往並不象人們想象的那樣。但不要以為我在說這本書的壞話。一般說來,一本好書在它寫之前,作者肯定首先確定了這本書要面對的讀者群。對你來說沒用或者不好的書並不代表對其他人來說也沒用(如果你不打算學核物理,這不表示講核物理的書沒用;也不要考上了大學,就鄙視你的小學課本)。如果你以後不打算去寫一個作業系統的話,這本書再適合不過。

什麼什麼?為什麼叫龍書呀?去買一本原版的看看封面就知道了...

作業系統:設計及實現 (第二版)[Andrew S. Tanenbaum / Albert S. Woodhull]

Operating Systems : Design and Implementation (Second Edition)

如果你希望看到一個作業系統是如何具體實現的,而你又沒有能力馬上讀懂linux之類的核心原始碼的話,這本書非常適合你。它除了闡述概念,還結合一個“微型的 UNIX” - MINIX,講述瞭如何實現一個真正的作業系統。這個作業系統不大,原始碼總共只有數萬行、2兆多,但卻是“麻雀雖小,五臟俱全”,作業系統該有的東西它差不多都有了,而且還遵循 POSIX 規範(當然,它並不能支援所有的 POSIX 規範,只是一部分)。如今風頭正勁的 linux,就是以 MINIX 為藍本和平臺開發的。用一個小型的作業系統作為入門平臺的好處是你不必牽涉進真正的作業系統的複雜的實現中。除了概念,一個真正的作業系統還要考慮到很多其他的東西。在學習的入門階段,這些東西不會有什麼幫助,只會讓人抓狂。

本書的作者 Andrew S. Tanenbaum 博士一生寫了好幾本書,涉及作業系統、分散式作業系統、計算機網路等很多領域,每一本都在計算機教育領域產生了深遠的影響。買書是要看作者的,有幾個人寫的書,不用看內容,掏錢買就行了。

UNIX系統內幕[Uresh Vahalia]

UNIX Internals : The New Frontiers

講 UNIX 系統核心的非常經典的一本書。介紹了各個版本的 UNIX 核心以及它們所用的演算法。如果你很希望瞭解 UNIX 核心,這本書就是你想要的。

4.4BSD作業系統設計與實現[Marshall Kirk McKusick / Keith Bostic / Michael J. Karels / John S.Quarterman]

The Design and Implementation of the 4.4BSD Operating System

UNIX 作業系統兩大分支,BSD 和 System V,這一本是講 BSD 核心實現的書。如果你對 BSD UNIX 核心感興趣,這本是不可不看的。

UNIX作業系統設計[Maurice J.Bach]

The Design of The UNIX Operating System

同上,只不過這本是講 System V 的。因為 AT&T 的版權問題,作者不能透露原始碼,但是書中闡述了大量 System V 的實現演算法。

萊昂氏UNIX原始碼分析[John Lions]

Lions' Commentary on UNIX 6th Edition with Source Code

知道什麼叫曠世奇書嗎?這本就是。在當初因為 UNIX 的版權問題而無法發表的情況下,這本書居然流傳 20 多年魅力不減,可謂前無古人。不過...再怎麼說,UNIX 第六版似乎老了點...

分散式系統:原理與範例[Andrew S.Tanenbaum / Maarten van Steen]

Distributed Systems : Principles and Paradigms

分散式系統我沒太大興趣,但是這本書很經典的。

【編譯原理(Compiler)】

編譯原理技術與工具[Alfred V. Aho / Ravi Sethi / Jeffrey D. Ullman]

Compilers: Principles, Techniques, and Tools

電腦科學界有幾本著名的“龍書”,這是其中一本。作者將讀者比喻為一個手握寶劍和盾牌,跟一隻恐龍戰鬥的騎士。除了有趣之外,這本書的質量也是無可挑剔。只是人郵影印的...總是那麼貴,真該跟高教好好學學。再怎麼說我也是學生嘛...

高階編譯器設計與實現[Steven S. Muchnick]

Advanced Compiler Design and Implementation

與“龍書”齊名的另外一本講編譯原理的書。

【C 語言】

C程式設計語言[Brian W. Kernighan / Dennis Ritchie]

The C Programming Language

最經典的 C 語言書。其作者 Dennis Ritchie 就是 C 語言之父,UNIX 兩個原作者之一。讓我都不知道該怎麼評價這本書了...總之,如果之前有一點程式設計基礎的話,這本書很快就可以幫你在 C 語言的世界裡登堂入室。但是,對於對程式設計一無所知的數學者來說,這本書還是困難了點。

如果你什麼時候碰到了 K&R 的話(基本上,如果你搞計算機,想不碰到很難),那就是指這本書的兩個作者。K&R 風格就是這本書裡用的編碼風格。

還要說的是,給出的連結是進口的,我這個四星會員也要209大洋。清華出的影印本絕版了...

C語言的科學和藝術

The Art and Science of C : A Library-Based Introduction to Computer Science

C程式設計的抽象思維[Eric S.Roberts]

Programming Abstractions in C : A Second Course in Computer Science

兩本非常優秀的C入門書。說實話,要推薦一本 C 的入門書還真不容易,原因大概就是講 C 語言的書實在太多了。幸運的是,在我們國家,能買到的影印版 C 語言教科書就那麼寥寥幾本,我們還有的選(真不知道是幸運還是不幸,幸好這兩本書也是非常優秀,以至於可以忽略其它的存在了)。非常適合初學者。需要注意的是,《The Art and Science of C》為了更好的闡述概念,在書中用了作者自己開發的 C 庫函式。在實際的 C 語言開發中,為了最大的標準性和可移植性,必須用 C 標準庫。所以看完這本書之後很有必要看一看 K&R 的那本 C。《Programming Abstractions in C》實際上是講資料結構和演算法的,不過這兩本書還是應該放在一起看。

C陷阱與缺陷[Andrew Koenig]

C Traps and Pitfalls

很多人推薦的書,雖說我沒看過...

【C++ 語言】

C++ Primer (第三版)[Stanley B. Lippman / Josee Lajoie]

C++ Primer (Third Edition)

最好的 C++ 教科書。別看它的書名叫 Primer,實際上它的內容早就超出了一本入門書應有的範圍。C++初學者最好的選擇。潘愛民翻譯的,質量還算有保證。

C++ 程式設計語言 (特別版)[Bjarne Stroustrup]

The C++ Programming Language (Special Edition)

C++ 之父 Bjarne Stroustrup 寫的,非常經典的一本書,除了對於初學者來說困難了點。我的經驗是,當我有了任何對 C++ 不理解的問題時,總可以在這本書上找到答案。如果你學 C++,這本書必須備著。(這本書好像是計算機系的專業英語閱讀教材,看很多人拿著出去賣二手,真不識貨...)

深度探索 C++ 物件模型[Stanley B. Lippman]

Inside the C++ Object Model

據說是一本“讓很多 C++ 老手崩掉大牙”的書。雖說我沒看過,不過既然侯捷都這麼說了...

Effective C++ (第二版)[Scott Meyers]

Effective C++ (Second Edition)

More Effective C++[Scott Meyers]

又是 C++ 程式設計師不得不看的書,能極大的提高 C++ 編碼效率。只有翻譯的,不過這回是侯捷。

C++程式設計思想 (第二版)[Bruce Eckel]

Thinking in C++ (Second Edition)

C++程式設計思想第2卷:實用程式設計技術[Bruce Eckel / Chuck Alison]

Thinking in C++, Volume 2 : Practical Programming

Eckel 的好幾本 Thinking in 系列都是不可多得的好書,也是必須看的(唉,當個 C++ 程式設計師真苦呀)。

C++沉思錄[Andrew Koenig / Barbara Moo]

Ruminations on C++ : A Decade of Programming Insight and Experience

【面向物件(Object-Oriented)】

面向物件分析與設計 (第二版)[Grady Booch]

Object-Oriented Analysis and Design with Applications

本書是UML的創始人Grady Booch的代表作之一,也是此領域公認的不可替代的權威著作,在推動面向物件技術走向現實應用的過程中發揮了重要的作用,曾獲得《Software Development》雜誌的Jolt圖書大獎。

反正是好書,我正在看。

面向物件軟體構造 (第二版)[Bertrand Meyer]

Object-Oriented Software Construction (Second Edition)

據說是非常經典的 OO 聖經(一_一!~~哪來那麼多聖經呀?),我唯一的感受就是 - 這本書好厚呀,比枕頭還高...基於目前 OO 領域的混亂現狀,本著兼收幷蓄的原則,有時間一定看。

設計模式:可複用面向物件軟體的基礎

Design Patterns : Elements of Reusable Object-Oriented Software

學OO?那這本書就是必修課了。據作者稱,他們在寫這本書的時候,也不是很清楚他們到底在做什麼(汗...)。據我所知,這種情況下一般只能出現兩種結果:要麼是一本糟爛到底的書,要麼就是曠世奇書。這本是後者...

【軟體工程(Software Engineering)】

軟體工程 (第6版)[Ian Sommerville]

Software Engineering (6th Edition)

軟體工程:實踐者之路 (第5版)[Roger S. Pressman]

Software Engineering : A Practitioner's Approach (Fifth Edition)

軟體工程:理論與實踐 (第二版)[Shari Lawrence Pfleeger]

Software Engineering : Theory and Practice (Second Edition)

據說軟體工程歷來有理論派(俗稱學院派)和實踐派之分。不管他們怎麼爭論的,我在 china-pub 上找到這三本比較適合做教科書的。按我的理解,面向物件和軟體工程這些東西,不象 UNIX 什麼的有著嚴格的標準,那最好的學習辦法就是兼收幷蓄,學習所有人的理論,在此之上逐步形成自己的理解,這才是真正的學習之道。

人月神話[Frederick Phillips Brooks]

The Mythical Man-Month

軟體工程領域一本傳世之作,自第一版出世以來歷經數十年而不朽。這個應該是最近重版的,增加了數篇文章,包括這些年來書中的理論在實踐中的應用以及 Brooks 的反思。不可錯過。特別要說的是,任何一個寫作業系統的人都應該看一看這本書。Brooks 寫這本書之前參與了 IBM 的 OS/350 作業系統的設計工作。總體來說,這是一個失敗的系統。作者在這本書中詳細總結了他的經驗,從他艱苦的經歷當中得出結論並告訴人們一個作業系統不應該怎麼寫。很多情況下,知道一件事不應該怎麼做就等於知道了一件事應該怎麼做。

軟體體系結構:一門初露端倪學科的展望[Mary Shaw / David Garlan]

Software Architecture : Perspectives On an Emerging Emerging Discipline

軟體體系結構也是一門比較新興的學科,這本書可以說是這一領域的開山之作,在討論軟體體系結構的文章中,這本書是被引用的最多的。

【UNIX程式設計(UNIX Programming)】

UNIX 環境高階程式設計[W. Richard Stevens]

Advanced Programming in the UNIX Environment

Stevens 一生寫了六本書(好像是),每一本都是傳世經典。讓我評價?還是讓我跳樓先吧...買吧,反正我全買了~話說回來,搞 UNIX 的有幾個不知道 Stevens(您是從火星來的吧?)?數數歷史上,有幾個人一輩子沒有寫過一篇攻擊計算機的文章,去世後卻有全世界的 hacker 撰文哀悼的?

中國所謂的各位 hacker 大爺們,省省吧!你以為利用已經發現的漏洞攻陷了幾個計算機,你就是 hacker 了?那叫 cracker,意思是破壞者!再說,hacker 這個名字是自己給自己封的嗎?所謂 hacker,是指技術圈裡所有的人對於你技術的承認。哪有自己給自己封爵位的?

這本書主要是講 UNIX 系統呼叫的。

UNIX 程式設計環境[Brianw. Kernighan]

The UNIX Programming Environment

據說比 Stevens 那本容易。我沒看,反正 Stevens 的也非常容易,前提是你要有一點作業系統知識,以及一些 UNIX 使用經驗(連 UNIX 都不會用學什麼 UNIX 程式設計?)。

UNIX 網路程式設計卷1:套接字聯網API (第三版)

UNIX 網路程式設計卷2:程序間通訊 (第2版)

UNIX Network Programming, Volume 1 : The Sockets Networking API (Third Edition)

UNIX Network Programming Volume 2 : Interprocess Communications (Second Edition)

其實這兩本書是講網路程式設計的。不過鑑於針對的是 UNIX,還是放到這裡。總之只要是 Stevens 的書,就沒有什麼好懷疑的。

UNIX 程式設計藝術[Eric Raymond]

The Art of UNIX Programming

本書是作者封筆30年後歷時5年創作而成,是一部難得的軟體工程方面的佳作作者首次將哲學、設計模式、工具、文化和傳統結合在一起,使得UNIX成為世界上最好且最具創新意義的軟體,並展示瞭如何將其拓展到Linux和當今的開源(open-source)運動中:通過取自最主要的開源專案中的示例,作者向UNIX和Linux程式設計人員展示瞭如何更巧妙地建立軟體,使其更雅緻、更靈巧、更具可重用性且具有更長的生命期。

【UNIX系統管理(UNIX Administration)】

UNIX系統管理技術手冊 (第三版)[Evi Nemeth / Garth Snyder]

UNIX System Administration Handbook (Third Edition)

Linux系統管理技術手冊[Evi Nemeth / Garth Snyder / Trent R.Hein]

Linux Administration Handbook

據說這兩本書,前一本的第一版由 UNIX 之父 Dennis Ritchie 作序,第三版和後一本由 Linux 之父 Linus Torvalds 作序。這這這...還讓我說什麼好呢???

UNIX 技術內幕 (第四版)[Robin Anderson / Andy Johnston ...]

UNIX Unleashed (Fourth Edition)

本書是由十幾位經驗豐富的系統管理員編寫的,內容涉及系統管理的方方面面,包括如何構建自己的網路入侵偵測系統、身份驗證、加密技術、安全及Web服務的建立和維護等。通過閱讀本書,能讓一名普通的UNIX使用者快速成長為一名初中級系統管理人員。也是一本很經典的書。

UNIX作業系統教程[Syed Mansoor Sarwar / Robert Koretsky / Syed Aqeel Sarwar]

UNIX:The Textbook

我看的第一本 UNIX 教程。淺顯易懂,不止告訴你如何去做,而且告訴你為什麼應該這樣,裡面都發生了什麼事情。適合初學者。

UNIX 備份與恢復[W.Curtis Preston]

Unix Backup & Recovery

如果你不懂的備份和恢復,那你還沒有資格做 UNIX 系統管理員...

【Windows 程式設計(Windows Programming)】

Microsoft Windows 2000 技術內幕 (第3版)[David A.solomon Mark E.Russinovich]

Inside Microsoft Windows 2000 (Third Edition)

雖說我已經暫時不再研究 Windows 下的程式設計了,但我對此還是比較瞭解的。下面這幾本書都是無可置疑的經典之作。

準確的說,這本書不是講程式設計的,而是講 Windows 作業系統的。但是顯然的,如果你不瞭解 Windows,那麼當你的程式寫到一定程度時,你一定會碰到不可逾越的障礙。

Windows 程式設計 (第5版)[Charles Petzold]

Programming Windows (Fifth Edition)

曾經的 Windows 程式設計聖經(又來一個聖經?)。雖說近些年來 MFC 這些東西的應用讓這本書不再像以前那麼光彩照人,但如果你打算一探 MFC 的本質的話,這本書就是你的稻草~

Microsoft Windows應用程式設計[Jeffrey Richter]

Programming Applications for Microsoft Windows

和 Petzold 那本一樣經典。只不過這本側重點不同,主要涉及 Windows 下的程序、執行緒等等比較深層次的東西。

Visual C++.NET 技術內幕 (第6版)[George Shepherd / David Kruglinski]

Programming with Microsoft Visual C++ .NET (Sixth Edition)

微軟出版的講 MFC 的書,前身是 Inside Microsoft Visual C++ (這個都該知道吧)。第四版出版以後,原作者在一次滑翔傘事故中去世,這是別人接著出的。

深入淺出MFC

Dissecting MFC

非常好的一本書,把 MFC 剖開來,看看裡面是如何工作的。雖說現代的軟體工程思想是封裝和隱藏,但大部分情況下如果你知道里面是什麼樣的話,你可以讓它工作得更好。