OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 我的程序生涯-潘爱民

共1条 1/1 1 跳转至

我的程序生涯-潘爱民

菜鸟
2003-06-12 18:11:00    评分
这段时间我回顾了一下我的程序生涯,发现我的程序生涯在某种程度上反映了中国软件 十几年来的发展历程,下面这张表是一个基本的概况。   (表略)   我是从上了高中之后才听说计算机的,幸运的是,我所在的嘉兴第一中学有一个很好的 微机实验室,当时的微机常被称为娃娃机,现在看起来这个叫法也还确切。由于我的数 学成绩突出,在高中一年级获准参加计算机兴趣小组。所以我的程序生涯就从这里开始 了。 中学——程序之初 中学时候还谈不上软件开发,只是凭兴趣编制一些小程序,偶尔也编几个稍大一点的程 序。有两件事情特别值得一提: 当时我们只用BAISC,它有一种很特别的程序叫“一行程序”,也就是说,在一行内完成 一个程序。因为BASIC语句一行只能容纳254个字符,而且一行内不许使用跳转与判断语 句,所以一行程序不能完成很复杂的功能,但是有些有一定规律但又不很规则的图案打 印或者计算任务可以由一行程序来完成。这是一种很好的游戏活动,非常适合于中学生 的智力开发和锻炼。不知道现在是否还有类似这种形式的活动。 中学期间我编过几个规模稍大一些的软件,BASIC代码行达到几千行(当时的16位机器内 存加起来只有64K,用户程序可用内存不超过30K)。有意思的是,我在程序中还调用了我 自己写的一段汇编,这段汇编直接操作图形显示缓冲区,实现图形的快速移动。AppleI I机器使用6502处理器,当时也没有学过任何微机和操作系统知识,我记得那时一直不明 白寄存器的概念,但是居然也能写出可以运行的汇编代码来,现在想来有点不可思议。 不过从这件事情上,我也想到,我们经常听到有关青少年计算机奇迹的事情都是有可能 的。他们可以自己编写代码制造病毒,可以攻击网络系统。青少年的想象力很丰富,潜 力很大。 中学期间,虽然没有象样的成绩,而且还直接影响了我的功课,但是在计算机方面所做 的许多工作使我非常充实。不过,因为计算机的神秘性对我已经不再存在,所以我上大 学还是选择了我当时非常钟情的数学——免试进入南开大学数学系。 大学——兴趣 我在大学期间,花在计算机方面的精力要比数学方面多得多,在二年级时候,我有幸进 入了南开计算机系模式识别实验室从事软件方面的工作。当时有一台286机器可供我使用 ,良好的工作条件使我有机会打下扎实的基础。 学习汇编语言。汇编语言在当时很盛行,我写了不少的汇编程序,连界面(下拉菜单)都 用汇编来写,对于10h中断和21h中断中常用的功能非常熟,不需要查参考书就可以写出 功能调用来。当时我在对一块图像卡编程时需要访问扩展内存(地址0xa00000),所以我 研究了286保护模式的编程技术,主要阅读15h中断的汇编代码,最终解决了保护模式的 切换和编程问题。保护模式与实模式的切换在今天已经意义不大,但当时来讲,由于DO S是实模式下运行的操作系统,保护模式往往是可望而不可及的。 PASCAL语言。PASCAL语言作为一种结构化编程语言,加上Turbo Pascal友好的集成开发 环境,当时确实风靡一时。对于我来说,汇编语言再加上Turbo Pascal开发环境,确实 是无往而不利。PASCAL语言具有很好的可读性,加上Turbo Pascal实现了单元(unit)管 理功能,是学生最为喜欢的编程语言。我使用的Turbo Pascal最高版本为5.0。据说到6 .0已经成了面向对象的Pascal语言了。 大学时代我主要靠自学的手段学习计算机软件知识,而且几乎没有与别人交流的机会。 但是南开很好的学习上机条件使我在DOS操作系统、汇编语言、PASCAL语言以及80286保 护模式编程这些方面得到了很大的提高,我很怀念那段时光,那是我学习生涯中最美好 的一个阶段。当我临近毕业的时候,Turbo C 2.0逐渐传播开来,我开始从Turbo Pasca l转向Turbo C。 研究生——狂学 虽然我在大学期间已经很了解清华了,但真正让我认识清华还是在自动化系读研究生这 一段疯狂的学习和工作之中。大学期间扎实的基础足以让我应付任何一个编程难题,而 且我又很快转到Turbo C上来,有了这些工具,作为清华的学生,干点课余之事就很正常 了。 我当时在一家数据工程公司兼职,该公司云集了清华计算机系一群高手,我跟他们在一 起,真是受益匪浅。这些高手们每个人都有独挡一面之才华,对于汇编和C语言都非常精 通。由于DOS操作系统的简单性和开放性,在DOS平台上我们几乎可以完成任何一件事情 ,再底层的难题我们都有办法解决,我想那个时代的每一个高手都会有这样的经历和体 会。这几年我和这些朋友们失去了联系,不知道他们现在怎么样,我想他们都会很不错 。 群体的作用对我帮助很大,而且我在软件方面的知识面也逐渐开阔起来。在商业公司这 样的环境中,我接触到了许多其他的编程技术,如FoxBase、汉字处理、简单的网络编程 等,有些技术在当时非常新,比如多媒体编程,包括声卡、视频卡、触摸屏等编程技术 。 很快Borland C++ 3.1流行开来,这是DOS平台上最优秀的开发工具。Borland C++的集成 开发环境加上相关的一些辅助工具,如Turbo Debugger等,是一个功能很强大的软件开 发工具。从C语言到C++语言是一个很自然的迁移过程,尽管当时很多人在使用BC,但他 们往往不涉及到面向对象编程,而我则很快领会了面向对象的思想,建立了一套自己的 界面工具类库。我这一套界面工具类库很小,参照Turbo Vision的思想,模仿Windows 3.1的风格(当然功能上差远了),大约只有2000多行代码,而且支持汉字的显示。尽管规 模很小,但也包括消息机制,下拉菜单、窗口、对话框、按钮、编辑框等界面元素,在 随后的毕业论文工作中我用到了这套工具,然后弃之不用了,因为我又转向Windows编程 了,倒是我几个同学用这套工具做了些程序。 研究生期间是我对计算机开发技术最有热情的一段时间,而且学习的效果也很好。清华 大学的风气比较注重实用,在技术的选择上比较超前,群体气氛又好,这是我学习最见 成效的一段时间。当然,我并没有因为这些事情而耽误我的论文工作,这两者是相辅相 成的。我想清华现在的学生会做得更好、学得更好吧。 职业生涯——致远 从清华毕业我来到了一墙之隔的北大,在北大计算机研究所,我开始了计算机软件开发 的职业生涯。尽管我以前一直没有把计算机当作自己的本职专业,但事实上我一直偏向 于软件开发。最终我还是选择了职业软件开发工作。我在北大计算机研究所的软件开发 经历可以分为两个阶段: (一)1994年到1997年 这一段时间我精力集中在应用开发上。职业开发人员与学生一个很大的区别是,你对技 术、平台和工具的选择必须符合应用开发的需要,不能像学生那样随心所欲。我在这三 年的开发过程中,基本上仅局限于Windows平台、Visual C++以及MFC。幸好我的工作面 比较宽,涉及到系统的多个方面,所以我对Visual C++以及MFC的使用比较全面,三年工 作下来之后,我对于Windows应用开发已经非常明白了。 由于我们使用VC和MFC比较早,当时基本上没有资料,我一直鼓励其他人去读一读VC自带 的一本“开发者指南”,这本书包含在VC的联机帮助中,据说是Inside Visual C++的前 身,从内容上看是有可能的。当时我没有看过其他的书,平时碰到问题往往通过MFC的源 码、VC的例子程序以及联机帮助来解决。现在学习VC和MFC要方便多了,书店里这方面的 书琳琅满目,而且身边往往高手如云。尽管我从MFC的源码中学到了很多东西,但这是在 没有办法的情况下而为之,我不太赞成研究源码,除非是为了学习的目的。   (二)1997年到1999年 由于健康的原因,我被迫从开发人员的岗位上撤了下来,从97年下半年开始,我不再从 事直接的开发工作,改做技术支持工作,是对开发人员的技术支持,不是最终用户的技 术支持。这是我程序生涯中最暗淡的日子,但我还是努力让自己吸取营养,来填充自己 对知识的渴望和需求。 这段时间,我考虑的焦点问题是如何把软件做得更好,具体来说,就是组件化程序设计 ,进一步具体化,我研究COM,并设法把COM技术应用到其他的开发组中,为其他人提供 这方面的技术支持。我的工作做得不是很成功,COM的应用不是那么直截了当的,这在当 时的条件下是很难克服的。   我有必要再次强调群体的好处,北大计算机研究所内部高手如云,大家都是同事关系, 所以交流起来比较方便,在这样的环境下,技术上的长进可以快得多。我又一次得益于 环境的优势。 从学校环境来讲,我从南开到清华再到北大,尽管三个学校的校园都很优美,南开有新 开湖和马蹄湖,清华有水木和荷塘,北大有未名湖和博雅塔。但是在我的职业程序生涯 散步,从她幽静而深沉的气息中汲取灵感。 结束语 我是一名普通的程序员,在软件开发队伍中算一名老兵了,以上所介绍的经历是我十几 年的路,走的路很长,但是没有值得一提的成绩。也许我的介绍中有一些偏颇之处,请 大家不必挑刺,因为这只是我的一点感受,真实的感受,它所反映的仅仅是一个侧面。



关键词: 我的     程序     生涯     潘爱民     爱民     计算机     当时     编程    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]