microsoftxiao

记忆 流逝

导航

编程心得

      编程的心得
                -microsoftxiao@神杀中龙


1. 我学编程是什么时候了?应该是高一下上学期的看到开天辟地的Visual Basic
和 Visual Fox Pro的时候。
   我只根据记忆来写吧。 当时看开天辟地的Visual Basic只记得要怎么在VB6里添
加按钮,怎么拖拽,如何如何。只是感性的认识。记得里面的解说员的声音很好听。
另外就是记得开头讲的有高几种编程语言, 从早期机器码,再到汇编,又到高级语言。
有C, 还有别的。 另外还讲了什么局部变量, 全局变量,说全局变量就类似普通话
在全国都适用,非常形象的比喻。为了学Visual Basic我还专门买了一本Visual Basic的书。
不过在掌握了如何定义变量,如何制作界面, 如何如何后, 不知什么原因我就去学Visual C
去了。 现在推测我可能是受了某个帖子里的话说,专业的程序员要用C语言,当时我不太知道
为什么非要用C语言。后来 可能还是某个帖子说 Visual Basic不能在Linux上用。
恩, 我接触Linux是因为买电脑的时候带了张Xteam Linux的光盘, 于是我就装上了。
但是由于我只是想编程,所以一直都没学什么编译内核啊,在Linux建立网站啊,做某个应用
的服务器啊。不过由于总是要用windows,所以Linux的学习很缓慢,另外也和个人好高务远
有管。 直到有一天我去哈尔滨买了张盗版的Visual C++ 6.0, 后来又买了Visual C++实用
教程,我就开始用C++来编程了。
2. 学习C++和Visual C++
   学习这本书的时候,初次学的时候虽然没有网友的那些痛苦,为什么呢?因为看这本书的时候
基本上什么都是新鲜的,什么都是未知的,什么都是神秘的,所以我根本没有困惑什么,只是
默默的告诉自己最好把它们记住,或者通过做些练习, 编写些代码来巩固下记忆,
所以有点像海绵, 直到这些基础的东西都用个差不多的时候,再学其他东西,发现很多东西
是需要用基础的东西来解释的。 就比方说任何语言都有变量,那变量是什么?就是块内存。
这是现在的理解。当时的理解可能就是变量能存住东西,具体存到那里了也不太清楚,反正
是存在计算机里就是了。这个阶段的时候我还看了《边学边用Visual C++编程》,这本书
的最初几章就是讲如何用Windows API来写个最基本的窗口。当初我大概抄写了三四次才把窗口
搞出来,以至于后来不知道我又做了多少窗口,知道今天除了用模板生成窗口,就是自己
也总是从头开始写。因为学Direct3D就是从一个窗口开始。或者用MFC,那是后话了。
学这本书做窗口上的控件, 在哪在哪就没有Visual Basic方便了, 总是需要用函数的参数
来控制具体的控件的位置啊, 大小啊等,做界面很罗嗦。不过好在我编程不是为了做界面。
我在网上不知道哪里看了比《边学边用Linux》书里对于Linux更详细的讲述Linux的诞生过程
及其和UNIX GNU计划的帖子。恩, 因为C语言和UNIX 和Linux的关系,所以只要严格按照标准
C库的写法,是可以在windows和Linux下跨平台的。所以我也就不太在乎界面了。
但是尽管如此学习《边学边用Visual C++》的过程中,这本书并没有系统的讲解C语言的语法,
知道后来我买的一本《初级程序员》的书里,系统的讲解了C的语法,这本书我是看来看去,
程序写了又写, 在流程控制上开始的时候我花很大力气都看不太懂。把一个while转为for
把for再转为do while, 能做到这点,当时我就很高兴了,而今天看了这是多么基础的转换啊。
而且当时学流程控制的时候, 一个简单的for循环是容易理解的,而弄上一堆的for,
再配合while do - while if else, 再加上一堆数组,我就蒙了,可是《初级程序员》书
上就有很多题目,比如填空啊, 选择啊,考察的就是流程控制,还有数据结构等。
所以当时的我真不知道该怎么说好,反正是个因自己的理解力不行而进展缓慢的痛苦过程。
不过值得庆幸的是指针这个对于有的初学者头疼的问题反而没让我头疼。不过现在仍然不是
很经常用基于指针的链表,树来处理问题,阅读相关的代码也感觉很吃力,必须深入仔细
看才行。 看那本《Visual C++实用教程》的时候,我几是照着书抄,然后逐步理解而已,
所以没费什么劲。后来又买了本更厚的《程序员》的书,这本书可以说是我认为我买的书
最好的一本了,这是相对于初学编程的来说,这本书系统的讲解了有关计算机硬件, 软件,
网络, 多媒体, 操作系统,数据库,软件工程,还有算法数据结构。虽然讲的不是非常细,
(今天看来), 但是确把一个程序员需要了解的几乎全给来个概括,这在今天看来真是很重要。
因为我发现不少网友问的几乎都是基础的问题,书上都有答案的。
后来不知道什么时候,我听说了用DirectX可以编游戏,于是我就去学DirectX中的DirectDraw了。
当时好象是DirectX 8, 里面有DirectX 7的接口, 但是由于但是认知的问题,还不知道
Direct3D 8是对DirectDraw和Direct3D的整合,所以我用DirectDraw就绘制来绘制去,
但是基本的绘制是绘制了,但是当我想做一个俄罗斯方块的时候,那时我看了很多代码,
但是很多都看不懂, 人家弄了一堆的数组, 算法来控制,我就看不懂了。所以后来放弃了。
而今天看来, 做俄罗斯方块远没当初那么麻烦。那那段时间我做什么了呢?
我去看C++了, 因为我发现我阅读的代码中总是有vector这类的东西,但是这东西是什么呢?
我不知道, 于是搜索,发现是STL中的东西, 或者说是C++标准库中的东西,于是我又买了
本《C++编程思想》, 我的C++就是这本书帮助我的, 这本书既有晦涩的地方,又有很清晰易懂
的地方, 我现在也经常看。
3. 在前面几个阶段中, 看《程序员》书时就有数据结构,什么线性表,栈, 队列, 二叉树
链表, 这些结构, 我真不知道该如何使用这些结构,我非常困惑中,所以那时几次三番的我
都放弃了继续学习数据结构,但是我几次三番的看到网上说数据结构很重要,可是我就是不知道
究竟哪里重要, 所以在看《程序员》时, 我控制来,控制去,控制的都是int float double
这些基本类型, 一想把类型转为struct, 我就不知所措了。直到后来可能看《C++编程思想》
的时候,好象是渐渐理解了struct和class的意义, 无非就是把基本类型包装成新的复合类型,
然后这个类型就可以把它当做新的类型, 于是再写线性表 链表 栈 队列就感觉好多了,
至少我很高兴, 因为我可以把曾经困惑的东西用起来了。但是仍然有苦恼,
就是我在处理循环链表, 处理二叉树时, 当然我说的处理都是书上的例子,那时我就看不懂,
可以说一头雾水, 链表的指针指向来指向去, 究竟指向哪了?不过现在看起来就好了很多,
可能是我看的时间多了就习惯了的缘故吧, 不过和非常熟练的网友还有很大距离。
不过至少现在这些数据结构不再另我害怕了,设置有点喜欢了。后来我又乱学习了几个引擎的
使用, 都是入门了就扔, 有了点对引擎的认识, 后来就是现在了。

想一想,写这么多字算是少了, 还能写的更多。不过也能写的更少。其实就是两个字啊,坚持。

posted on 2007-02-07 13:49  龙巢NET刀  阅读(389)  评论(0)    收藏  举报