您的位置:首页 > 其它

路漫漫其修远兮,吾将上下而求索——《深入浅出MFC》读后感

2006-09-18 17:31 429 查看
终于读完侯俊杰的经典著作《深入浅出MFC》,虽然不甚了了,但终于可以庆幸自己已经窥得MFC巍峨宫殿的轮廓了。

这本被很多人奉为MFC“Bible”的著作,其实早在1996年就面试了;而第二版,也早在2001年就出版了。我于2006年7月购买(我承认我之前太孤陋寡闻)的时候,MFC的鼎盛时期早就过去了。很多人都说MFC过时了,现在时Java和dot NET横行的时代了,但我依然如获至宝的阅读这本书。并且我的固执没有白费,在侯老的指引下,我在MFC宝山中找到了第一笔宝藏。

当我合上书本,看到末页的“山高月小,水落石出”时,真有一种莫明的激动。在老侯的帮助下,一段段MFC代码被挖掘出来,看过之后忍不住拍案叫绝。那些MFC的设计者,将C++的虚函数、运行期类型识别、动态创建等等高级特性运用的淋漓尽致;而MessageMap、CommandRouting等等,更是精巧绝纶。以前曾接触过这些C++的高级特性,但一直没有很深刻的印象,但这段时间上述概念被反复提及,不断的强化着我的认识。

说起来,在学习编程的过程中,我也走过了很长一段弯路。

2002年初学校开设的“C程序设计”,是我第一次学习编程,当时凭着自己的小聪明,居然在课程设计中获得优秀,从此在同学中树立了“高手”的形象。在随后的数据结构、C++、通信原理、汇编、单片机、毕业设计等几乎所有需要编程的课程设计中,为了维护自己的“高手”形象,我都努力运用老师要求的C/C++/汇编/Matlab/ASP等语言完成任务,并都获得了优秀,从此自以为深谙程序设计“最主要的是算法,不能拘泥于语言”的道理,并以此津津乐道。

大学四年就这样浑浑噩噩的度过了大学前三年。最后一年要找工作了,忽然发现我这个所谓的“高手”,居然没有一点能立刻用于工作的技能!于是我开始准备学习一些实用的技术。当时最先想到的,就是学习“VC”。当时我虽然不至于象一些菜鸟一样以为它是一门语言,但对其所知也仅限于“一款编译器”而已。当时从图书馆借了一本不记得名字的书看,结果本来C++基础就不扎实的我,没看几页就头大了。照着例子做了一个程序,结果自己什么都看不懂。

后来通过学习,知道了所谓的VC程序设计,一般就是指用VC编译器编写MFC程序。于是又去买了一本MFC入门书。可没有扎实的C++基础,如何看的懂MFC!大学里学的C++,几乎就是C + class,其他什么都没有讲,我甚至都不懂什么叫虚函数!于是看了没多久,我只能又放弃了。

很快,就毕业了。而我也鬼使神差的做了一个网管。我不希望自己如此“沉沦”,于是开始反思。我认为自己在算法、数据结构等方面基础还可以,但语言、以及其他一些理论基础却不行。大四学习VC、MFC之所以没学会,主要是基础不牢,而当时由于求职压力又不能专心打基础。于是利用做网管的时间,又开始重新学习C++。当时我买了一本清华大学出版社的《C++程序设计》,但说实话这本冠以“国外经典教材”的书,却并没让我感觉经典。看完后感觉收获并不大。

工作三个月后,平时不注意生活习惯的我胃出血住院了。住院期间我下定决心辞职在家认认真真学习3个月,无论如何不再做网管了。没想到最后一共在家待了8个月,但这八个月,终于有点学习编程的感觉了。

我首先买了一本人民邮电出版社的《windows程序设计》。这本书正是我一直想找的,介于纯粹C++编程和mfc编程之间的好书:我认为以前看不懂MFC,是因为在C++和MFC之间,有一个断层。这个断层,有知识上的,比如匈牙利命名法,也有技巧上的,比如各种宏。正是这本书让我开始了解了SDK编程,以及MFC编程的基础。可以说这本书前半部分非常适合初学者学习。但由于作者想将windows程序设计讲的面面俱到,一方面基础介绍的篇幅不够,另一方面又讨论了很多晦涩难懂的东西(比如钩子),最终我没能坚持看完。但无论如何,通过这本书,我终于开始对windows程序设计有了初步全面的了解,并且感觉到自己的C++基础很不扎实。

于是我的下一本书,就是《C++编程思想:卷一》。应该说,这本书是真正领我入门的C++经典书籍。我几乎每看3、5面就对C++有新认识。以前自以为已经很了解C++了,现在才知道它是如此博大精深,很多东西我都只知道一个大概,根本不理解。C++的所有特性,都是和其他特性紧密相连的,而我终于理清了一些关键技术之间的关系。

在学了一段时间后,我认为有必要做一点有趣的东西,于是开始做一个五子棋游戏。界面么,就用《windows程序设计》中学到的做--从CWnd派生出一个类窗口类来--所以界面非常丑陋。但我重点做了一个人机对战功能,所以最终自己对这个程序还是比较满意的。

8个月时间,说快也快。我进了一家转做嵌入式产品(电子衡器)的公司,职位是软件测试。本来以为软件测试能接触代码的,但却是“黑盒测试”。不过凡事都有正反两面。我因此有了充足的时间学习。于是我开始看《深入浅出MFC》和《C++编程设计:卷二》。前者在我有了一定C++和windows程序设计基础后阅读起来并不算很难,所以到今天就全部看完了;而后者主要是介绍C++的STL,以及其他高级主题,看起来比较吃力。另外我在无聊时也看了一些简单的源程序,最有意思的是一个人在TC下做的连连看游戏,对Dos下图形编程有了一定了解。

学习编程这几年,我从一个一无所知的菜鸟,到如今终于入门,走了无数弯路。希望我的经历和经验,能给更多新手帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: