很多电脑人员是相当聪明的。我记得20多年前,那时还是DOS操作系统,我们的一个用户竟然把我们在他们单位上调试的源程序偷偷地拷贝下来了。要知道我们在每次编译过后都把源程序给删除了的呀,,竟然在我们转身之际将文件的删除标志给去掉,把源程序还原出来了。到最后,我们自己的源程序没有了,他倒是保留了我们源程序的各个版本。这些事都是若干年以后他告诉我们的,可见他手脚之快,聪明之至。他解释说,他只想看看我们写的程序,研究研究学习学习。常言道:“窃书者不为偷”,好事好事呀。我们从此成了好朋友,交往至今。
我经常看到动手能力很强的程序员。他们做事迅速,整天就做在电脑前面编程序,一边编程,一边修改,一边编程,一边修改,如此往复。但是我看不到他们水平高超的地方。因为他们的程序编写了几天后便会大改一番,有的甚至要推倒重来。这并是个别现象,终于我忍不住去问他们动手为什么这么快,他们的回答是项目或需求时间要求紧,没有办法只能立即编程,遇到问题再说解决的事。
于是我开始关注程序员的动手时间和动脑时间比例关系,关注这个比例与程序员水平的关系。
我发现许多程序动手时间和动脑时间之比都在9:1以上,而且时间越长动手能力越强。动手能力强除了程序员性格自然属性之外,主要是编程能刺激大脑高速运转,并刺激编程的欲望。但是我也了发现动手能力强的主要原因:
1、 熟练
程序员对编制程序内容和方法是分熟悉,动起手来十分熟练,更有Ctr-c,Ctr-v大法,编起程序飞快。
2、 调试
编得快的必然会出现各种出错,出错后必然要调试,调试则是一个重复性和耗时性很强的工作,导致的必然是程序员动手能力的提高。
3、 即想即编
由于编程前考虑不全面,在编程序过程,往往冒出一个想法,就会按照这个想法编写程序,看看这个想法对不对头,不行再想。这是一种环环相扣的做法,许多程序员就是这样日夜不停地编写程序。高强度编程想不熟练也不行呀!
4、 时间要求
外部的时间要求给程序员造成了只有早动手才能完成任务的想法。程序员的上级也以程序员是否动手判别工作是否开始的标志。这两者的要求迫使程序员养成了动手能力强的现状。
我认为程序员的水平反映出的是程序员的智慧。动手反映出来的是小智慧,而动脑反映出来的是大智慧、高水平。一个程序无论大小,都要经过大脑严密思考,在心中形成无形的程序,把整个流程都想清楚,再去动手编写程序!如果程序员足够聪明,动脑之需几秒钟便可完成这个过程。程序员要意识到动手能力强与技术水平低关系,改变现有的编程方式,多花点时间在程序实现的思考上面,让更多的时间激发程序员的智慧,减少调试、减少反复,并在最终反应到又快又好的程序上。
优秀的程序员动手时间和动脑时间之比应该在7:3以下。当其比值下降到5:5、3:7以下程序员也就完成了向系统设计人员转变的准备。
下篇:《如何学习一门新的语言》