原创 学习c++的方法

2008-5-25 18:07 2372 13 13 分类: 软件与OS

1.《C++Primer》 有“C++的百科全书”,C++程序员人手必备。对语法、语义的描述非常细致和严谨,适合有一定经验的C、C++程序员作为工具书和理论指导书使用,但由于其有一定深度,而没有进阶顺序的章节安排,所以不适合初学者做为教材使用,价格略高。 难度:★★☆ 质量:★★★★★ 广度:★★★★★ 深度:★★★★ 性价:★★★☆


2. 《C++Primer Plus》 初学C++不错的书,覆盖面较全,章节安排比较合理,由浅入深,也很容易,故因此失去了一些深度。价格比较便宜,但翻译质量略有不足。 难度:☆ 质量:★★★☆ 广度:★★★★ 深度:★★★ 性价:★★★☆


3. 《Essential C++》 lippman的一部面向初学者的作品。在他写了那么后一本primer之后,为何还要写这么薄这么浅的书呢?其实primer对于初学者来说太笨重了,而这本书却是从不同的方面——C++的本质和组织结构对语言进行阐释,可以帮助初学者对这门语言有一个大致的了解,但知识范围不很全面,不适合系统学习,读者需要一定的编程知识。 难度:★☆ 质量:★★★★ 广度:★★★☆ 深度:★★★ 性价:★★☆


4. 《Effective C++》、《More Effective C++》 C++真牛人大手笔,之以条款的形式回答了程序员在使用C++时经常提出的“因该注意些什么?”,“因该避免什么?”,“因该怎样去解决?”,“为什么?”等问题。C++程序员想要让自己的水平上更高的档次,此二书必看。价格稍贵,有一定难度,不适合初学者。 难度:★★★☆ 质量:★★★★★ 广度:★★★ 深度:★★★★★ 性价:★★


5. 《C++编程思想》 除了讲述语言之外,有一定的工程性,从设计者的角度来描述C++怎样应用在实际的项目中。语言描述的全面性欠佳,但还是有一定精度的,尤其是在一些小技巧方面。本书还引入了大量的战例,通过一个个的真实项目来引导你使用C++的思想去思考问题。翻译很差,有一定难度。 难度:★★☆ 质量:★★★ 广度:★★★☆ 深度:★★★★ 性价:★★★


6. 《C++语言的设计和演化》 对于热爱C++的朋友来说,确实好书一本,可以当做小说来读,可以放在厕所或床头上以供消遣。本书对语言本身描述很少,并有一定难度。读者需要对C++有一定了解,不适合初学者阅读。 难度:★★★ 质量:★★★ 广度:★★☆ 深度:★★★★ 性价:★★★


7. 《C++程序设计语言》《The C++ Programming Language》C++之父所作,被称之为“C++圣经”。不仅对语言,而且对语言周边的一些如发展史、语义哲学都有比较详细的描述。对语言的描述较为全面,同时包含一部分和程序库相关联的知识,并有一定深度,适合有一定语言基础的初学者,翻译质量不错,价格适中。 难度:★☆ 质量:★★★★☆ 广度:★★★★☆ 深度:★★★★ 性价:★★★☆


8. 《深度探索C++对象模型》《Inside The C++ Object Model》第一代C++编译器开发主管所写。如果你想成为真正的C++高手,看这本书,他为你讲述了编译器在处理各种语法时在“后台”所做的事。对C++有较深入了解的读者会在读后有恍然大悟之感。候杰翻译,质量相当不错,但内容太深,只适合对C++有较深了解的读者,价格偏贵。 难度:★★★★☆ 质量:★★★★★ 广度:★★★ 深度:★★★★★ 性价:★★


9. 《C++程序设计教程》(钱能-清华版) 国人所著,国人水平实在有限,深度和广度欠佳,放在这十大里实在是因为再挑不出好书了。可圈可点之处有讲解较为清析、简单,符合中国学生思路,价格便宜。 难度:☆ 质量:★★★ 广度:★★★☆ 深度:★★★ 性价:★★★★★


另外请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;请重视C++中的异常处理技术,并将其切实的运用到自己的程序中.(finished)


 


 


本人也不是什么国家一流大学出身,只是心血来潮,在学习之余想写点东西。
以下是我自己学C++的一点感受,其中可能带着一点偏见,请大家指出啊!
对于C的看法,只是我个人的看法,认为中国没有一本好一点的C的书。虽然潭的书卖了1000万册,但是在我学完C++书后,已经发现了11处有错误的地方。我这样的菜鸟都能找到错误,书也许真的不怎么样!
当然C这一门语言还是很不错的!我也学了两个月。
不过我认为C在中国没有一本好的教材。
对于C++我认为(也是个人的观点),没有必要先学C再学C++,在学习之前还是先看看一两个好一点的例子。在以前学的数学知识中(我自己自学了数学分析,也许学的深了一点),递归一块要好好看看。
而后找本写得全一点的书,好好读三遍。书很多,C++写的好的还是很多的。因为这是一门比较成熟的语言。对一字一句进行推敲,不要心急,慢慢学。认为自己的水平还可以后,看机械工业出版社出版的那本C++程序语言(特别版)裘宗燕翻译的,
看不懂的不要紧,慢慢来,因为那是C++最好的书,也是最权威的。
而后就是要多上机,多在机器上实现!
以下是程序员之家的一段(灌水):
1.把C++当成一门新的语言学习(和C没啥关系!真的。);
2.看《Thinking In C++》
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己又是初学者所以就不看;
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
6.会用Visual C++,并不说明你会C++;
7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
9.看Visual C++的书,是学不了C++语言的;
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?
11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
17.C++不仅仅是支持面向对象的程序设计语言;
18.学习编程最好的方法之一就是阅读源代码;
19.在任何时刻都不要认为自己手中的书已经足够了;
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
26.请看《程序设计实践》,并严格的按照其要求去做;
27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;
29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;
30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;
31.学习编程的秘诀是:编程,编程,再编程;
32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
33.记住:面向对象技术不只是C++专有的;
34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
35.把在书中看到的有意义的例子扩充;
36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
39.C++语言和C++的集成开发环境要同时学习和掌握;
40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;
41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;
42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;
46.记录下在和别人交流时发现的自己忽视或不理解的知识点;
47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;
48.保存好你写过的所有的程序——那是你最好的积累之一;
49.请不要做浮躁的人;
50.请热爱C++!

文章评论0条评论)

登录后参与讨论
我要评论
0
13
关闭 站长推荐上一条 /2 下一条