九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

C++学习之道

C++学习之道

 

学习C++有一段时间了,其中走了不少弯路,也的确了解了很多学习的方法,今天回过头来回顾一下,以示后来者。

 

学习大的方针:具体方法,使用书籍很多人都讲过,也讲的很详细,但是大的方针却时常看到有讨论,比如有的人提倡多看书,有的人提倡直接编,利用书为参考,甚至有的人说他编程就是从MSDN上学的。这些问题我也曾迷茫过,也曾偏激过,当学了很久却感觉没有什么收获,结果一天的实际编程却感觉收获匪浅的时候我曾以为学习编程不就是人们说的“编!编!编!”,“学习编程就是去编” 吗?于是丢开数本,投入自己感兴趣的东西的开发。可是编程碰到疑惑之处网上四处求解,CSDNgoogle USENET上四处发帖询问,却常常难以释疑之时,有的时候看了看书,却豁然开朗,原来大师们都已经对此问题习以为常,并当常识讲解出来,一时大叹,读一本好书真是如拨云雾。又常常长时间看书,让实际编程荒废。

 

      现在回过头来想想,常常是矫枉过正,徘徊在编与学之间。孔子谈学习之道:“学而不思则罔,思而不学则殆。”其实可以套用到C++的学习中来,那就是“编而不学则罔,学而不编则殆”。也就是说,光去编程而忽视了学习,就会学编越糊涂,光是学习,却不去实际编写程序,那么学到后面忘了前面,相当于什么都没有学到。个人提倡是将所有的时间都对半分,一半时间用来仔细研读书本对照实践,一半时间用来对你自己感兴趣的题目进行实际的编程。这样一方面保证了学习进度,让你感觉到每天的收获,而且能在实际编程中找到成就感,运用所学并积累解决实际中碰到问题的经验,两者互为补充。这样才是最好的学习C++的方法,应该也适用于所有的编程当中。

 

对于是否先学C语言是有很多争议的,个人认为看情况。看个人想法,志向。目标只在编写日常普通应用程序的,可以不学C,甚至个人感觉学C++也不见得好,直接去学JAVAC#或者Python这样的脚本语言都要更好,但是对于目标在编写效率较高的程序,如系统开发的话,那么学习之路坎坷异常,别的不说,个人推荐首先从C学起,并且一边学习一些基础知识,比如电脑硬件系统相关的知识,甚至基础的汇编语言,甚至操作系统原理,编译原理。当然个人推荐数学学好,以方便研究算法。同时在C时代就开始学习各类算法,假如要学windows编程的话这时也可以学习Windows SDK编程了。因为C++对于算法的学习和windows编程的理解不见得有甚好处。这时最困难的时期,也是决定你真正将来的时期,毕竟这些都是非常基础的,却也是非常关键的东西。就像建房高度关键在于地基牢不牢固一样。当然,假如已经错过了这样的时期,已经学习了C++MFC的话,那么将来结束完一段时间的C++MFC学习,也推荐回头看看算法知识和windows SDK。有需要加快简单程序的编写,后期开发windows程序,利用C#.Net技术,稍微的学习一下应该不难了。个人感觉如此,我从不知道C#是什么,尚能编写蹩脚的.Net程序,对于掌握了这样的基础,再学习过C#的话,编写起来应该不成问题。当然有人也说可以用C++编写.NET程序,说实话个人也有过这样的尝试,但是总感觉大堆的::^不如C#来的方便,既然都已经到这份上了,为什么不直接用C#算了呢?

 

后面的一大堆都是个人初步的经验,不一定正确,前面的实在是个人的实际经验。希望对大家有帮助。

 

 

分类:  C++ 
标签:  C++ 

Posted By 九天雁翎 at 九天雁翎的博客 on 2007年11月24日

前一篇: 多鼠标技术的应用,请有多个鼠标的兄弟帮我测试一下 后一篇: 同一台电脑两个鼠标玩的五子棋,请大家试试