组合语言的艺术

 ***再次声明,此文章不是出自本人之手,自认为作者写不错,作者对计算机,人生,文化以及价值的理解已经到了一定的境界了,如有侵犯原创作者的权益,还请谅解

 

                                                                             组合语言的艺术

    我个人对此感受极为深切,我原是个十足的外行,1978年第一次接触电脑,曾以不到两周的时间,就学会电脑操作,并应用「培基语言」设计完成“仓颉输入”程式。当时我认为培基语言易学易用,是电脑上最好的工具。
    后来,我开始用培基语言设计“仓颉向量组字”程式,每秒可生成两个字,当时与我合作的宏基公司建议我采用组合语言,他们说组字程式速度要快,培基语言不能胜任。如改用组合语言,效率可提高十倍,由此开始了我与组合语言的不解之缘。1979年9月我们正式推出了由国人自行设计、具有完整的电脑功能、可运用数万中文字的“天龙中文电脑”。
    宏基公司动用了三位资深工程师,采用 Z80 MCZ系统,以六个月的时间完成了向量组字及系统程式,记忆空间占60KB,处理速度每秒约组成30字。
    这是我首次发现到组合语言的威力,深究之下,才理解到电脑的全部工作原理。简单说来,组合语言就是组合电脑所有功能的控制指令,利用它,就可以直接控制电脑。
    其他高阶语言,只是让人省事,用一些格式化的手续,把人的想法化为过程的指令,这种情形就相当于为了迁就开车的人,建了密如蛛网的高速公路。本来走路只要几分钟就可到达的地方,以车代步的结果,反而需要耗费半个小时。
    1980年,我决定自己动手,又重新设计了一套字数较多,字形较美观的组字程式。只用了三个月的时间,结果不仅记忆空间缩小了三分之一,速度也快了十倍,达到每秒 300字。这个产品,就是1苹果机上用的「汉卡」。
    1983年,再经分析,我发现以往写的程式很不精简,技术也不成熟。我坚信中文字形在电脑上的应用,将是中国文化存亡兴衰的根本因素,不仅值得投注自己的时间及精力,且也有此必要。所以我又拋掉了一切,重头设计,加入更多的变化参数,并根据人的辨识原理,设计成第三代至第五代等多种字形产生器。每一代之间,速度都明显地提高,功能也不断加强。在这样一再重覆的摸索中,尝试了各种可行的途径,充份认识了组合语言的特性及长处。
    由于组合语言灵活无比的特性,我发现它就如同画家的画笔一般,只为了牟利,可以用它画成各种廉价速成的商品;一旦投入自己的理想与心智,画笔就不再只是一枝笔,而成为人心与外界的界面,画出的作品立时升华成为艺术,进入一个更高的境界!
    1985年,我再次重新设计规划,采用人的智能原则,把人写字、认字的观念化为资料结构,程式只是用来阐释资料、控制电脑的界面。该字库的字形可做到无级次放大缩小,字体、字型皆能任意变化 (每字可以产生数亿种变形) 。而且除了现今各种字典已收的六万余字外,还可以组成完全符合中文规则的新字六百万个,足敷未来新时代新观念的发挥应用。
    不仅如此,组字速度又提高了,每秒可以组成 30*30的字形两千个!当然现在用的是15mhz 80286 ,比以往的4.75 mhz的z80 已经快了近六倍。但是,改良后的新程式,其功能的增加,处理过程的繁杂性已远非当年可比。
    这些成果,用了很多特殊的资料结构技巧,不可能经由高阶语言来完成。既然用组合语言所制作的程式能一再大幅度地改进,这就说明了组合语言的弹性极大,效率相去千里。如不痛下苦功钻研,程式写完,能执行就算了事,又怎能领悟其中奥妙?
    所以,我并不认为组合语言祗是一种程式语言而已,它是一种创造艺术品的工具,它能赋与无知无觉的电子机器一种「生命」,由无知进而有知,由有知而生智慧。通过对组合语言的研究探索,我整理出一些规律,写成这本书,以便于理解及应用。但是,要真正将组合语言发展成为艺术,尚有待青年朋友们继续努力,在这个资讯时代,开拓出一片崭新的天地。
    无意义的音符能编成美妙的音乐,无规律的色彩可幻化为缤纷的世界,为什么电脑的机器指令,不能架构出资讯的理性天地?
    这就是艺术,作为艺术家,就必须奉献出自己的心血,以真、善、美为最高境界。
    要达到这种目的,就要认真的作好准备动作,再一步一步地追求下去。

三、利人与利己

    任何一种商业产品,当然是以利益为先,利己后而利人。如果是艺术品创造,则刚刚相反,唯有能忽视己利,沥血泣心地探索,虔诚狂热地奉献,才会迸发出人性的光辉,创造不朽的杰作。
    艺术家之伟大,在于此,人性之可贵,在于此。
    对组合程式语言,有人视为商品,将写作技巧当作专利,轻不示人。相信这也是迄今尚无一本像样的参考书籍之根本原因,我买了不少这类书,但书中除了指令介绍以及编程、侦错的手续外,完全没有技巧的说明,好像懂得指令就可以把程式写好一般。当我自己下了不少功夫,得到了一些心得,再回过头来看那些参考书,才发现连作者本人所举的例子,都是平铺直叙,毫无技巧可言。
    (更正,在序言中我曾提到有本最近出版的“禅-组合语言”,是唯一的例外,希望读者不要错过。)
    多年来,我一直想写本有关组合语言写作技巧的书,可惜都得不到机会。这次,为了实现「整合系统」革命性的计划,所有招收的工程师,一概从头训练。由于没有可用的教材,只好自己动手,于是初步有了讲义,再经修改,便成此书。
    我认为,既然组合语言是种艺术,我们不仅不应该藏私自珍,而且要相互探讨,交流切磋,以期发扬光大。
    不过,技术本身与利用该技术所创造的产品却不能混为一谈,产品是藉以谋生的工具,能够生存,大家才有研究发展的机会,也才能把成果贡献给社会。如果国人不尊重别人的产品权利,只是互相抄袭盗用,或能受惠于一时,但影响所及,人人贪图现成,不事发展,则观念停顿,技术落伍,其后果不堪设想。

    第三节  效率定律

一、效率的定义

    在宇宙中,大至物种的演进、变化,小至个人的工作、运动等,都严格地遵守效率法则。 
    效率的定义是:
    ┌─────────────────────────┐
    │F=E/t,即特定的能量在特定的时、空中所作的「功」。 │
    └─────────────────────────┘
    由上式 F = E/t 可知,特定的「能量」在特定的「时空」中所作的「功」,是一恒定值,既为恒定值,表示不可能有任何浪费。当能量不变时,时、空的延长往往会导致「功率」的不足,从另一个角度看,可以说是能量不够,效率低。
    对电脑而言,如果写作程式的「功率」能接近此一「恒定值」,而又具有长远的使用价值,则我们可以假定,这种程式的效率最高。
    由人类文明的演进,可以看出,因为技术日渐专业化,工作的难度不仅没有减低,反而更加复杂。这种藉着职业专家的投入,以节省一般应用者宝贵时间的方法,事实上可以说就是效率的追求。
    因为人的生命仅存在于有限的时间,所以其价值极高。每一个电脑程式,其最终目的都是为了服务大多数的使用者,制作程式者仅仅是少数人,其制作时间的长短,永远无法与大多数的使用者,在操作中所耗费的时间相提并论。
    此外,以写作程式为职业的人,一生中所需写作的程式,也一定有相当的数量。如果能重复应用写过的程式,将更缩短其写作时间。无论从哪一个角度,若要追求效率,组合语言应是唯一的选择。
    作为电脑的从业者,在职业良知上,理应禀着服务人类、追求效率为最高准则。

二、电脑的效率性

    电脑的发明,是人类追求效率最具代表性的成就。
    目前电脑的机能尚局限在资料处理以及自动控制上,人们利用电脑,所期望得到的效率不外乎下述六点。
    1,节省工作时间及工作成本。
    2,取代繁琐、重覆性高或具有危险性的作业。
    3,追求精密无误的资料、讯息。
    4,贮存或运算大量的数据或资料。
    5,远距离的通讯或遥控作业。
    6,自动化工业生产或一般性服务。
    然而,电脑发展方兴未艾,上述数点难以表达于万一。因此,我们有必要将人类所期望的效率整理归类,以作为分析判断的依据。

