09 遇到问题,动手能力非常重要

庄恩岳:白院士,您的留学经历非常励志,能够激励许多有志向追求科学研究事业的年轻人,您能不能举个例子谈一下学习中遇到的困难是怎么攻克的?
白春礼:有一件让我终生难忘的事,就是解决了在一次科研项目实验中遇到的问题。那是我刚到美国去的时候,导师让我把一个设备从加州理工学院搬到美国喷气推进实验室,在那里重新组装起来。
这个仪器是以前在实验室工作的博士自行设计建造的,在他走后已经被大卸八块,散落在各处。由于是自行建造的设备,所以没有留下任何的说明资料。我把它搬出加州理工学院,搬到美国喷气推进实验室,不知道怎么组装,结果人一下子就傻在那里,头也大了。因为我在国内用过类似的仪器,但是从来没有参与过制造,也没有拆解或维修这类仪器设备的经验。面对眼花缭乱的各种各样的电线和好多散件,怎么顺利重新组装,让设备在新地方运行起来,这是我一开始的重要工作。还有,控制该仪器的计算机软件究竟是什么?每个参数怎么输入?怎么应用?我当时是什么都不清楚。没有办法,我就只能去问老师这个事儿该怎么办。
我的指导老师说,这个他也不是很清楚,让我打电话问问原来那个做这项工作的人,他已在美国东部找到了新的工作。老师给了我一个电话号码,我就从加州给这个人打电话,他接了电话以后,就跟我说了一大通。他是埃及人,说话有一点口音,听起来很费劲。如果我们当面交流,也许可以通过比画或者对着仪器设备说明解决问题。但是电话里头听得不是很清楚,再加上他说的这些专业术语,我很难理解它们的意思,结果基本上什么也没有听懂。
怎么办?老师说“不知道”,让我问别人。远水解不了近渴,我一狠心,下决心自己一边摸索一边安装。于是,我开始琢磨仪器的原理和构造,研究到底该怎么组装。
经过艰苦努力,仪器设备的硬件组装好后,我又遇到计算机控制和数据处理的软件问题。因为不清楚软件的功能、参数的选择,所以我将所有软件的源程序打印出来,通过研究源程序,了解软件的设计思路、参数的设置、取值的范围、控制仪器的方式等,然后再琢磨该怎么使用。那是我到美国后最困难的一段时间,对于学化学出身的我来说,要重新学习了解电路、计算机的软件硬件、真空设备、光路系统、机械传动等方面的知识,不是一件简单的事,很多事情都得我自己一个人做好。
我冷静下来,把它当成锻炼机会,趁机培养自己的动手能力。最后,我终于调试成功,完成了任务。我到现在还很感谢那次经历。后来我不管在哪里,动手能力都很强,这与那次的经历是分不开的。
那次能够顺利完成任务其实还得益于我在国内读书时做的训练,它让我练就了扎实的基本功。受过这些训练,再加上临危不惧的勇气,许多困难都是可以攻克的。所以,动手能力是一个人非常重要的素质之一,这是我出去后得到的第一个重要的学习体会。
世上无难事,只怕有心人。这个设备开始使用以后,又出了问题,第二次是计算机出了毛病。那是一台20世纪70年代末期制造的计算机,是非常老式的,用的是个五英寸大的软盘。就请计算机公司的人员来维修这台计算机,一天支付两百美元,捣鼓了两天,结果对方说这个计算机坏了,不能修,必须换新的。后来实验室买了一台新的机器,是当时最好的机器,就是个人计算机——IBM PC/XT,可是新问题又来了,新的计算机操作系统、软件与原来使用的老计算机根本不兼容,那怎么办呢?
困难重重,光叹息没有用,我只有以积极的心态,努力去想办法,最后只好我自己动手,重新编写软件,这个机器才能使用。这个很难啊,因为我学习的是化学专业,不是计算机编程专业。而作为控制仪器的软件,出于提高速度的需要,不能用我在国内曾学过的普通计算机语言编写,需要用汇编语言。汇编语言是一种机器语言,一般学计算机软件的人才会学,我根本没学过。为了编好这样一个软件,没办法,我只好跑到图书馆去借这方面的书籍。我一边看书,了解详细内容,自学汇编语言,一边开始编制程序。经过反复多次的努力,我不但通过自学把这门语言学会了,而且把这个程序也编好了。这个机器又重新运转起来了,我感到万分喜悦。遇到问题怎么办?一边干一边学。这又是一个我重要的学习体会。
后来凭借编写汇编语言程序的经验,我在加州理工学院做扫描隧道显微镜时,也为扫描隧道显微镜编了一个汇编语言程序。
我编的这个程序,能够很快速地进行数据的采集和图像的处理与分析。因此,这个软件也被其他的单位拿去使用。汇编语言是比较难的一种语言,光看源程序也很难懂,这个程序基本上是直接针对计算机寄存器的指令集。我回国之前,加州理工学院实验室的负责人跟我说,你走之前得把这个程序的每一条语句是什么意思、有什么功能写清楚,把它们留下来。所以我回国之前,百忙中又增加了一个任务:把用汇编语言编写的计算机程序解释清楚,一共是一万多条,每一条后面都有详细的注释。
所以,培养动手能力以便不断攻克学习、工作难关的好习惯十分重要。我回国一年以后,到英国牛津大学去开一个国际会议,当时参加会议的人中,有来自我曾经工作过的加州理工学院实验室的博士生,是个美国人。她跟我说,你这个程序是怎么编的呀?我们看了半天,到现在还看不太懂你的思路,只会使用。所以说,虽然我自己是学化学的,在计算机方面是个门外汉,但是我不怕困难,自己动手也可以创造奇迹。过去我只简单学过BASIC语言和FORTRAN语言,但是在美国的编程锻炼经历,对我来说非常重要。我回国之后,许多事情都是自己动手做的,譬如做扫描隧道显微镜,设计电路、编写软件、搞硬件、搞机械加工等等,从头到尾都是自己完成的,这都是因为软件的编写经验给我奠定了很好的科研基础。