• C,VB和C#,我的编程三部曲


        本人来自鄱阳湖边的一个小地方,上大学前基本没有接触电脑,只是偶而在银行柜台后面看到有人操作电脑,高中由学BASIC的课程,未认真听,考试不及格,失去了稀缺的上机机会。总之一个标准的电脑文盲。
        1997年经过高考,进入的东南大学,一个和计算机没多大关系的专业。但也开始基础电脑。第一次上机体验已然忘记了,只记得开始使用软盘传播各种东西,当时用过PC-TOOLS,HD-COPY,曾见人用QPEG看图片。也开始学习WIN95和Word,一个学期后计算机考试及格,算是过了国家一级了。
    开始学C语言了,之前为学C语言,曾认真自学BASIC,假期在家,借了个小霸王学习机,按照借来的书开始自学BASIC,居然也通了一窍,知道了指令,变量,赋值,数值,流程等基本编程概念,手写了一个模拟学习机的打字游戏的小程序,带到学校居然调试成功。日后想起这些,总有点自命不凡的觉得自己有点天赋。
    在后来的学习C语言中,由于有些BASIC的基础,因此也就无很大困难,只是指针那块有点困惑,认真思考后也就所有觉悟了。不知为何,老师讲了一句:程序要注意代码格式。这我记得很清楚并一直坚持。一些顺利,期末的C语言考试也就及格。
        要考C语言二级了,学校很重视,教育抓得紧,大家也紧张,不就我还是顺利过了C语言二级。
        从此以后,我和我同学在编程方面开始拉开差距,因为过了二级,他们已经失去了学习编程的动力,而我一直保持着自发的兴趣。当时我某个周末都会在学校机房度过4个小时。试验着各种编程书上的例子。渐渐的我就开始搞起图形,想要实现鼠标点菜单的功能,菜单要带有三维效果,当时是TC2.0,使用DOS,我想。开始时绘制英文菜单,后来使用了UCDOS的16点阵的汉字字库文件来逐点绘制汉字来实现汉字菜单,最后调用H33中断来使用鼠标,终于凑齐了所想要的功能,后来又实现乐文本方式下的鼠标点菜单。此外还写诸如直接读取磁盘数据的程序。当时写了不少小程序,但都随着时间的流失而不复存在,只在我的记忆中留下了一些影子。
        大二下学期还自学过全国三级偏硬,当时找了一个计算机硬件基础的书,比较厚,认真自学了几个月也就考试及格了。现在本人可怜的那点硬件知识大部分源于那时,而刚入门的汇编则基本忘光。
    C语言时代是我编程历史的上古时期,这个时期很重要,我在那时打下了编程的基础,包括基本的编程知识,结构化编程思想,基本的软硬件知识,良好的代码书写格式。
        1998年5五月,大二下学期,本人开始接触VB,原因很偶然,某天在校园中走路,听到前面某人对另一人说:VB操作数据库能力很强。之前我也听说过VB,因此抱着学习的态度买了本VB从入门到精通,邮电出版社出版的,由于当时上机条件有限,并未上机实践过。
        大三了,搬到校本部,上机条件大为改善,可以用PII400的Win98的机器了。开始接触网络,记得当时有人玩一种叫泥土的文本网络游戏。我也玩了几个小时,觉得没意思,以后在也没玩过。还开始使用CTerm上校内BBS,开始用IE上网。
    当时正值网络泡沫,很多网络公司到学校里来宣传,还有什么注册一个用户送什么东西的事情。印象比较深的是Chinaren创始人,一个姓周的跑过来造势,当时听众很多,女主持人很三八。当时有人给Chinaren泼冷水,质问网站盈利方式,台上讲话的人打太极糊弄过去了(现在回想,此君头脑蛮清醒的)。此后我在Chinaren主页大巴上挂了一个个人主页,自学了使用DW和Flash做简单的网页,开始和别人交换链接。但不幸,Chinaren主页大巴服务器崩溃,永久损失了30万份个人主页,我的也没了,我写了个电子邮件给Chinaren表示不满,不就网络泡沫破裂,Chinaren被搜狐收购了。
        由于计算机条件改善了,本人开始认真学习VB,VB的初学过程现在忘记了,只记得有次用DAO连接数据库发生错误,周围人不懂,上BBS求救也无人响应,郁闷了一个多星期,后来发现原来是忘记设置数据库文件名。甚为吐血。
        本人开始用VB编一些小程序,比如模拟浮动工具条,调用Win32API绘图,想更多的学习Win32API,被图书馆中3本很厚的Win32API参考手册给吓跑了。
    大三开始玩星际,申请了一直使用到现在的QQ号。有时在学校机房里玩星际被老师揪了出来。
        大四时有幸参与了一个VB项目,苦干了一个多月,没得到什么好处,倒是强化了VB编程水平,能使用VB写过千行的程序。
        冒着烟毕业了,实现了学非所用,用非所学的理想,当了一个程序员,开始了程序员这个很有前途的职业。第一份工作在一个集体企业,呆了10个月。开始学习实际工程中的VB编程。实际工程中的VB程序量大,代码行数多,结构复杂,曾经看了一个if和for套嵌的程序段,套了十多层,一百多行代码,我看了三天才看懂,然后自己修改了一段程序,使之套嵌了只有5层。开始学习使用VB编写类,实践了一些基本的面向对象的编程思想。
    开始接触工业级的GUI编程,当时用VB绘制曲线图,数据来自数据库,鼠标在上面移动时会显示当前数据。
        第一份工作我学到了很多东西,不仅仅是编程水平,还有写文档的基础知识,程序用户界面的排版,此外还砍去了多余的自尊心,削去了人格上的一些边边角角。期间还出了不短的差,算是对出差有所了解。
        由于种种原因离开了那家国企,到了一个小公司,公司很新,是我目前所见过的最先进的公司,其实谈不上很先进,只是有专门的规划部门,有完整的源代码管理。我所见的其他公司没有这些,因此该公司是我所见过的最先进的公司。
    在该公司开始接触ASP程序,使用VB写组件,vbscript写页面,面对这种比较新的编程模式,本人开始还不大适应,郁闷了一段时间后也就适应了。开始使用ADO,开始接触SQLServer。
        后来用VB写了一个流程图设计器,一万多行代码,这是本人第一个设计器,有点原始。
        2002年开始使用VB.NET,是本人使用C#的前奏。当时用VB.NET写一个WinForm程序,使用ADO.NET操作数据库,开始使用简单的数据库的设计模式。这个程序还包含了一个类似窗体设计器的功能,用于设计其他程序在实际运行中的用户界面。GUI做的比较糙,但XML,XSL写得比较深。也算是本人XML编程的起步了。其中还搞了一个WordVBA调用VB.NET程序的一个小玩意。
        此后还用VB.NET给VS.NET开发环境写了点宏,用于自动生成代码或其他操作。
        2003年,用VB写了一个报表工具,这是本人使用VB写GUI的颠峰之作,六万多行代码,程序结构很复杂,动用了VB大部分的语法特性。本人很多现代的GUI编程思想都是当时产生的。
        该程序也是本人用VB的收山之作,此后很少用VB写超过2000行的程序,VB渐渐淡出主角,现在本人只是用VB快速的写些小程序。
        写完那个VB.NET程序后,本人开始接触一些C#小程序,开始学习C#语言了。2003年的时候开始接手一个烂尾的ASP.NET程序,C#写的,15000行代码,代码写得有点垃圾,但程序结构还还行,捣鼓了几个星期后搞定了。在这个程序中,开始接受ASP.NET编程的基本思想,个人认为其中包含了点服务器页面文档的对象化的思想。
        后来用C#写了一个从UserControl做起富样式文档编辑器,64000行代码,很复杂,使用了很多GUI技巧,并写成了一个组件,可是在一个WinForm程序中运行,也可以嵌入IE页面中运行。当时服务器为J2EE,客户端为IE加内嵌的.NET组件,为了能让这个有点另类的B/S程序顺利运行而吐了不少血。
        本人是从去年开始写XDesigner系列软件,C#写的。这个程序是本人这么多年来GUI编程的一个总结,包含了图形操作,文档对象模型,用户消息处理,脚本控制等技术。目前总共超过了十万行代码。
        以上是本人对这么几年编程历史记得流水帐,只是希望能对编程初学者有所借鉴。在这个过程中与时俱进的换了一些语言,这也反映了IT行业新技术出现快的特点。对于各种计算机编程语言,还是一句老话:语言不重要,思想才重要。
        IT行业新技术出现快,但更新则需要所有考虑。比如VB,目前我比较少用,很大一部分是因为VB不大适合搞复杂的GUI,这点我经历过。但VB学习容易,开发速度快,由于有解释性语言的特性,可以在调试模式下修改程序,这点对快速调试非常有帮助,因此VB可用于快速开发中小型程序。因为大量的程序是不需要可扩展性,效率不要求很高,但可能要求开发速度快,而且VB历史悠久,因此VB还必然在很多地方使用,比如系统维护程序,各种家用程序,各种小工具等等。在Win32桌面程序中,从数量上说VB程序还是最多的。
        最后建议编程初学者,编程需要自发的兴趣,要有创新性思维能力,最好能有点天赋。不断的学习也很重要,旧技术久经考验,而且人有化腐朽为神奇的能力,因此不要随便扔掉。
        

    XDesigner-枫阁雅林 2006-6-4

  • 相关阅读:
    20180925-3 效能分析
    20180925-7 规格说明书-吉林市2日游
    20180918博客作业
    第二周例行报告
    2018091-2博客作业
    容器(list集合)
    给应届生们的建议(一定要看哦)!
    MySQL 和 JDBC(Java数据库连接)
    Oracle常用数据库对象(片段)
    7353. 【2021.11.06NOIP提高A组模拟】qaq (qaq)
  • 原文地址:https://www.cnblogs.com/xdesigner/p/417116.html
Copyright © 2020-2023  润新知