三、四大效率定律

    兹以人类社会中,有关作业过程、生产成本及应用价值等三方面,分别假设定律如下:

    定律一:
        在作业过程上,能以最少步骤产生最大功率者,效率最高。
    定律二:
        在生产成本上,时、空间及原料最节省者,其效率最高。
    定律三:
        在应用价值上,功能及成果能一再累积者,其效率最高。
    定律四:
        最佳的效率,是最符合实际需求的最大边际效应。

    电脑的应用,纯粹是为了追求工作效率,据此,硬体、软体的设计,都应严格遵守效率定律。可是事实却不然,由于电脑发展迄今,一直是「卖方市场」,美其名为「高科技」,内行人高利、高酬,外行人则唯恐后人,亦步亦趋。
    电脑界为了谋取近利,在软件设计的过程上,常采用最缺乏工作效率的高阶语言。但是由于高阶语言易于制作,生产成本低,只是苦了「无知无觉」的买者,为了追求效率往往要花费更多的代价,购买更昂贵的、更新型的硬体,以满足其效率的需要。
    有人说高阶语言制作的程式还有一个组合语言无法比拟的优点,就是很容易「转移」到其他的机种上。事实上,目前微电脑市场仅存两种机型:一为IBM PC系列及其兼容机,另一为MACINTACH ,而这两者所有的软件,不论采用哪一种语言,都无法轻易地「转移」!
    一般说来,任何一种新的微电脑上市,其执行速度及记忆容量每增加一倍,其价格亦成正比上升。是不是有必要非改进硬体,才能达到效率的要求呢?如果我们能澈底瞭解程式语言的特性,当会明确地认知怎样才具最大边际效益。
    这也是进化的基本法则之一,当电脑技术成熟之时,真正的效率才会受到重视。同理,在电脑应用效率达到最高点时,也就是电脑技术成熟的时机。我们如果能掌握这个原则,自不难看到长远的发展趋势,洞烛机先。

四、组合语言之效率

    根据定律一,组合语言之效率是不容置疑的,因为组合语言相当于电脑运行的「机器命令」,能直接产生「功率」。
    生产成本有多种意义,在此我们仅讨论其中两点:一是生产过程所需的时间,一是产品的直接成本。
    组合语言能以最小的空间,发挥最大的功能。显然,在等效的功能下,其成品所占空间最小,成本最低。但是对生产过程所需时间而言,组合语言就处于相当不利的地位。除非能有一种方法,可以改进组合语言制作的效率。
    这正是本书的主要目的:介绍一种方法,以提高组合语言之制作效率。
    我们的目标不仅在提高数倍的制作效率,并且还要证明,用一种特殊的手段,能将组合语言设计的「模组」,如同砌砖一般,建造出资讯的金字塔来。这样不仅能满足定律三,而且完全符合定律四的要求。
    最重要的,是这种效率的达成,在于利用人的「智力」。我认为在宇宙进化的过程中,到目前为止,「人智」就是最高效率的结晶。任何人若要追求效率,应自己先下手,与其坐待硬体的改进,不如充实程式写作的方法及技巧,至少,这些都操纵在自己的手里。

五、模组的效率

    模组并不是一个新观念,在人类文明发展史上,人一直致力于瞭解自己身处的宇宙。这种瞭解,实际上就是模组应用的观念,将宇宙大环境,分解成为人所能认知的小环境,进而将小环境再分解成为个人的经验素材。
    这样一层层地分解下去,便有了「概念、知识」。换句话说,概念及知识,就是一个个代表人类对客观认知的模组。
    基于模组的特性,人才能灵活地加以应用,因而产生了「人类文明」。同理,当电脑的软件,也演化为模组方式,进一步大量推广运用时,电脑文明的时代,即将到来。
    模组的效率是结构性效率的最高表现,在我们处身的宇宙中,无处没有结构,无一不受到结构的支配。有关模组规划、制作和应用,将在第四章第三节、模组观念中详加讨论。

    第四节  程式价值

