【 tulaoshi.com - 编程语言 】
“N次失败,1次成功,还学的不怎么样……你也太笨了吧!”假如您有这样的评价,那么祝贺您,您已经了解了我这人的99.9%。N这个数字具体是多少连我自己也记不清楚,保守地讲(N≥6==TRUE)这个表达式是能够成立的。
!-- frame contents -- !-- /frame contents --
回想我的VisualC++入门过程,一路过来,绝对不是像黄飞鸿的功夫那样潇洒出色,而更像是一颗石头顺流而下,在河床底摸爬滚打、磕磕碰碰。今天是周末,我就把以前N次失败留给我的经验教训胡写上几笔,假如有朋友看到这篇拙文,又刚好打算尝试一下VisualC++,也就算是我给您留下的莽原一径吧。
一.C++语言的基础 说起入门慢,第一个原因莫过于语言基础了.高中时期学校组织的微机爱好小组学习的是PASCAL语言(我也不知道为什么要讲这个语言,假如说是为了应付比赛,当时也有C语言组呀),所以在大学转向Windows编程的时候,我首先选择了Delphi.大三的时候学校要求考国家二级,二级没有Delphi,于是又转向了VB,原因是VB做起来与Delphi很像。后来发现VB的IDE做的比Delphi好用,而且BASIC语言写起来简单,于是便弃Delphi而去(明眼人恐怕又要骂我了,若不是太懒,怎么会喜欢VB的IDE呢?的确是这样,后文会提到,懒不仅仅是学习VC的大敌,而且懒人是什么都学不好的)。长年与VB打交道,让我对C/C++语言很不习惯——我不喜欢C++写一个句语要打一个分号,我不喜欢大小写字母要严格区分,我不喜欢比较的时候要写两个等号,我不喜欢……总之,对C++很没好感,没好感也就没爱好学了(后面提到爱好是相当重要的)。当然假如你现在再问我应该学习什么语言,我会毫不犹豫地向你推荐C++,因为就常用语言而言,C++语言中包含的知识是相当全面的——从面向过程,到基于对象/面向对象,再到模板和范型,可以说是应有尽有,不夸张地说,别的语言在某种程度上而言是C++语言的子集或者说是在模拟C++、向C++靠拢。
在数次失败中,给我很明显的感觉就是,不学好C++语言就学习VisualC++纯粹是一种自虐。这次入门之前,我花了3个多月的时间系统地学习了C++语言,够意思吧。然后我信心实足地敲响VisualC++的家门,呵呵,这次她终于肯给面子了。举个例子吧,在看Dll的调用时,用到“函数指针”,顺理成章就看下去了,想一想假如没有C++语言的基础,基本是不可能的。所以说,没学会中文之前,别看《红楼梦》,那不是《看图识字》。奉劝想从VB转向VC学习的朋友,假如你指望能像学习VB一样边学习VC边学习C++语言,那你可就错了:)
顺便提醒C++语言入门的朋友一点,应该关注ANSI/ISOC++,也就是标准C++了,市面上C++的书良莠不齐,很多书是“旧书换新皮”,讲的仍然是非标准C++,一定要选好。计算机书很贵,大家不妨找电子版的来看,网上有很多,甚至《C++Primer》或者《C++沉思录》这样的好书也有热心朋友放到了网上。不过,我最喜欢的是《C++编程金典》这本书,不愧是教育大师写的书,用来学习很合适。至于编译器的选择,假如条件答应就安装VS.NET2003吧,据说VisualC++7.1的编译器是目前对标准C++支持的最好的编译器了。
二.VC学习资料的选择 VC入门难有很多原因,其中不容忽视的一个就是优秀的VC学习资相对较少。C++语言较深,VisualC++用起来复杂,再加上资料少——难上加难。资料少,并不意味着没有,怎样选择或者说挖掘就是要害。暂把资料分为光盘、书籍(包括电子书)和文档(包括网上的)三类。
在选择资料方面,大家一定要摈弃中国人思想中的两大劣根性:1不劳而获2一夜暴富。
“不劳而获”的思想会导致趋向于选择“讲课”类的资料,比如多媒体光盘。结果是光盘容量往往很少但又要求内容面面俱到(不然怎么卖出去呀),这就造成了知识的连贯性差而且讲的又飞快,任你一遍一遍地听,不见成效又打击信心,最后只能放弃。期待早日有内容丰富,讲解出色的光盘面市。
“一夜暴富”的思想会让你趋向于选择“速成”类教材。那样的教材大多是骗人的——能写个弹出窗口Hello一下World,这就能算是会VisualC++了?我们还是不要自欺欺人的好。至少也要能连数据库、能使用Socket吧……而这些知识怎么可能“速成”呢?
我有很多VisualC++的学习资料,但没有一本我是抱着一啃到底的,因为没有哪本书十全十美,我是交替着使用些资料,这样做的好处在于:
1知识的连贯性好,跳跃性小,进阶坡度较小,读起来舒适。都说VisualC++的学习坡度比较陡,那个陡坡是出现在由单纯的C++语言学习转向Windows编程的时候,C++语言本身的学习并没有那么困难。
2有积累效应,这本书讲的不精不透,另一本书会帮你补上,这本书你没留心,下本书总该长个心眼吧。还有就是一些小例子程序,把MFC的类或者函数拆开来给你看,目的非常明确,效果也不错。天天学一点,不图快,图扎实。呵呵,跟VC搞“面向对象”,当然要一天一点恋爱了。
3举一返三,动手实践。假如多本书中都把它列为重点,那就一定要熟记在心而且上机操作,书上的例子一定要分析透彻,不能有“差不多”的思想——差多少算多呢?程序这东东,错一个字母都不行呀。光看会了还差远着呢,自己要能写,而且能对例子进行扩展才行。
4内容详实丰富,这一点上,首推MSDN啦,还有就是在网上能找到的微软出的VisualC++的丛书,希望译的电子版,是wdl格式的。虽然MSDN是英文版,但其中的英文并不难——您尽可以相信我,因为在下的英文水平是奇烂无比的。MSDN有两种用法,一种是当字典用,因为内容全;一种是当消遣,没事了看一个类,敲几行代码,看到那个MFC的继续图了吗,挺好玩儿的,感觉像逛街——而且东西不要钱,helpyourself。
互联网上的资源是非常非常丰富的,千万不要错过!好网站和下载站BB皆是。还有论坛、新闻组、在线QQ群……你问我有哪些?呵呵,远在天边近在眼前呀:)
三.内因与外因:“三心二意”和“高手朋友”你有吗? 啊哦,我不是在开玩笑。“三心”是指决心,信心和耐心。决心