C++ 50条建议
/ m5 v& F0 B( o4 q& `# S( U @' D+ G- o# ~9 S' m
btw:这50条意见是通吃的& m6 N- Z. x* j) v i( i; d ^0 Y
& N* k. B5 L' @0 L9 h
1.把C++当成一门新的语言学习(和C没啥关系!真的。);# V4 e3 h# N/ X
" K3 T* r2 K9 B 2.看《Thinking In C++》,不要看《C++变成死相》;$ m9 X3 E: I( w# W" b7 \7 }
% z2 I' l& m7 R* q5 p
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;3 v7 G! Z7 `7 H S
! M; }9 @* r* h5 h: I) Q! n
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;- s! {& V% k* r; `" W3 m5 |9 C
! P$ w' G( {# I( i( w4 c 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
. L7 j; B( M! l" L, t$ E" E6 L! _& R3 c" j: J" l% q; a9 [2 G
6.会用Visual C++,并不说明你会C++;
' ^( }& W" C( @0 A7 }3 Q- s% j
% g: u/ j- m/ u3 G* `( @ 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;8 c. R- X9 m* y- M6 j( \
! S; E( b% e) j' ]6 M: n
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
# _1 P( J) {# _4 _
; D0 U# o x; `* F5 `; J 9.看Visual C++的书,是学不了C++语言的;
9 q- i7 Q3 w& ^9 ]$ V/ g# `# B
" O: w3 p; w5 D 10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?2 r3 \5 n, B0 h8 r
7 J5 W7 E% b6 H' I) P; C 11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
8 S3 G. {. N( I6 a/ u8 I9 t" Y0 n9 f' q: P9 D- p
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;
4 S" }& w2 e' @$ h' |! ]0 j1 f
) r [1 |, S9 h, c0 o 13.浮躁的人容易说:我要中文版!我英文不行*—不行?学呀!, u% X& @3 N, W X" G
8 r% A; f! M3 ~/ |& i! {" T
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;1 u8 r7 y; I! ^4 P! j
: l' b/ o; ]0 r3 l& t1 x
15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
; F2 I6 I. w; {; v( f- U% s& a! D. e8 M7 ~$ t
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;1 |' Y( C. E( S
3 |/ _6 Q8 n0 l: u# E% {
17.C++不仅仅是支持面向对象的程序设计语言;
& @0 G1 D4 s0 p3 D$ B0 Z( K4 L) Q+ b* G
18.学习编程最好的方法之一就是阅读源代码;/ w2 H& b, K6 A
}# e6 Q# x; h. \* `. n( \
19.在任何时刻都不要认为自己手中的书已经足够了;
; y1 x. a8 \2 h- X- }: h* w) Y, o+ s0 Y
* f' m; [" U# V0 `' G9 L* m( K 20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
. E7 m) V7 Z& l. N
+ b' Q+ Q2 y( f5 m 21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
- N a% p: ^( m. p8 f9 e% e, x/ k, t" f, m5 }* U9 z
22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
# ~$ m' a. h. a, K! b$ Y: W+ v7 P8 {4 M- f" H+ J3 } p$ I
23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
& f; R% g9 r6 h u' ~. `9 n+ `! K+ Y: @/ ]! \
24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序;
w! k5 y- Q6 O
x1 J( x, k! P 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;
* t* u: w' I: ` b5 p9 C- b. |( ] e, s- O! U; T& Z# W
26.请看《程序设计实践》,并严格的按照其要求去做;( N; `# M- g4 @: \6 r, d/ ?
6 ?: X/ p( x" M0 J( [ 27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
/ m( P$ r g$ h: S# a; P& S
! x* e, Y: b2 @0 k) r 28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;
* r% `. A1 v# ?# D. c% {( c2 F' ]- l
29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;/ _5 G2 F5 \1 |2 b y
z y- `( a) Q S, \. W% c 30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;
" a f; T7 H/ x+ m
4 O* S7 h9 {8 S I- U 31.学习编程的秘诀是:编程,编程,再编程;4 {, x- t: @) r
! P4 o2 Q1 K0 I1 E; E 32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;* \+ U0 A# E5 v: ?. V X& s
, A; c2 T2 Z* ?! s. O! W. N% c 33.记住:面向对象技术不只是C++专有的;
+ W- P- \, r/ R% W5 z# N
7 h- u8 B( }- @+ U 34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;' v; O& V- b5 _* ]" M! l
3 a& W+ }% N! K" i" r/ j5 z 35.把在书中看到的有意义的例子扩充;& A0 N0 b) b; O% H1 A4 ~2 ]3 N
2 G7 L7 u' |0 N7 `% r 36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
, W: f6 T3 W5 o+ P0 F5 c5 A8 t# x& M, L* J. v0 H
37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;8 o+ O; W# W/ h% v) |7 C) B- E
2 m9 R* R1 ]1 i& H 38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;+ j1 }* ]' V+ {- g
! M" Q; x! P" Z- o0 n) [" q0 U
39.C++语言和C++的集成开发环境要同时学习和掌握;
7 Z* ] g* J' O4 v/ B% j# v
w* u% x# D' `9 y) h 40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的; q0 V3 X+ N3 Z7 W' e1 w: ]
$ a4 T H# C/ Y$ o( i3 t* F! F) b: }
41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;3 x# z2 \7 @) _2 N, p# U- u5 d
5 p- M D% k& f5 H& p 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
/ Q+ C6 S, W2 {3 Z) E& z
% ~( g3 M5 ]: t2 K- c% D 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;9 t5 c9 J) R0 {8 s& D1 ?
3 h( y. I( E. I' R8 ^! V9 C/ l
44.决不要因为程序“很斜就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
- K' |" j# a+ [2 [" r6 d2 u4 l0 v2 f
45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;0 I( p, k' E5 v' N i
/ [- ~) i5 Q$ u* |% C4 o1 e
46.记录下在和别人交流时发现的自己忽视或不理解的知识点;
5 T8 K1 @! y( g5 Z c9 }+ } j* b. ~- }- _0 S0 X: U# A2 C
47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;
, e) W& z* @& Q( p( i0 |! y: y; U+ I
; n9 q7 Q7 M6 e4 ^* ^0 w 48.保存好你写过的所有的程序——那是你最好的积累之一;; a2 |! x& `5 Y" V# }% e& `
6 M) m, z# S/ c" k# e3 V. ]7 h 49.请不要做浮躁的人;
$ U- h2 i9 U- J/ i& }, t2 k0 _9 Q
50.请热爱C++!4 g: T2 d% B2 z* X& o( k) u5 }
湖盟云防火墙5 C h! x% G% J8 m9 ^$ f9 l
5 _* P6 n* \7 Q0 p/ y; A I8 P |