一、程式的种类

    因为目的不同,一般说来,程式可以分为以下四种。

  1,应用程式:
        凡专门提供给用户,作某种特殊应用的软件,皆称为用程式。通称「套装软件」( Application Package),即成套包装的软件。

  2,系统程式:
        即为系统所提供的「通用程式」,包括在 DOS环境下运行的「命令」(Command) 及「基本中断程式」等。这些程式都是支援系统硬体,供用户应用的工具。

  3,介面程式:
        介面意为「介」于多个「面」之间,凡电脑各系统、硬体与软体、软体与软体之间,皆可称之为介面。
        对程式师而言,写作程式需要「程式语言」的发展环境,所谓的介面程式,即为此类发展环境所必需者。
        此外诸如网络及通讯等,也可以称为介面程式。

  4,控制程式:
        利用程式控制机器运作者,此类程式完全依赖硬体独特的机能,专业性极强。

二、价值观念

    不论什么程式,都应该以「正确、精简、效率」为基本原则。但在目前,除了系统程式比较重视精简及效率外,其他的程式多半只重视正确性而已。
    人们往往以为只有硬体才具有价值,其实大谬不然。硬体的变化有限,软体则永无止境;硬体的价值容易衡量,软体却祗有行家才能判断其良窳。在商业利益挂帅的今天,所谓的「行家」,经常就是「既得利益者」。消费大众是盲目的,也是无辜的,行家为了自身的利益,很少愿意道破其中原委。
    此外还有另一层原因,硬体生产需要技术、材料、资金及设备环境,而软件则人人都可以随手盗用。对一个从事软件设计的程式师,尽管有心将工作做得尽善尽美,但一想到其呕心沥血发展出来的精品,很可能剎时之间就被不尊重软件价值的消费者偷抄盗卖,哪里还有兴致去精雕细琢?
    如果我们能先将软体的价值观建立起来,且人人尊重软体应有的价值,如此真正受惠的,将是广大的消费大众。否则,这样恶性循环下去,电脑只能靠硬体的改进,来达到效率的追求,软体不过是一种「速食」性的消费品,永远没有价值。
    以金额来看,硬体的市场边际价值远不如软体为高。因为硬体的生产成本高,用户每购买一台,就满足了基本需求。故此必须经常推陈出新,以资获利。当然,市场也有其平衡的法则,高利之下,竞争者多,过时的、效率低的硬体又因恐遭市场淘汰而大幅度的降价。
    从过去的经验中可以推出,硬体效率的改进,大约每年一次,而软体则完全建立在其「价值观」之上。如果值得,设计者愿意投入,软体可以在很短的周期中,或因观念的突破,或因工具的特性,功能及效率立即提高了十百倍!问题在于,连从事程式设计的程式师,对软体的认识都不够充分,所制作的软件尚无法满足使用者的需求,充其量只是速成品罢。故不论是程式师或使用者,对软件的价值观都难以建立。
    上述的工具是指「组合语言」,而观念则是将组合语言视作「艺术」。当然,这些只是理想,基于人性,理想永远祇属于少数人。可是,少数人的理想经常会推动时代,为多数人谋取福利。

三、创造价值

    资讯时代方兴未艾,可以预期到只要有人类存在,电脑将是不可或缺的伴侣,永远伴着人类不断朝向超高效率的境地迈进。且不论硬体技术如何改进、变化,应用软体才是电脑生命的灵魂。一个有价值的软件,在千锤百炼之下,经过人智的洗礼,其意义绝不是物质报酬可以比拟的。
    再换一个角度来看,电脑的硬体技术日新月异,体积日趋轻巧。虽然记忆量也在不断增加,但是软件却刚刚相反,由于对高阶语言的依赖,程式占用系统的空间越来越大,以致于抵消了硬体演进所创造的价值。
    当然这都是软件工程师的责任,如果从事软件开发者,不立时觉悟,电脑将不过是「金玉其表,败絮其内」。同理,从事软件开发者,如果仅顾眼前的方便、急功近利,能抄就抄,能偷就偷,长此以往,电脑永远不能形成气候。
    因此,钻研软体的制作技术,创造软件的实用价值,才是资讯时代的主导方向。从这个角度上来看,组合语言所具备的效率优势,远较高阶语言容易制作的优点更有意义。
    对程式师而言,仅把程式当作一种工作,而不追求效率价值,则其技术及境界将止于此,其成就亦可想而知。唯有殚精竭虑,不断追求完美的人,无论观念和技术都将逐步提升,则在未来的资讯时代中,将会占有一席之地。

