C++ 50条建议
* x3 K) @ T) T, ?6 h5 W- s/ O( \2 m; c7 h$ ]! I3 H
btw:这50条意见是通吃的
& o! S; l& U/ Q) P$ `( F, _* D4 R
1.把C++当成一门新的语言学习(和C没啥关系!真的。);8 R( N0 g" a' s- G9 L
5 X7 `0 j( n" C3 }
2.看《Thinking In C++》,不要看《C++变成死相》;- c: u2 w0 \" R* l1 N3 t* l
: w4 q* o' [+ {5 f 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;; C; H/ o" z P7 ~' A) C, V# `
* w; U4 b( ?# o0 `' N' Q3 d
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;; O6 \$ I/ c9 I
. F6 ^! i; t$ B6 E- I 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;& `2 S# y! Y: f% ^! w7 \2 C
; g2 e( g7 C" R9 G! q: ]
6.会用Visual C++,并不说明你会C++;
1 F( C( _% E! O/ q8 S
: @2 ~- w1 G* A; e6 \- m 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;% N- B3 `" {+ x% \
( c3 M; ?. v3 i! U% t, F& Y0 H
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;
2 W% f+ t C: T, `' D8 ]" G \1 ?3 l0 z: o
9.看Visual C++的书,是学不了C++语言的;
* g/ x; X" a: t6 [$ r' C2 `& _! C' r3 D# O% P6 h$ x
10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!?9 V; o) w/ P9 P+ D
" H( j; C2 l/ B8 B$ z$ b" ?/ n 11.浮躁的人容易问:我到底该学什么;——别问,学就对了;
! Q N; m2 D) \# n# w' Z! |2 ]6 {( E+ E5 H6 O
12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行;" u* Y4 H; H' n2 Z. X* y1 \
, W2 M% O3 ~4 E/ o& g
13.浮躁的人容易说:我要中文版!我英文不行*—不行?学呀!# `9 R3 t0 f+ i: n
- z' `: Z, W: H g1 m
14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行;
% ]9 ]1 ?4 s* P
# L4 G4 `8 i& C: s1 e 15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;
! b! P2 M" Q# a! I, t( H6 [7 J8 I6 `
16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;! J, ~- J( t; t8 m
" _9 z2 b7 N4 W& F& _4 v' Y# m
17.C++不仅仅是支持面向对象的程序设计语言;' ~, F' R- h Q$ Q* s: a3 Q e
6 f3 c# f) |* |! W+ ^
18.学习编程最好的方法之一就是阅读源代码;
; f+ L6 o- _; h7 z: Y
# G. M; w3 V( w! Z* A+ r 19.在任何时刻都不要认为自己手中的书已经足够了;
" m: W- g$ k* @2 @# z4 X% `: @4 `1 o0 b
20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
% l8 `* D9 l( e. m! x; A9 _$ N! F
21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
5 B6 j+ M' T1 V" X/ P0 A5 o: C9 G( B u F
22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
& }8 r& t( E0 ]( y3 z; z
1 R d4 \# p q; {6 L, x; P 23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
' Z2 _( k3 O/ v$ A- w& J& e+ R& [# x: Q, u
24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序; \, H9 k4 w( a
& S: ~8 c w/ j' i 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好;) N$ P( H3 m9 N a6 j2 K. m
( w; c5 b4 H) H8 I, a( u' s 26.请看《程序设计实践》,并严格的按照其要求去做;( ^! a9 q. L, q
7 W m8 E* P) M1 t3 l; j
27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;& @/ H6 {! }. E2 M4 a
9 o. Y! A9 S- R3 G3 p' k
28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密;
% v; i, @% H& M0 X& ^" ^9 y
1 z& }- S4 E8 E3 B$ Z. ~ 29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已;
. d: ]+ d9 b7 c4 i/ x
+ Y' Y" W& z4 Q1 B8 F 30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;& `" i/ F; s( M% c, J* J. p
. z: a% m( ]) x5 H* U, ]
31.学习编程的秘诀是:编程,编程,再编程; `4 ?; Y2 k5 v+ L' A' r
% o# b% p) t8 @+ n$ q. e8 R3 J 32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
- Q/ ^" d U4 n. c
, P7 x( K {$ y# f4 `, g 33.记住:面向对象技术不只是C++专有的;. E. K( p* A3 |/ p. \
* i; M: ?! n7 e8 I
34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;
- v9 G( k: x1 b: k8 R9 J6 S3 i
. p! S3 e) A2 Q, K1 f 35.把在书中看到的有意义的例子扩充;8 {9 Y( [" N1 E* O9 P, f
9 O, `/ C7 @+ M1 C5 f# ^; b. h
36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;+ j" |& S- L; F" p5 ]
K& V) B3 T% l' e8 ~! p; z 37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;! S: y0 s0 e# d& ]1 N
( N9 F# w3 p3 v 38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;
% n# h5 m: x8 s& g; ^+ t- o, g( P! p0 h8 ?
39.C++语言和C++的集成开发环境要同时学习和掌握;" f7 h& J/ [2 ~! ]+ V Y2 O; N
& |/ I% ~0 H5 P/ h O' V 40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;- q6 j ?% X/ m3 T" K- O$ U/ n. L
' ^$ {% ]: Y: k% l
41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主;
+ w' S7 X+ c5 Q6 J+ d" q) U
; E, ~6 _# B( S6 J, d z t. w/ c 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);7 j1 W9 I" B" T- E' Y5 N
% \# b& R4 u! v. ~' p0 Q# s$ o 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;$ X- i }; r' Q
; n) k, } G3 e 44.决不要因为程序“很斜就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;) |" L. K/ e3 E) _1 r' l/ f
/ }( Z$ k) i' {4 a 45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;1 y! n* A5 C5 I
8 \1 F2 ^, ], J$ n6 o 46.记录下在和别人交流时发现的自己忽视或不理解的知识点;, `1 F" l' v8 K8 ^2 B/ ]1 L: Q. E
+ |7 {& l+ Q( N+ Y9 V
47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX;
3 P4 Y3 u/ o& Q) C+ {% i+ g6 g/ I2 x9 w/ e# a
48.保存好你写过的所有的程序——那是你最好的积累之一;
0 I' L! D/ v7 B7 d7 q9 u
* k/ _6 S: t$ k0 j: T 49.请不要做浮躁的人;4 G9 M4 c- p; z. [8 Y9 R
, X& H! |; z( i" Z+ i
50.请热爱C++!
$ @. u; c0 m' c湖盟云防火墙
- U; z9 y+ a9 N, I5 i: K) p% y0 |. f2 t4 S, A8 d
|