编程小见

来源:互联网 发布:淘宝怎样查看买家电话 编辑:程序博客网 时间:2024/05/19 12:24
首先声明,我不是高手!呵呵!甚至连中手都不是,从出生到现在写过的code充其量也就一万来行,所以论经验,呵呵!少至又少,本人只是有一点想法,想与大家分享。
me从大二开始涉足编程,起初是因为寂寞,找不到激情,学编程是为了让自己不至于在这个沉沦的大学校园里更加沉论,当初不知学什么语言合适,看过c#,c,VB.但后来看了几本关于c++的书后。彻底就被c++所迷恋,c++的那种抽象封装的思想太棒了,因为有c的基础,所以很快就上手了。(by the way!并不是学习c++之前不宜学c,其实c也是一门很强的语言,只是很难应用于大的项目,me就觉着谭浩强先生的《c程序设计》就是一本很好的入门教程,很多东西讲得很清楚,比如内存是如何分配的等等,值得多翻几遍。)
后来回头看看,其实学什么语言并不重要,关键是一种思想:如何将现实世界的问题抽象成数据。仅此而已,而选择语言的标准及自己最熟悉最顺手即可。
我学c++用了两个星期的时候,(大体理解),面向对象的思想并不好理解,再多看了几本书后才有种豁然开朗的感觉,对象就好比一台CD机,你对CD机的操作无非PLAY,STOP,REPLAY, 之类,但CD的内部个个部件是怎样的顺序工作的,你没有知道的必要,这就是封装,PLAY STOP 按钮就是CD制造商提供给我么接口(INTERFACE)。
重在理解,C++的面向对象的思想并不难理解,多看几个例子就搞定了,重要的是选择一本合适的书,个人以为钱能先生的书不错。比较通俗易懂。
如果你身边有一个作程序的前辈,那将是最宝贵的资源,ME当时就不知该学什么东东,
由于在用VC++,所以借了一本讲MFC的书,以为这就是编程的全部,结果就盲目的学起了MFC可看了半天愣是没看懂,因为MFC是很庞大的体系,个人以为初学的人不要立马就学这东西,因为你无法从整体上理解它,“之间树木,不见森林”不迷失方向才怪呢!加上MFC内部千丝万缕的联系,我就迷实在了里面,一个月后,我放弃了。
现在回头看来,MFC不就是那么一个框架吗!只不过对SDK作了封装,打个比方,你想给张三大电话,号码为54321,你先拨‘5’,然后拨‘4’-----最后拨‘1’。
而我现在给你一部电话,你只需要按’张三’这个按钮就可以了代替以上所有的步骤,
用带有‘123456789’的电话就好比用SDK方式编程,而用带有‘张三’的电话就好比用MFC写程序。从一定程度上MFC简化了SDK,但也失去了很多灵活性。个人观点,呵呵!
还有MFC中main()函数是隐藏的,被封装了,初学者不知该从何处入手。并且WINDOWS的数据类型很另类,像WORD DWORD,HANDLE等等,这些都在WINDOWS.H中定义了,而初学的人很难理解,(我当时就傻了几天)。
如果你实在很想学WINDOWS编程,建议你去学SDK编程,从最基本的东西做起,做
CONSOLE程序,老老实实的写每一步,包括WINMAIN(),WINPROC(),等等。
其实SDK也不是很难理解,MICROSOFT创造了WINDOWS,同时提供给了我们基于WINDOWS的编程接口(API),其实就是若干个函数,就像CD上的PLAY,STOP一样,你通过调用这些函数于操作系统对话,让操作系统完成你的要求。
你可能要问,我不知道该调用哪一个函数啊?很简单,查手册呗!或是MSDN(最完整的),有一点要说的:API函数通常使用匈牙利命名法,所以你一定要了解这种命名法,API函数的名字都不短,参数更是一堆堆的,所以一定要有耐心啊!
ME认为掌握了语言后就要看《数据结构》,一定要静下心来看,你看他之前和之后对问题的分析思路是坚决不同的,(我是学自动控制的,所以已开始不知道其重要性,再用MFC作了一个仿WINDOWS的计算器(成功了,但算法很兰,我自己都觉得差)后,才看的数据结构,结果发现很多很乱的思路完全可以用数据结构的知识解决 )
说到数据结构,就不得不说说STL(标准模板库),他为我们提供了几乎所有的数据类型,以模板的形式,很通用。
据说离散数学也是一门必看的课程,但我没看,所以也没有发言权。
ME以为最好能多看点关于操作系统的书,了解他是如何工作的,进程(PROCESS)线程(THREAD)等等,(新概念不少啊),因为我是学硬件的,所以很多东西一看就能联想到硬件是如何工作的,理解起来就不是很难。
汇编语言一定要学,不过可以等到你上升到更高的层次时,说实话,不好学,我现在正在努力,能不能学好还是另一回事,因为你必须对硬件比较了解,比如说8086的工作方式,寄存器的使用,内存的分配等等,呵呵,自己找本书肯把!
提一点,选择自己的教材很重要,也是一个难题,很多教材简直就是垃圾,对读者很不负责,不仅错误很多,还有抄袭的嫌疑。最好是找大家公认的比较经典的看,最近机械工业出版社出的一套书就不错,只是价钱不低,(有做广告的嫌疑啊,呵呵!),译者比较负责。
关于学习方法的问题,书一定要多看,但动手更重要,如果你一味得向脑子里灌,就会失去热情,这是挑战一下自己,做一个小项目,比如:字符串处理程序,银行客户管理,等等,只有这时你才能调动你的全部大脑细胞,使身体充满激情,还有比充满激情的时刻更幸福的呢?还有什么比调试出结果更令人兴奋的呢?
很多东西只有在动手时才会学会,“实践是了解到理解的必经之路!”(谁说的?不记得了,AO I SAID,^-^ )
由于ME现在自认为自己还是一个菜鸟,所以在见识与理解上不够HIGH,一点感悟,想与他人分享,以免他人少走弯路,毕竟人生的时间是有限的,(ME着实走了很多弯路啊,555)。
不求被认可,路人一言,信否自便!
 
原创粉丝点击