主题:[原创]为学编程(特别是学C++)的朋友所列的一张书单
深入理解计算机系统 (美) Randal E. Bryant, David O'Hallaron著
哥德尔、艾舍尔、巴赫—— 集异璧之大成 (美)侯世达著
//-----------------------------------------------
下面是整理过的一张书单,很多我都借过看过,不过没有一本是看完的。往往是这学期还了,下学期又借。都是很好的书。学编程,特别是C++的都可以去看看。我只讲我看过的,很多其他的经典书籍不在这张书单里面。
//----------------------------------------------------------
离散数学 (美) Richard Johnsonbaugh著
组合数学 (美) Richard A. Brualdi著
计算机本质上是离散的,学学这两门数学很有好处。这两本书不象其他数学书那样沉闷。
//----------------------------------------------------------
C++面向对象程序设计 (美) Walter Savitch著
C++编程——从问题分析到程序设计 (美) D. S. Malik著
两本入门书籍。不过不是很容易的,不是单纯讲语法的。想当初,我一星期看到类(那时候懂了指针的概念,不过想不明白指针有什么用的)那里,再用一个月初步了解为什么要有类。看完,有了点面向对象的印象。C语言和C++完全不同,学C++不一定要学C语言,要是先学C语言,思维反而容易被束缚。
//----------------------------------------------------------
数据结构C++语言描述(应用标准模板库—STL) (美) William Ford, William Topp著
算法设计与分析基础 (美)[莱维丁] Anany Levitin著
数据结构和算法永远都是最重要的。你不懂数据结构和算法,就不要对别人说你会编程。说来惭愧,到现在我还不太明白递归,还看不懂图那节。所以到现在,我自己还不会编程。特别是那本 数据结构C++语言描述(应用标准模板库—STL),是我在图书馆找到的最好的一本数据结构方面的书,难得的是每个容器,都写有一个完整的例子,网上可以下到代码,风格也很好。我自己写C++的风格就是跟着这本书学的。看过,你会更了解C++的用法。
//-----------------------------------------------------------
泛型编程与STL Matthew H. Austern著
C++Templates中文版 David Vandevoorde, Nicolai M. Josuttis著
SGI STL源码剖析 侯捷
这三本都是关于模板和STL的,要参考着来看,这本书中的问题往往在另一本书中找到答案。其中泛型编程与STL的第二和第三章,不可不看。而STL真的是很伟大,模板真的很神奇。现在GP思想和OO思想有着同等最要的地位,也多亏了STL。C++的学习有三个难点,指针,类,模板。
//--------------------------------------------------------
Effective C++ Scott Meyers著
More Effective C++ Scott Meyers著
这两本书不用说了,More Effective C++是比较难的,高阶的读本。
上面几本C++的书你稍微看看,就不会问C++会不会被Java取代之类的笨问题了。
//-----------------------------------------------
面向对象编程导论 (美)Timothy A.Budd著
该是学学面向对象了,这本书很有特色,将很多语言进行比较。
//---------------------------------------------------
图论简明教程 (美) Fred Buckley, Marty
C++算法——图算法 (美) Robert Sedgewick 著
学习数据结构的时候,其他都比较容易理解,不过到了图那里想再前进就很难了。你需要更仔细的学,关于图的算法很都是用到了递归。递归概念很容易,不过当同一函数中,用if, 用while判断之后再来调用自己,就会很难理解了。图论简明教程这本书也比较有趣。这个假期准备看这两本书。
//----------------------------------------------------------
Intel汇编语言程序设计 (美) Kip R. Irvine著
正在看的一本书。学汇编,很有必要,理解低层之后,你会发觉以前很多疑问都有了解答。这本书不同国内讲汇编的很多书,国内的很多都是为了教学的方便,从寻址方式开始,跟着讲指令系统,再讲伪指令。看了半本还不知道怎么输入个"Hello! World!"。有了这本书,你会发觉汇编也很有趣。书附有个光盘,网上也很可以找到。光盘中有几个很有用的函数,用来输入输出,观察结果。汇编最令人烦恼的是居然不可以直接输入输出。
//----------------------------------------------------
上面的书,你看一次就会多一点收获,不是一次可以完全理解的。往往你以为自己知道了,到后面才发觉自己以前是想错了。不知道自己不知道是最危险的。要是让我在上面选三本,我会选数据结构C++语言描述(应用标准模板库—STL),泛型编程与STL,Intel汇编语言程序设计。
很是遗憾的是,上面几乎全部书都是美国人写的,美国实在太狠了。而侯捷所著所翻译的书,我也很喜欢。
//----------------------------------------------------
看过上面的书,你写出程序只能在那个黑洞洞的Dos形式的窗口运行。不过最基本的,最核心的东西往往就隐藏在图形界面之后。有个图形界面没有什么了不起,不值得骄傲。所以下面两本书
深入浅出MFC 侯俊杰(侯捷)著
Windows程序设计 (美)C.佩措尔德(Charles Petzold)著
虽然是经典,也是提提而已,不做过多推荐。