C++ 50条建议! z& V( K6 W+ k; q6 w4 S! j
! T7 K' |- y S
btw:这50条意见是通吃的
; y; ` M4 V1 B8 v
# }* e" ^2 l( L# b+ ^ 1.把C++当成一门新的语言学习(和C没啥关系!真的。);" R5 x1 ]0 N! L0 w; B& I6 W
' U! e3 K; }: W4 o3 _" |
2.看《Thinking In C++》,不要看《C++变成死相》;
1 P: J( f5 z" H9 V$ o# ?; `( z" \5 Y0 q" a+ `/ Z1 b" C
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;
- J) ?" H1 e) R/ } k/ |" u# x- P* ~. D
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;+ [2 K7 y( G0 z0 E. s; e
8 K% u: J. l2 S7 N0 R 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
+ l- \. B- z6 V, W% f2 _9 u+ _! v% Q5 X8 _9 [7 L
6.会用Visual C++,并不说明你会C++;
' F" l8 T6 \9 T
0 g4 @2 c; q3 Y( E/ J 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;$ P: N9 O6 T6 J2 y k V1 b! z8 ^6 l
: F& [: b4 {, ]3 P" f
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;- C3 G6 E/ ?, s0 c9 N/ Y/ c
P1 H" E8 G! B: Y 9.看Visual C++的书,是学不了C++语言的;0 R- u- ]# H5 M4 S+ i% k2 y% d$ N) j
5 w' i9 Q: k9 O) q; U, s
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?# v' l0 a" E8 x$ y. S6 L
: K# {% r% Q9 b' G9 N, e% \1 Q 11.浮躁的人容易问:我到底该学什么;——别问,学就对了;& U2 t4 m& \' V; w. e: ^( K
* x! i( D+ T' s5 W$ K9 A3 c
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
$ ~; }9 k& T. u4 k W7 M) S `7 _( ?- u; \6 I
13.浮躁的人容易说:我要中文版!我英文不行*—不行?学呀!
! E. Z8 {9 a( B* `& W! z/ K+ @2 m0 Y" z# ?" z3 g
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行; y9 Y: J# t3 y- d
" C+ Z6 y7 [$ y. q- h8 ~
15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
! ^& J3 ?6 F4 `" F0 X2 X7 D ]& U0 B) j
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
" a9 q2 }) t0 o* |5 ]/ b* u0 h0 |) u, O1 d: H
17.C++不仅仅是支持面向对象的程序设计语言;; o& M- L5 t) W1 i7 R2 s
% o5 y9 c3 o$ O4 g1 X6 F& a: s 18.学习编程最好的方法之一就是阅读源代码;# h9 a4 D. x' K) S: u4 ^
! R+ M% I# e" B3 v# F8 h& e
19.在任何时刻都不要认为自己手中的书已经足够了;' C; z# t1 u l) n, }+ z1 K
/ w) j' o% ]* R: z- }3 h4 G
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;0 \" S4 V9 ?. a6 t! s, I
* d) [9 t3 J) q/ z& ~ 21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
" d! O* l$ \3 R1 ?' X `% t6 ^& X/ d7 @5 c) p" V, u9 \
22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;. E1 p+ ^7 W$ Q3 ?
7 O: u# A" m! A3 P
23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;0 e2 U: i5 ^- L; c5 }( z
) i5 R8 _0 P" R" ^# [2 }/ _/ @- G
24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
_" d/ X* F/ e4 b& Z) R9 Q4 X. k. H; _. r( J
25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
( j$ D" i- P! T6 Q! W+ T- [4 T3 s
/ [" b5 h& a! W3 C% z! ?* | 26.请看《程序设计实践》,并严格的按照其要求去做;# ~4 Q2 U+ c6 i# K# \# Z, c
$ j! c4 V8 U) s& \& z: Q/ y 27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
r; v7 j; L" N! X9 S1 V4 q9 a( V$ N$ J" Y8 F( n
28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;3 } G9 i1 |; a# u
* u4 h h- `1 |& t 29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;5 O Z0 H, U( ?1 o4 Q, c: O
) a/ d0 W$ D+ D
30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;' v& |- U* |7 Z
) d7 N8 V) }6 A# y. _7 o0 Y$ @0 @
31.学习编程的秘诀是:编程,编程,再编程;( L8 P0 ]5 [- Q2 {0 G
; ^* R* h5 g/ T
32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
' ^, p" y8 K: b2 j4 |
( P% o6 R( k. F& i( n2 o- V 33.记住:面向对象技术不只是C++专有的;$ b0 l- V' _2 X5 j9 [ E7 m0 j
- h# L! a C" f
34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;# `0 x5 b2 \: p% p% s& U2 M
: m) S/ j, j' _. B1 X) A
35.把在书中看到的有意义的例子扩充;
7 B; @9 e! f- O* a6 V4 Y, j- f0 v( v4 X5 t. L3 g
36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中; G& X1 H/ {2 _( d6 M
5 H2 H2 b& l' r1 `- J
37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;
5 _+ t2 i4 f9 G$ W1 [* W! t; |1 L
+ _. V# N, s+ c/ z: P6 I! H- G+ h1 y 38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;9 v. T% g. q. D& M' I/ ]; o, ]' {
: C7 j+ p: L( ~8 E; m _ 39.C++语言和C++的集成开发环境要同时学习和掌握;$ C3 g: d" S* {' N$ m, R' T2 j. ?
8 G% Z% I0 B/ a, V
40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;/ g- F$ C0 b2 {7 A+ y' M
% ~3 U4 \$ y9 X. ?& [. C 41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;7 X D) V/ r; D- }4 r# Z
7 S* q0 X! l4 }$ }0 F 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);) N3 b7 V. P6 B# }# a: y& d
: @ S/ ]6 e m( h
43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
& p( M3 p, u2 r8 x( y% _3 _4 f7 n
8 N; z z0 k+ \ R 44.决不要因为程序“很斜就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;$ P, ~/ q: @# Y4 _' r
6 H* Q5 }3 H- ^2 u6 Z5 e, f 45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;
6 s3 w' C4 o D: A2 d8 H/ q- i2 V/ G: j7 C
46.记录下在和别人交流时发现的自己忽视或不理解的知识点;/ x. H( w5 G9 p! r
8 A1 Z8 S1 u M- N( p
47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;. W3 n# u1 L: T2 ?4 f
; Y( D. F$ a. W
48.保存好你写过的所有的程序——那是你最好的积累之一;4 m1 I& Z, @0 S
: i9 n/ _9 \8 R+ s* {
49.请不要做浮躁的人;
/ q! o5 ]- M r7 g: a
! t2 W# t/ l- ]* T+ P 50.请热爱C++!
8 Q) d1 w' u0 T4 j7 }: M' q湖盟云防火墙' u0 K) s: t* Q" C8 n
p9 f0 G8 Z( c5 j/ z |