前几天在用搜狗输入法输入MFC的时候,一不小心打成了汉字,结果一看竟然是“没饭吃”。。。哎呀。。。当时就是一阵感慨啊。俺辛辛苦苦学习的容易么,难不成MFC真的混出来就没饭吃了?@¥#%%¥#¥@¥@#@#¥……%……%#。。。
话说学习MFC也有些时间了,现在回过头来看看,虽然学到了一些东西,但是自己学习的效率和进度还是太低。其实我对于MFC以及C/C++还是挺有感觉的,而且在此也无意于做MFC和其他技术,如JAVA、C#的争论性的比较,只是想把自己这段时间的学习经历和一些感悟和大家共同分享一下,相互交流共同学习吧。
编程的核心
在编写程序的过程中最重要的部分是什么呢?我觉得最最重要的还是数据结构与算法设计!一开始看看MFC吧,类的封装、消息映射机制、视图文档结构、序列化。。。看起来挺华丽的,不过这些东西其实都不过是流程式的东西,只要你把基本的知识要点掌握了,再加上一些个技巧类的窍门,你就能够做好了。但是真正能够实现你写程序的目的以及让你与众不同的是什么呢?我觉得最关键的还是数据结构和算法设计。一个程序的优劣很大程度上就是取决于数据结构的选择和程序算法的设计。所以说我觉得大家真的应该好好的把数据结构和算法设计的知识打得更扎实一下。毕竟像MFC、.NET、JAVA等编程技术和语言都是属于工具类的,真正体现能力的还是编程的核心数据结构和算法设计,而且这也算是以不变应万变的应对之道吧。有时候确实觉得学MFC有点走外门邪道的感觉,为了实现一个界面东找西查,采取一些非常规手段,辛辛苦苦耗费大量时间和精力才能够实现,这真的有些偏离编程的核心了。我觉得做界面设计最方便的还是.NET,随便拖拖控件就能全部搞定,实在简单啊。现在很多人都在纠结于要学习哪条技术路线,我觉得最根本的还是先把数据结构和算法设计学好吧。
关于MFC的学习
学习MFC,我觉得最好的方式还是理论加实践。实践来说孙鑫的视频当仁不让,不过我觉得VC6.0实在是有些太古老了,我现在已经用VC2010rc版了,当然个人有个人的所好,在此不对工具的优劣进行争论,但是我觉得初学者还是直接学习最新版本的比较好,一步到位不要先学老版本,到时候还得进行二次革命。理论上来说侯捷的《深入浅出MFC》挺好,但是我没有看那本,我看的是稍微简单一点的,但是也是讲MFC理论机制的。知其然更要知其所以然,如果稀里糊涂的一路黑到底,我觉得是很难学好的。最佳的参考工具MSDN!顺便还能练练英文阅读。另外就是规划好自己的学习路线,最好能找几个实例结合。目前市面的讲VC的书很多,但是同质化严重,经典的并不多啊。很多时候大家还是要自己钻研,然后到网上和大家交流。
MFC的形势
说实话目前MFC的处境真的有些尴尬,当年的风光难再。随着Windows7的发布和流行,已经集成了.NET Framework,以C#为开发语言的.NET应用程序将会成为windows程序的主流(ps:用C#开发程序确实简介方便啊),而在底层的编程开发上,C语言有着更强的优势。MFC的生存空间的确是比较狭小了,游戏开发是用C++,但可惜不全是MFC。所以现在MFC可用的就是与系统及网络相关的编程。(比如黑客?额。。。)
没饭吃的MFC
其实一开始也并没有一定要把MFC当做吃饭的家伙,主要是为了学习的连续性,让自己的知识体系更加完善。吃饭的家伙好弄,关键是要学会吃饭的能力!Visual Studio 2010 就要发布了,据说VC已经有很大的改进,看来MFC还是有着顽强的生命力的。很喜欢微软为Visual Studio 2010做的广告:“想做你下一行code”!!!未来程序员们,将来我们就是要靠code来混饭吃,其实这种生活也是令人向往的~~~大家一同努力吧!!!