学习vc的经验之谈
我开始学vc时就是自己一个人在啃,也没什么人指导,当时没有条件上网,资料特别少,在书店里随便买本书就学了,在学vc的过程中走了许多弯路,现在回想起来觉得做了很多无用功。看见大家在这里畅所欲言,有高手也有新入门的ddmm,我也来谈谈学vc的一点“捷径”吧,这条“捷径”纯粹走的是c/c++的路子,不考虑学习其他语言。(我只会c/c++,略懂vb和java,所以对于通过其他语言来切入vc的没有体验,不置评论)
1.必须对c/c++非常熟悉
如果c不熟,可以看清华谭浩强的书,经典之作。(学习时间1到2个月,对函数、指针和链表须滚瓜烂熟)
如果c++不熟,可以看电子工业出版社的《面向对象的程序设计于c++教程》,张国锋写的,既讲面向对象的思想又讲c++的语法,是我见过的讲c++最全最好的书,里面的例子都是精心设计的,值得好好体会。好像清华也出过一本张国锋的,不过我没看过。(学习时间2到4个月,关键在于理解oo概念和c++中的多态,对此应挥洒自如)
2. 最好/应该对windows结构相当熟悉。
如果你很牛,非要从mfc下手来了解windows结构,当然也不是不可以,但我以为从mfc来学习windows有雾里看花的感觉,很容易陷入迷惘中,我吃过这种苦头,希望后来者不要走这条路。
如果对windows结构不熟,可以看microsoft press的windosw95 programing,清华翻译出版了中译本《windows95程序设计》,后来北大翻译出版了最新的版本。清华版的译得不错,北大版的没看过,好坏不知道。这本书讲的是怎么样用c语言编写windows程序,不讲什么mfc或owl的,看过后对windows能有相当清晰的认识。(学习时间3~6个月,gui对象和消息很熟,多线程、dll有一定认识)
3.以上两部为准备工作,ok后就可以continue学习vc了。
学vc看microsoft press的《inside visual c++》清华翻译出版了中译本《visual c++技术内幕(第四版)》比较容易上手,看《技术内幕》一定要看清华,有一本希望出版社翻译出版的第五版技术内幕翻译的太烂了,看希望的不如直接看英文原版。(学习时间4到7个月)
4. 学习vc是为了在windows平台下做开发,所以当你对一上三步都很熟后应该进一步深入学习windows体系才能开发出高性能的windows程序,你也只有在这个时候才会明白为什么说vc是真正程序员用的工具而vb只是玩具。如果你在finish第三步之后已经忘记怎样在windows下用c语言编写一个windows程序,那么你应该把第2步refresh一下。在这一层次应该深入研究windows操作系统内的进程、线程、虚拟内存等知识,还应该了解windows网络程序的设计。这一步推荐的书是microsoft press的《advanced windows》清华翻译出版了此书的中译本《windows高级程序设计(第三版)》,读此书时很多东西有相见恨晚的感觉。机械工业出版社翻译出版的《windows核心编程》是这本书的第四版,结构上重新组织过了,内容没有细看过,应该还可以。网络编程有一本也是microsoftpress的,好像是叫《windows network program》吧,机械工业出版社翻译出版了此书的中译本《windows网络编程》还不错的。
5. 往后你就看自己需要了,有兴趣可以学习com/dcom/com+,这套东西是现在windows系统的核心架构。
用vc学vc两年了,自认为不是什么高手,精通更谈不上了,因为vc的功能实在太强大了。我只想谈一谈自己的学习过程和体会,总结一下自己的编程之路。
一开始也和大家一样,对vc、vb、delphi、java非常感兴趣,但是学什么好呢?毕业设计来了,导师要求要么用vb要么用vc,听说vc难学但很有用,于是狠狠心用vc吧。对于一个对编程一点都不感兴趣的人我想他是学不好的,没有强烈的动力和恒心也很难掌握一门知识。怎么办呢?你总要毕业吧,这就是我的驱动力,而且编程还可以挣钱:),学吧!
对于一个一点都不懂的人来说,下面的知识应该补一补:程序算法和数据结构,c语言的变量、数组、指针、内存、文件、函数等等基本概念和用法,有的人说学c++可以不用学c,我个人认为还是从c学起好,因为c++对c是兼容的。
有了最根本的编程基础之后,我们就可以学习c++的编程思想,就是面向对象(oo),自然对于什么是类、对象、成员、成员函数、构造函数、析构函数、虚函数、模板,最开始可能用不上析构函数虚函数什么的,但要想精通深入就必须掌握(当然可以以后再学)。可以说面向对象是c++对c的一个最重要的扩展,而这也恰恰是我们理解和深入的基础,这部分越扎实以后理解和掌握就越快。
再下来就是mfc了,mfc是一个很好的封装类库,它诚如大家所说对用户屏蔽了很多实现机制,以致很多人只知其所以然,而不知其然。要想知其所以然,当然是学习windows编程,熟悉windows的消息、窗口、api函数。可惜当初我只是为了快,没有深入地学,留下了现在地恶果,对mfc及其机制仍不甚明了。一则mfc已经封装好了,二则自己觉得麻烦和累,一大堆长长的函数名和长长的函数参数把我吓晕了,大家千万不要学我^-^。基本观点就是如果只求使用,不学api也可以,如果想做得更好精通,非学不可。对于mfc,对我帮助最大是www.codeguru.com、程序员大本营、和msdn,有了这三大法宝加上自己的刻苦钻研,一定可以成为大虾。前提是有一定的英文基础,并且已经知道如mfc frame及application的基本运行机制,对对话框、编辑框、组合框、列表框、进度条、标签.......等控件的基本功能都自己试过。我就是从这些开始学习mfc的,另外还学了一些和数据库打叫道的东东,如odbc之类的,我觉得如果仅仅是界面开发,这些东西还是可以胜任的,都是些简单易学的在哪里设置什么属性,添加变量和调用成员函数就行了,不笨的人都会,当然如果你不知道在哪里加又会变得很神秘和难于上青天,夸张了呵呵。这时候你就要查书问别人上internet和帮助网站去找了,具体成员函数的用法可以看msdn。总之对于没有学api耿耿于怀,对于没有了解mfc机制也愧疚于心,因此把自己归于初级水平还是可以的:(
vc是一个开发工具和环境,在你需要的时候你可以边学边用。比如你要编网络方面的东东,好!先去看看别人是怎么做的,有哪些基础,另外你自己也要针对需求学一些网络知识。微软的主页还是不错的,英文好的话可以找到很多很好的东东。你要编关于数据库的程序,请先了解一下数据库的基本概念和它们在vc中的使用。你可能还有各种各样的编程需求,如游戏、小程序、动态连接库、静态连接库,com,activex等等,学习吧,这是唯一的捷径。
我的体会是,边学边用,边用边学。学习先打好一定的基础,磨刀不误砍柴功,看似浪费时间实则受益匪浅。学习要利用一切可以利用的资源,书(包括电子的,不过我很少看电子版本)、bbs、网站(比如vchelp)和高手,勤学好问,搜索不倦,想必你肯定也会成为高手的:)。书我是狂看、乱看、瞎看,主要是没有条件和时间,当时也没人指点应该看那一本好书,原则就是找到自己需要的东西的书就可以拿来翻一番(当然我有图书馆这个资源,学生借本书应该没有问题的)。bbs主要去精华区溜达溜达,里面都会有你要问的一般性问题,如果实在找不到答案,请去codeguru,微软网站和msdn查找搜索,应该可以找到蛛丝马迹。这样还是很费精,如果有高手指点就不一样了,他们做过的话,这可能就是小差一叠,随便说一个关键词就可以帮了你的大忙,可惜高手毕竟是少数,正好碰上做过的高手的概率就更小了。所以各式各样的网站就显得那么的重要,它们一天二十四小时都在,而且可能是很多高手都在,因此在它们身上可以找到一些参考答案。问专家我觉得不错,vchelp更全面和包罗万象。说了这么多,都是自己的胡思乱想了,一点个人体会,不当之处,各位多多批评指正了*^-^*
下面是我的一些建议,如有不对,请批评指正.谢谢!我想现在大部分的初学者都在问,怎么样学c/c++最快?确实,这是个比较重要的问题,但对于初学者来说,最重要的,是你对学习c/c++的恒心!学习c/c++并不容易,我想这是每个初学者很清楚的事情.之所以选中c/c++是因为它的涉及面广,并且强大.但自学想很快掌握c/c++编程那是不太可能的,除非你是个天才,或有专家专门对你进行辅导.如果学习方法和路线正确,的确可以提升学习的速度和效率.下面是我对怎样学习c/c++的一些看法.总共分三步.第一步.系统的学习c/c++语言,(不要涉及mfc.)并且学习操作系统,对操作系统的运作有清楚的概念.这一阶段,可以把重心放到研究算法上.(估计时间将会是一年.如果有人帮助的话,可能会减短.)第二步.开始学习mfc,并选择发展的方向.一个程序员,很难做到各方面的编程技术都精通,所以要有选择的学习你感兴趣或有钱途的技术发展.如果做游戏,则可放弃对于mfc的学习,因为游戏不需要mfc.(估计时间将会是半年.)第三步.开始对各种技术的涉及.因为本人还没有考虑到这一步,所以,不做多提,但如果你已经学到了这一步,也不用我再废话了.(时间未定.)当然,以上的时间估计,是在假设你努力学习的情况下定的,并不具有实际意义.对于书籍的选择,有很多人想用电子书.我提议,如果是初学,最好不要用电子书,来学习.还有些初学者对于编程工具不知如何选择.我想无论是c或者是c++,vc都是一种不错的选择.如果机器配制不高,可以使用版本低的vc.vc1.52版本是个不错的选择.
visual c++与delphi/c++builder之比较