$ X/ [1 c+ R) `' s. ^7 T 一套MSDN光盘在这时是必不可少的,什么都找中文资料是不可能的,即使能找到也会很费时间和金钱,只能看硬着头皮英文。不过以我的经验看,只要有高中水平的英语,加上金山词霸一路滑过去,看那种专业文章还是很容易的。还有,初学者一上来可能根本不知道上哪找需要的东西,我在这里把常用的地方列一下:) R* V; ]8 n6 L% c% [1 u, A
$ |" r0 C$ i1 w+ JWIN32 API: 平台SDK->Reference->Win32 Functions in Alpha Order- J: A& }6 L y
MFC类库资料: Visual C++ Documentation->Reference->Microsoft Fo...# c3 C& ^) C) ^$ y' z3 X
C/C++语言及标准库资料: Visual C++ Documentation->Reference->C/C++... 9 N H* L5 \" ] Y9 J" p; C标准控件: 标准控件都被MFC封装了,可以参考对应的类,如Edit控件对应CEdit类. 0 A) f6 A6 e3 z! p6 I* dVC中带的ActiveX控件: Visual Basic文档->参考->控件参考(唯一的中文资料,却是最糟糕的。不但是For VB,与C++有很大区别,还翻译得乱七八糟,几乎没法用.如有高手知道哪有英文资料还请告知,不胜感激)' C6 _/ z( _" S
. k9 S! @9 Y/ |: ?* {6 B
目前市面上的MSDN光盘已经有一段历史了,有些东西可能有些过时。要最新资料的话,可以到微软的网站(当然是全英文的)。不过对于初学者似乎没有必要。7 U2 R, z2 E# V0 M. u$ l/ K8 k
% L# e( i6 R, S
搞定VC后,要学什么都随你便了,再学C++Builder,VB,Dephi,java什么的都是一点难度都没有了,感觉就象是把关键字换了换。或者可以去啃啃COM,据说那是块硬骨头(不过好像也只是入门难,因为有了之前的经验,虽然我没碰过,但花点时间应该是搞得定的。另外DirectX编程经验在此应该是有些帮助的)。 / f4 B- z% g- w& a X' k . E ^4 s% L. @' ?0 i1 K
最后,我建议有时间的话多研究一下各种算法。数据结构是一定要看的。不一定要记住(话说回来,不经常用的话也记不住),但至少要知道有那么回事,万一碰到问题了要知道往那边靠。其实,常见的链表等结构以及排序等算法在C++标准类模板中已经实现了,不用你去费劲,但有些了解的总是有好处的。至于离散数学、线性代数什么的,对于复杂些的算法是必需的,其中离散数学是数据结构的基础。不过,我倒觉着只要不是太复杂的问题只用经验也能解决(就象奥赛书中那样,只是实现而没有证明),而且那些东西不用就会忘。万一碰见个难题解决不了,找个高手帮忙也不错,省时省力^_^。* A( H/ M+ F2 v) ?/ w, z8 \
" E' @2 a U0 y 下面是我想到的一些杂七杂八的问题,没什么条理,凑或看吧: 1 L! U3 G& \& P7 `7 I& l 0 o! P1 I, K% { 英语水平不用很高,但至少要有高中水准,否则有你受的。 & m+ j7 T7 P8 c) O! n% l$ G ( h! k6 ]6 p/ b3 [% e" O+ R 看书一遍看不懂没关系,事实上,要一遍就能弄懂你就很有天分了。只要多看几遍,综合分析,应该是没有什么问题的。6 G9 v7 `# c/ d3 |7 v2 A
( ?7 A7 s* n9 |0 U# W2 h+ ~- b
现在的世道,不是书到用时方恨少,而是书到用时方能学。不要试图满把抓,而要用到什么学什么。这样,学的又快,记的又牢。 - R( M5 o- P7 i+ T' I4 k: l$ ? : l! }; h3 L# t 一个错误认识-学编程靠的是记忆:这是很要命的思想,会让你累死而无所得。事实上,你几乎不用特意记任何东西。对于各种函数、语句,只要知道有那么个东西,用的时候知道上哪找就行了,用多了自然就记住了。学编程关键在理解编程思想。 % t( v) D2 W ]4 L6 p+ z+ ?/ B; L. X' o" C6 Q
一个小技巧:活用编译器可以帮你很多忙。在VC中,当你输入成员符号.或->时,程序会自动列出此类的成员,你只要选一个就行了。这样便省了很多记忆负担。例如,你想获得一个CString类对象的长度,对应方法肯定是Get什么,但是GetLetterNum还是GetStrLength却不知道,你可以输入xxx.Get,这样,你便可从列表中找到一个GetTextLength(),不是这个还能是什么,单击它的话还可能出现说明。还可避免打错字。如果想调用本类的成员函数,就输入this->,就可以查看成员列表了。对于全局函数,则是输入::即可。这样的话看起来还清楚。还有,如果没有出现那个列表,八成是你弄错了什么东西,例如变量没定义,或打错了字,但也可能是VC的BUG,很少就是了。对于初学者,这可是很好用的功能。# K# y6 Y# p" Q+ d# J c- F; T6 [
; A J j' L9 ~2 z 初学编程应遵循的一条原则:比猫画虎、不求甚解。关键在于很多东西你就甚解不了,例如MFC中稀奇古怪的宏。而且,甚解了也没太大的好处,暂时还是不要管它,会用就行了,什么时候有了闲工夫再来慢慢琢磨。多留心别人的程序是如何实现的,并照着去做。有时,一些小问题也体现着高深的思想。比如,一个变量要定义在什么地方,如何组织类的结构。如果不太明白,就先找着别人的样子去作,时间一长就会自然而然的明白,这就像下棋一样,老头怎么下,你也跟着怎么下,毕竟他出错的可能比你小。5 E2 T1 {/ t7 c9 T2 t+ [
/ d" {" l/ O: v 还有,我觉着初学者不应把过多的精力放在象Cool的工具条,透明的、气泡状的窗口之类的工作上。再搞这些之前,你最好问问自己,自己的程序配得上这些漂亮的界面吗?尤其是,千万不要在刚开始动手时就先打扮界面,以免界面也弄好了,热情也没了。毕竟,看在眼里的成果给人的刺激比枯燥的算法强得多。如果你想搞的话,也要等程序主体定型后再搞。; Q6 H r9 T" s3 t+ B
" ?+ y6 a3 [5 t I
初学时还应多留心关于程序结构组织的文章,这些东西是很重要的。要从一开始便养成良好的风格。否则有一天当你决定编一个大点的程序时,你就会发现干到一半就干不下去了。( w; i2 E! f0 `$ D8 q6 T7 w' t- {. \
2 k) |7 e& Z4 O F) b 编程不是技术活,而是体力活:学的时候满脑子全是技术,可用的时候就真成了体力活了。真正做起东西来,最重要的是要有毅力坚持到完。意志不坚强就难免半途而废。: i6 I. i* u: P: \3 c