我们是程序员

Author: Date: 1999年 第31期 09版

#1      编程并非高深莫测
#1    李晓东 e-BOOK 电子小说阅读器作者 (http://eb.126.com)
    要想学好编程,没有什么捷径可走,只有多动手,敢于动手,看完一本厚厚的编程书,学习效果也肯定比不上亲自上机设计一个简单的程序。就拿我来说吧,其实我很早就想学VB了,在我的电脑中也多次安装过VB4和VB5,可我一直没有动手,也许是因为缺乏某种紧迫感吧。直到去年10月份,我在用VFP设计一个文本阅读器(e-BOOK的前身)时,越来越感到VFP无法满足我的一些特殊要求,于是我又想到了VB,终于,我捧起一本VB3的编程手册(当时我只能找到这本VB编程书了),在VB5中敲下了第一个键。半个多月过后,e-BOOK1.01版诞生了!在此,我要对想学编程的朋友说一句:编程并非高深莫测,只要你敢于迈出关键的第一步,你就入门了。
    另外,编程书还是要看的,但不必强求最新、最全、最多,够用、适用就行。就我个人来说,我有汇编基础(当然也是自学的),这对我现在的编程有很大帮助(尽管在Windows时代汇编语言已无用武之地)。对广大编程爱好者来说,则要系统地掌握一些底层的东西,比如显卡显示图像的原理、硬盘存储文件的方式、内存管理机制等,这些知识尽管不能直接用到程序中去,但对你理解程序的运行流程、找出发生问题的原因等方面还是很有好处的。我编程的长处在于界面设计(e-BOOK就是明证)。我觉得,在Windows中编程,最容易体现个性的就是界面设计,在千篇一律的灰色窗口+菜单栏+工具条+状态条+滚动条的模式下,只要你敢于打破这个框框,你的程序就很容易脱颖而出(当然内在的东西也要足够好)。 
#1      选择方便快捷的方案
#1    杨延哲 E-port软件小组成员 http://e-port.yeah.net
    我从学习编程到现在不多不少三年半,这期间学的东西很杂,首先是从QBASIC开始,后来学上了VisualBasic,再后来学校里教了TurboPascal。现在我才认定了Pascal,跟了Delphi。其他的语言像C++我也学过,但没人教再加上已经弄懂了Pascal,所以就放弃了。
    Delphi编程的最大好处就是它的控件,它将编程变成了一件快乐的事。因为在编程过程中唯一的快感就是看到自己的程序在运作了,而Delphi就给了编程者这个感觉。这对于我们这些写小程序的人来说特别有帮助,可以将编程时间降到最低。
    我的编程忠告就是:如果你遇到了大的问题,解决方法有许多种。为了避免走弯路,先选择最方便的快捷方案,这样即使无法执行也不会太浪费时间。用专业的讲法就是Shortest Job First。 
#1     创意是软件的灵魂
#1    张研 Update NOW!的软件作者 (http://nowsof.yeah.net ,http://www.ourchina.net/)
    1.基础比语言更重要
    以前有一句很有名的话:“算法+数据结构=程序”,后来有人批评这种说法,但不管怎样,算法和数据结构的重要性可见一斑。而语言则显得不那么重要了。语言只是算法的表达方式,就拿排序来说吧,C语言用的是那些方法,Pascal也是,Java也一样。只是表达的方法不同。“万变不离其宗”,所以说要想成为一个好的程序员,算法和数据结构是最基础的。
    2.精通一门适合自己的语言
    现在流行的语言很多,Visual Basic、Visual C++、JAVA、Delphi等。同时新语言层出不穷。谁也不可能都会。怎么办?最好只选择一门语言,集中精力钻研,精通它。没有一门语言是万能的,有算法和你精通的那门语言做基础,学一门新的语言是件轻松的事。
    3.熟悉你使用的操作系统
    同一种语言在不同操作系统中,会略有不同。比如Windows下的C和Unix下的C是都是C语言的超集。这些不同,正是我们所关心和应该潜心研究的。只有这样才能写出有特色的程序。
    4.熟悉你使用的硬件系统
    不了解硬件系统,很难写出好的程序。所以好的程序员,对硬件的了解都很深。
    5.容错是很重要的
    容错性能的好坏是评价一个程序是否专业的重要标志。好的程序员会写大量的代码让程序更“坚固”。Update NOW!的核心代码中有20%~30%是用于容错的。
    6.好的程序书写风格是必要的
    书写程序按照语法的层次缩进,是衡量程序员是否专业的一个标准。当然,还要有必要的注释。否则,过了几个月,你都很难读懂自己的程序了。
    7.创意是软件的灵魂
    好了,如果你作到了上面那几点,那你差不多是个好程序员了。最后要说的就是创意。没有创意的软件,只是重复劳动。即使容错再好,风格再好也没有用。回头看看,那些出色的软件都有独到之处。如果你既是个好程序员又能写出有创意的软件,那你差不多就是大师了。
#1      语言只是工具
#1    梁肇新 《超级解霸》的作者(http://www.herosoft.com/)
    1.如何成为程序员
    要成为高手程序员首先必须有丰富的计算机知识,包括软件系统知识和硬件系统知识,掌握一种高级编程语言如C/C++和掌握汇编语言,这是成为程序员高手的必备条件。一般人都会认为语言最重要,其实语言只是工具而已,重要的是如何使用工具做自己想做的事,
    2.如何学习编程
    我的建议是从API入手,因为API是操作系统提供的直接接口,其他的任何东西都是在这之上,像VB和Delphi这样的开发工具尽量隐含API的内容,同时也阻隔了成为高手的机会,因为编出来的“程序”无法了解它的执行过程也就使编程中最重要的“可预测”性变得很低。
    编程序的重点不是“编”,而是调试程序,理论上的完美在实现的时候会遇到很多细节问题,这些问题必须调试才能解决。我的编程习惯是一天写五天调试,《超级解霸》就是调试出来的,而不是写出来的。调试就涉及到汇编的问题,不进行汇编级的调试是不彻底的,也不能让人放心。
    3.编程忠告
    我的编程经验是,编程时除了调试外还应该测试,测试是指把要完成的程序的单个功能写一个测试实验,成功后再加到软件中来。任何软件都是小功能组成的,因此不要像课本所说的那样先写个程序框图来浪费时间,而是先单个实现局部功能再组装在一起。编程时千万不要盲目使用不了解的代码,否则会增加程序的出错机会。了解底层会增加编程思路。