学习C++的50条忠告

<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

1. C++ 当成一门新的语言学习(和 C 没啥关系!真的。);

   2. 看《 Thinking In C++ 》,不要看《 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++

          

 

  国内作者写的 C++ 书籍一本也不要买! . W) ^4 g# c7 L: `  g2 m6 Z; [

) w) x( q  e. {" h; x3 M% K
我的推荐书单如下: & ]2 e5 C$ M* v) T2 v  L

# y+ C! d! X% K8 [7 X3 ]
入门阶段: * d6 r! ?0 O2 @* /1 T* d" ?
The C++ Programming Language 》或者《 C++ Primer 》其中一本。不必两本都买。
* z7 z+ J2 t$ p; q2 [2 @4 k
Essential C++ & e0 B1 A' T. }$ _* n
The C++ Standard Library 》候捷译本《 C++ 标准程序库》
! d: W' T2 g# ^- o + p! v( S9 {, m; ^; Z
提高阶段:
1 ~* N( Y8 X: V9 @
Effective C++ 》和《 More Effective C++ % N& f# x7 I  j7 J( q
如果你将来从事核武器控制之类的软件设计,加上下面这两本书:
& f1 {4 ?2 [' P+ V+ o* K. g
Exceptional C++ 》和《 More Exceptional C++
8 }  F# c) ^; l) `* c
如果你从事 3D 游戏设计,那么程序的效率远比程序的安全更重要。上面两本书可以忽略。当然,基本的防范编程你应该了解。 * B3 c: `% Z# |# ^" a
$ q, Y& w# g' T; I- /% ]" `- F
研究阶段: ' p) E& a8 V$ w' G/ t
The Design and Evolution of C++ 》裘宗燕译本《 C++ 语言的设计和演化》
7 y+ m" }! O5 l% i( b- s& [
Inside The C++ Object Model 》候捷译本《深度探索 C++ 对象模型》
+ U# e6 U' a0 x6 K* V* s0 b
ISO/IEC 14882 》这是 C++ 语言的国际标准文件,它上面提到的所有 C++ 书籍的技术源头和归宿,也是解决各种 C++ 疑难问题的最高法律文件。 " c# L- p+ C5 P  o0 F) A- r

4 U& X/ H" s3 @$ [# B4 U/ [6 R. v
上面的书籍并没有包括完所有的 C++ 优秀书籍。考虑到你的阅读时间和精力,我忽略掉了很多比较优秀的书。但是,如果你把上面这些书籍读完了,那么 C++ 的各种主流思想和先进技术就已经被你尽收眼底了。 5 _  R$ f. v4 [! w
3 ~# {) e; a3 D; {  l$ z" u, [' R
个人建议:努力学会用 C++ 思考( Thinking in C++ ),而不是仅仅着眼于学会 C++ 的语法细节!这样你才不会在学习过程中走过多的弯路。 ! z+ j$ l/ h; C) J4 w8 m
2 {) w- F% i( V$ g) E, M
最后提醒你一句:上面的所有书籍都可以找到电子版,如果你囊中羞涩,那么这些电子版书籍可以解您燃眉之需。

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值