四、追求价值

    那么,究竟应该如何去追求最高的价值呢?我们不妨从几个不同的角度来分析。

  1,程式价值的定义:
        前面说过,组合语言是一种艺术工具,用组合语言所写的程式则是艺术品。而艺术品的价值是很难加以衡量。可是,程式又是一种工具,对工具而言,它是客观存在,必然具有客观的价值。
        因此,我们可以站在客观的立场,将用组合语言所制作的程式、以及其应有的价值,分门别类予以定义。在此我们不考虑其他程式语言所制作的软件,并不表示这些价值定义不适用,而是认为这种比较不公平。因为以下的定义,都是根据组合语言的特性而考虑的。

    1-1 成本价值=目标1×目标2/成本
            「成本价值」是一种人人都知其然而不知其所以然的观念,是指以某一固定成本,在目标1与2两者之间,根据效率定义,何者价值高,即为其成本之代价。
            在现实世界里,人所从事的工作,有抽象的精神或心理代价,也有金钱或物质代价,甚至两者兼而有之。不论如何,也不论成本为何,其价值高者,经常是人所追求的目标。在这种基础上投入的成本,其价值的高低,将视人所追求的目标而定。
            由于「理想」很有可能只是某种特殊的目标或影响,其利益经常远大于经济上的获利。因此,要提高成本价值,绝非仅仅降低成本而已,而是如何提高其影响力。
            再若经济上的获利高于理想,以现实的角度而来看,人不可能轻易放弃利益,而去追求价值不足的「理想」。
            在这种理论下,人的发展方向,是从事理想的追寻抑或物质利益的满足,端视理想与获利两者,对个人的成本价值而定。同理,人工作的方式及对工作的要求,亦因成本价值而有所取舍。
            采用组合语言制作程式,就是明显的成本价值观念。因为组合语言的效率高,追求效率的实现就是一种理想,为此,投下时间及各种难以估计的成本,对那些有能力牟利者说来,当然是不值得。可是在不知「阿堵物」为何者,除了理想的追求,还待何为?
            以上面的公式来看,降低成本仍可提高其价值,获利的增加亦然,这是必然的,即所谓的「附加价值」。关键在于如果「理想」的价值低于获利,自然而然,其目标将转移为获利。反之,为了牟利,也可能在发现了理想价值后而改途转向。
            附带的产生了一个话题,若矢志追求理想的人又想兼顾金钱利益,一旦金钱利益的成本价值超过了理想时,根据前述理论,此人随时可能变节。至少,在我个人的见闻中,还没有例外的。

    1-2 功能价值
        绝对价值=采用后效益/未采用前效益
        相对价值=各软件间绝对价值比
            任何软件,如果没有实用的功能,就不可能有真正的价值。至于软件的功能价值如何测定,多多少少要看使用者的主观条件而定。
            在这里,我们提出一个简单的方法,先要知道在采用软件的前后,是否真具有效益?这种效益,是绝对的,没有大、小的比较。
            然而,如果一个软件没有效益,就不可能成为商品。所以,任何软件的功能价值,应该是比较性的,在类似软件中,取其绝对价值之比值即可。

    1-3 效率价值=程式功能价值/占用空间×执行时间
            效率是可以精确衡量的,只要得到前述的功能价值,其它诸如程式占用的系统空间、执行所需要的时间等参数,都可以透过测试得到。
            当程式的功能价值极高时,相对的看来,其空间及速度的影响不大,但这种程式迄今尚未诞生。尤其是目前电脑硬体的机能还在启蒙阶段,一般说来,现有的软件占有的空间太大,而且速度太慢,故效率不高。正当这个关头,软件所扮演的角色,可以说是举足轻重,效率自然不能忽视了。
            由于软件界还没有注意到这一点,有识之士可以想见,只要能掌握住效率价值,就可以出人头地。

    1-4 累进价值=效率价值×使用频率×软件生命期
            硬体是消耗品,用到一定的时限后,就失去了再利用的价值。而软体则永远没有损耗,除非应用观念的改变,其实用的价值如常。
            不仅如此,应用观念虽然会改变,只要软件是由模组结合而成,其中的共用模组永远不变。略作适当的修改,或再增加功能后,又面貌一新。
            这种共用模组就具有累进价值,也就是说,用模组方式制作的软件,只要分割适当,就应具有累进价值。凡是有累进价值的程式,其边际效益最高。因此品质的要求也相对加高。如上面公式所表示的,累进价值等于该程式本身的效率,以及在不断累积使用下频率和生命期的乘积。只有基于组合语言的高效率,才可能产生这种价值。
        在资讯时代,程式师必须认识软件的重要性及其所具有的价值,才能充份发挥。
  2,程式师应有的态度:
    自动自发,谦虚学习,掌握重点,认真负责,追求完美

        写程式完全是脑力活动,除非是行家,程式师是否真是在工作,别人很难从外表上看出来。同时,如果程式师不是自动自发,对工作无热忱,甚至心存歧见,则不可能把程式写好。
          自动自发是指发自内心的原动力,且不论是基于名、利、个人成就感或是好奇、赌气、逞强,只要有了这种动力,问题没解决,就会形成悬疑,不断地萦绕脑际,难以休息,直到解决为止。
        但是,人的智力相去甚远,经验亦各自不同。姑不论个人的才智,在解决问题时,集思广益,虚怀若谷,必然是最有效、最正确的态度。
        问题在于,越是执着、好强,或者自卑自傲的人,其自我观念越重。遇事即采惯性行事,而且坚持不变,这种人不可能谦虚,更无法学习。
        就像艺术家一样,不参考他人的作品,不学习新的技巧及观念,固步自封,则难成大师。如果程式师不能谦虚学习,不随着时代的变化成长,创作出来的程式,其价值可想而知的。
        天下英才比比皆是,然而出类拔萃的人却不多。究其因,在学习、思考时,当是原则重于细节,然而在执行的过程中,却是细节重于原则。此外,事物变化的组合无穷无尽,主事者必须能针对目标,随时根据实际状况,逐步处理。
        在各种状况中,如若程式师不能掌握当前的重点,则凡事皆如有千头万绪,难以下手。事实上,从成事败事的观点来看,人只有两种,有能力者,是把复杂的事简化;无能力者,经常把简单的事变得复杂无比。而这种能力的差异,就在于能否掌握当前的重点。
        观念清楚了,就看当事人是否能认真负责,坚持贯彻到底。人间世事成败,完全基于这种态度。不认真,工作时草草了事,不可能有好的成绩;不负责更糟,没有问题也会产生问题,发生问题后,更是无人解决;若参与工作的人多,彼此推卸责任,这样做人处世必将失败,程式制作亦然。
        所谓认真负责,具体说来,即是在事先要彻底瞭解该做什么?要做什么?以及如何去做?工作时要考虑怎样做最有效率?每一步骤会产生什么结果?而工作完成后要彻底检查,目标是否已达成?能否再加以改进?
        最后,是对程式的品质及技巧的完美性,应锲而不舍地追求。一般人常把完美当作不必要的奢侈,其实不然,完美是一种永远无法达到的理想。重要的观点是,人只有在追求完美的过程中,才能不断地进步、升华。一个人若没有理想,就与动物无异,一个程式师若没有理想,套句爱因斯坦的名言,不过是只「训练有素」的小狗罢了。
        态度来自习惯,习惯则来自于学习及锻炼,有志向上者,应该自我要求,努力学习。等到锻炼久了,习惯成自然,有了良好的态度,终有成为大师的一天。

  3,软件开发的原则:
    分工合作,量材施用,慎重计划,严格执行,市场导向

        此处所说的软件开发,是指具有相当规模的程式,需要多数人员共同工作者。人多固然力量大,但是人与人的相处和沟通,问题也特别多。若处理得好,力量是正值,反之,则为负值。不仅彼此的力量相互抵消,有时还有不良的后果。
        软件开发,应该有一个主事的重心人物,如果要谈民主,不妨去搞政治。负责人首先要对工作内容详加分判,然后根据性质分配工作。分配时应注意工作量、时间要求、个人特性及相互的配合等因素,责任要划清,交待要明确,俾能集中众人力量,分工合作。
        成事在人,如果用对了人,则成功在望。每个人都有其独特的个性、能力及态度,适合于不同性质的工作和方法。所以应事先瞭解每个程式师的个性、能力及缺点,再行分配适合的工作。
        不仅分配工作时要度量才干,管理时亦然,人不是机器,不可能绝对适应同一种工作方式。但是,若每个人以他自己适应的方式工作,对整体而言,又有步骤不一、难以相互配合的弊病。
        比较理想的解决方式,是对参与工作的人员,施以再教育,使之习惯于一种统一的方式,藉着训练的过程,也可增进对每个工作人员的认识瞭解。
        再就是工作计划,将工作分成几个阶段,并配合人员的分工及设备器材的条件,逐步实施之。
        工作计划相当于建筑蓝图,一旦确定了就难以修改。一个完整周详的计划,应包括了工作目标,人员分配,时间进度,执行细则,沟通方式,解决问题的程序等。
        有了计划,还要有监督执行的专责人员。这种人才必须有足够的经验,对全部计划能瞭解透彻,有敏锐的判断力,并敢于担当。工作时执行要严格,待人要宽厚,处理事务要果断。
        最后一项原则,才是真正的成败关键,那就是,产品要以市场需求为导向。不能符合使用者需求的产品,一定「没有用」,没有用的产品,则不具备任何价值。
        要测试产品是否「有用」,其实很简单,以程式师为例,如果自己都不愿采用,显然是用处不大。有人会说,程式师又不是使用者,在没有必要时,再好的产品都不肯用。这话并不尽然,人喜爱美好的、尤其是与自我有关的事物。如果程式真有用,制作的程式师一定会想尽方法去    玩赏、测试,而且乐此不疲。
        同理,程式师只有当自己不断的试用后,才会发现实际应用上,所可能面临的问题。而当问题解决以后,用得方便,有了实际效益,市场才有可能接受。

  4,工作环境的建立:

    环境安静,资料齐全,消息流通,压力合宜

        从事软件工作的人,可以说就是一个艺术家,艺术需要注入心智,需要个人无保留地投入。在这种情形下,环境相当重要,必须事先安排妥当。
        环境的物质条件并不重要,但是安静、卫生,却关系着艺术家心理及生理上的平衡。喧哗、吵闹会令人心烦意乱,难以专心。对艺术家而言,不能专心,就毫无创造佳作的可能性。当然,若只把软体发展视作生产线上的生产工作,那就不在话下了。
        程式是运用资料、处理资料的工具,写程式最怕的是资料不全,因为缺乏一点必须具备的资料,而使得整个计划受阻,是最可惜的事。同时,程式本身也是一种广义的资料,尤其是一些软件开发所必须的工具,都应事先准备齐全。
        由于电脑发展日新月异,新观念、技术层出不穷,资料永远难以收集完整。所以消息的流通性非常重要,在一个闭塞的环境里,埋头苦干的结果往往会落在别人的后面而尚不自觉。更何况世界各国从事电脑工作者多不胜数,他山之石可以攻错,消息的流通常可使软件工作者节省大量的心力。
        最后是工作的压力,为了效率,压力要大;但站在人的立场,不论身、心,实在是经不住长期或太大的压力。所以,如何求取一个合宜的折衷点,是不容忽视的。
        以我的经验,一般人受年龄、经验、动机及意志力等的影响,承受压力的能力,不一而同。大概说来,年轻、初学者,在适当的动机下,能够承担长达三至五年、持续性的重大压力;有经验、年龄稍长,除非有极强的动机,再加上坚定的意志,才能维持下去。
        软件开发需要劳心劳力,艺术创作则更需要坚持执着的毅力,技术有方法、有步骤,一定可以实现。艺术则要有观念、有创意,加上心智的投注。两者融合,观念由大处着眼,技术由细部着手,是则,理想终将成为事实。

 

        ***再次声明,此文章不是出自本人之手,自认为作者写不错,作者对计算机,人生,文化以及价值的理解已经到了一定的境界了,如有侵犯原创作者的权益,还请谅解

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值