C++ 50条建议2 |, @0 U' w' u3 `: C" w6 z
# Q5 L& }6 h) n& H btw:这50条意见是通吃的; k- u" `, k: K: u3 h; y
8 d" h! V1 Q2 q$ C 1.把C++当成一门新的语言学习(和C没啥关系!真的。);- e2 r+ G9 a: s8 W) e% Y1 m
- K) I' p/ w5 W' w; B. E. v+ P 2.看《Thinking In C++》,不要看《C++变成死相》;
8 n+ d+ X" b5 I% C4 L1 C3 j3 l, k6 V" v- k
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;/ {: J U8 N. ]9 K- P6 g" o
2 \; w$ `. ]- m) \
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;' L$ J" @0 G9 l2 u
3 O1 }& Z& B" x' j" w
5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
9 d$ s$ E0 K$ {" ? j
7 K: X" I% d$ s. E" a7 Y 6.会用Visual C++,并不说明你会C++;
; Q. V0 F% D2 g G+ j% Q" n
! ?& v6 q, ^8 ~1 B 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
& {, x7 m" N& i- \& m/ ]% T6 e' a; [+ G3 S
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
D" q4 G" X1 {: V: r- O/ s8 Z: v3 a+ s/ i2 j( \/ l1 g; a: c s
9.看Visual C++的书,是学不了C++语言的;
- P0 M0 I. \5 N8 p5 R% L8 h# I& Q0 u, v7 a
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?
1 r2 Y7 d7 P2 L/ W+ A7 y7 s
; w% c; p8 w4 n' |4 \, L* s/ l 11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
7 X! }/ T3 k8 G3 T& A
! A& p1 m0 a$ T( S, l# y+ ? 12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;; h7 j/ |3 X- [ d
8 [) v/ E$ [$ B/ S' `7 h, |! U9 s( L' [ 13.浮躁的人容易说:我要中文版!我英文不行*—不行?学呀!
/ ]$ W; N, Y$ o. z7 `9 g. {8 e
# ?9 |# c/ V7 q0 U, n 14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
; q$ @. ?2 ~8 }1 K: u; m/ P2 h E7 g2 q( D1 m: S- `0 P" a
15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
& h$ |" u) U' {# d5 D+ w) u0 W% e" y
2 o% O7 H* o1 w1 X: i 16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
6 Z* h- \8 l$ R6 x% o' g
3 f7 |3 X# ^. i: o8 I* } 17.C++不仅仅是支持面向对象的程序设计语言;( D2 @+ ]% p U- y) j, E7 B" h
5 e$ \( n/ E! W/ ? 18.学习编程最好的方法之一就是阅读源代码;# h, l' G/ u1 ~( _! K9 v7 s1 `
8 z( ]0 M3 ?7 }4 t( \$ w
19.在任何时刻都不要认为自己手中的书已经足够了;6 a" B* c7 j: E$ [! A# t2 g
% C: L. w a. }# B% n- N
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;# ]; v( B$ Y, \' O+ x0 b s; U! J. G
+ s0 c- y: t$ ~) N' ?+ f* X y 21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;" }' \4 y" ~) v$ C( e" b1 K
& `9 O% f, V& Z* j; q5 `" A 22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;# C- b6 P4 A$ `% O5 b. j8 I
/ P6 Y% n8 Q2 }4 i/ u. _3 W 23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;/ ~6 T: @- `; r, Y. B
9 M9 p( q) A7 k c 24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;; V, C3 m# w' c6 e
& M: S4 N1 Z, V& V* k$ | 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
! ?7 E- }' e8 m! M, E+ f1 `! G, x+ i) c/ y
26.请看《程序设计实践》,并严格的按照其要求去做;
9 `1 f; t- \9 }$ x# M4 m: h( F- r8 g) v+ y4 U5 b5 d5 @
27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;6 D/ p4 Z& H8 q$ A6 o
8 k$ h5 x `- Z
28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;, [! t0 y& L* F6 x. _! M2 c6 I5 R
; v; s O! a' d1 G8 x
29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;
8 L6 D. A9 d- I% N& f5 ?3 e# B; Y$ e; C+ a. B ?
30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;4 `8 g( b9 b1 d4 u" i! i/ \
4 n8 D! p6 L! k/ J {. Q* p* g% m
31.学习编程的秘诀是:编程,编程,再编程;$ ^, i0 v0 o$ G9 X
) H5 G9 L$ y. E- X- ?+ z9 G8 q
32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;6 p+ r6 A2 W/ e/ k6 w" s
3 g) J6 s5 Q% r% L0 v 33.记住:面向对象技术不只是C++专有的;1 A/ O* x# Q$ q8 K" p: [
* ~4 D' q, w: b1 o7 {' r0 U 34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;) Q$ g& B' F8 y& V/ S$ a
' V& `1 }# v3 _$ r 35.把在书中看到的有意义的例子扩充;
" y& m- T5 m( x C1 w/ ~4 K1 ^& ?* f; `, a
* t7 O+ i5 J* j T 36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;" W6 `/ j6 j& j1 Q
$ m( N- F! D# ?3 f
37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;6 k* ]0 A7 E% b5 B+ B. o
2 h* D: @1 V9 Y
38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
1 w) p6 r/ H! c7 {2 L. U
1 t z, \4 D, {! K! Q 39.C++语言和C++的集成开发环境要同时学习和掌握;% c( H& S: ^4 Z! h5 k
: b7 O' ?3 u9 x0 J1 v r9 @0 d
40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;
3 E. B, B- r, f0 ~1 q& _( |7 X' h4 v3 U: `7 g% R, Z0 A
41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主; q& J6 C$ v2 I3 Z- d2 D! L( z* k
2 Q$ `8 G# Y/ B/ m2 w7 x! y& w 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
4 A* {0 E( o' L
/ y: J) Z$ q% m 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;
* d4 S: h8 p6 c0 W% ]; Y- }; b; \9 ~7 H/ h* X( p) w( y
44.决不要因为程序“很斜就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;( U- S1 U: ]. ]) F4 L$ ?9 J
# Q9 v% s2 I6 B* o5 V6 E- J/ h
45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;% L7 K6 H1 J; d, ~8 K
( b. }9 y) i( a) J
46.记录下在和别人交流时发现的自己忽视或不理解的知识点;6 W; O6 D* T F% V5 u ~ L
, R6 X) V' l) t! \( C# q2 q 47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;5 \3 `, Z i. {) _, V
4 X/ Y/ V$ J: @* Y+ Y b4 [
48.保存好你写过的所有的程序——那是你最好的积累之一;7 j( `# r6 r6 x4 W5 s# R
6 o5 T) }( W3 g- f 49.请不要做浮躁的人;
6 g' ?7 ^! u9 z. V0 Y; B4 f* H% f% |% z/ o
50.请热爱C++!
9 O/ n/ X" q; f3 [' g湖盟云防火墙( D6 O6 T i2 W/ K9 t/ p
4 _4 O: T; q- n2 \ |