我个人的观点是两点间路程最短,如果要学C++就先把C++搞透,然后就是由浅入深地实践。在将来觉得需要了再相应补充数学、软件工程的东西,如果C++的概念都搞不清楚的话,谈离散数学、谈线性代数、谈图论、谈系统化的软件工程都无什么意义。
目前有个比较普遍的C++入门成长路线,我写出来大家讨论:
1、C++入门:C++ primer plus(prata著)或者钱能的C++教程或者Essential C++(lippman著),如果基础比较好的,可以选用C++ Primer(lippman著),我个人还推荐机械工业出版社的C++教程(王珊珊等著)。
2、C++入门提高:The Practice of Programming(中文译本由裘宗燕完成,叫程序设计实践),在这里学习编程需要注意的通用法则,这是为将一些编程实践的兵家大忌扼杀在摇篮里而作的准备工作。然后是C++编程思想这本巨著。这似乎是C++学习中的圣经,一定要读(可惜我还未读...)。
3、C++进一步提高:cott Meyers的Effective C++和More Effective C++,这是培养良好的C++编程习惯的书籍,我这几天看了前面一本的几页,内容真的很震撼。另外还推荐比较多的有国内林锐博士的著名作品《高质量C编程》,这一般是电子版的,但好像已经有了实体书出版。这也是讲解编程忌讳的书,并提出了一些规则来遵守。这时,可能需要加强写较大型程序的能力,数据结构是需要学习的,一般比较推荐的有清华严蔚敏的C++数据结构,但我看了一些,觉得讲得有些晦涩,可能是我数学基础比较差的缘故。
4、C++再进一步提高:....................后面我就不懂鸟,达人们来补充。