字虽然很小,但却是一个很大的标题,所谓越老越吃香,个人理解,经验积累使然。经验是什么意思?百年前的心理学家就认识到经验是外加于我们官觉的某些体验。
我们程序员是如何获得经验的呢?先回忆一下几个图灵奖得主在图灵奖演讲中对程序员的一些评价,摘录如下:
-
ALAN J, PERLIS 在1966 年时说:作为程序员我们必需在可以期望对之提供相应的语言模式之前,把其为新的带对话式的编程隔离出来。
-
MAURICE V. WILKES 在 1967 年时说:接受“一个处理器无论以程序员看到的任何速率而言仅是一次只做一件事”这个观念,使编程概念异常简单......
-
R.W.HAMMING 在 1968 年时说:比如,大多数程序员理所当然的认为,在他们换雇主的时候,他们有权利拿走任何他们希望的程序。
-
MARVIN MINSKY 在 1969 年时说:未来的计算机语言会更加关心目标而非程序员指定的过程。
-
J. H. WILKINSON 在 1970 年时说 : 有些人会说他痴迷于成为一个“好的”程序员的那些技巧。
-
JOHN MCCARTHY 在1971年时说: 规则通过程序员或 “知识工程师”被输入到系统中,且在大多数系统中规则是不可以通过系统的动作而出现的。
-
Edsger W. Dijkstra 在 1972年时关于程序员也说了很多,摘录一段:可怜的程序员怎么办阿?好吧,说个最真真正正的事实:他不大可能被注意到。
-
Charles W. Bachman 在1973年时说:然后当程序员们在数据库信息空间中联合导航时,必须学习“路线规则”以避免和其他程序员冲突。
-
高德纳(Donald E. Knuth)在 1974 年时说:当我们将自己的偏见用来 改革 其它人的口味,我们可能会出于某个完全正统的欢愉无意识的把他拒了。那就是为什么说我不谴责程序员所做的许多事,即便是我本人不喜欢去这样行事。重要的事就是他们在形成某些他们感到美的东西。
-
John Backus 在1977年时说:如果一般程序员要证明他程序的正确性,他就需要较之那些专业人员迄今所提出的简单得多的技术。
-
Robert W.Floyd 在 1978 年时关于程序员也说了很多,摘录一段:如果编程艺术的一般进展需要持续的发明和精心设计的范式,那么独立程序员的技艺之提升就需要他扩展自己的范式库(repertory of paradigms)。
-
C.A.R. Hoare 在 1980 年时说:我的故事从1960年,当我成为一家小型计算机制造商“ Elliott兄弟(伦敦)”的一个程序员开始,在那里的接下来八年中,我接受的主要教育来自计算机科学。
-
E. F. Codd 在1981年时关于程序员说了很多,这里就摘一段:要求程序员航行过长长的存取通路再到达目标数据,这种在开发生产力上的不利影响是巨大的。
-
Ken Thompson 在 1983 年时说: 我是一个程序员,......,作为一个程序员,我写程序。
-
Dennis M Ritchie 和 Ken Thompson 在 1983 时说:首先,因为我们是程序员,我们自然要设计其能易于书写、测试以及运行程序的系统。
-
JOHN COCKE 在 1987 年时说: 对机器中的任何比特直接寻址,可以监控任何字,可以引用变长数据,可以有许多种浮点数字。这是一个程序员的梦想 ——特别对汇编语言级的程序员来说 ——而且对我们那些设计硬件的人来说,是一个完美的挑战。
-
IVAN E. SUTHERLAND 在1988 年时说:通过扩大或约定使用在指令处理管道里随需的存储量,该微型流水线管道框架就可以增加程序员的灵活性。
-
FERNANDO J. CORBATO 在1990年时说:即使是有技巧的程序员也会出错。
-
Robin Milner 在1991年说:在给程序员更加新的东西时,我们还必须给他们熟悉的工具。
-
Juris Hartmanis 在1993 年时说:
-
这里对 Fred Brooks 关于编程作了一些摘录:
程序员就像诗人,只是些微的远离纯粹思维材料。程序员构在空中造他的城堡,通过发挥想象力来创造。创造的一点点媒介物如此灵活,如此易于磨光和重新工作,如此容易用来识别宏大的概念结构(…… 后来, 正是这种易处理性造成了它自己的问题)。
然而程序的构造不似诗句,在这样的意义上是真实的:它能移动并工作,产出可见的输出,这种输出是和构造本身分开的。程序打印结果,描绘图形,产生声音,移动装备。在我们的时代,神话和传奇的魔法成真了。某人在键盘上键入正确的咒语,显示屏幕就苏醒了,显示了那些永远不可能的东西。
-
Niklaus Wirth 在 1994 年时说:把时间这个概念引介给程序员去考虑(introducing the notion of time into the programmers' considerations)”的诸原因完全是技术性的。
-
Jim Gray 在 1998 年时说:实际上,有些程序员使用语音输入(voice input)来编程。
-
Peter Naur 在2005年时说: 我提议编程技术要关注的是,提升程序员对他在构建的程序之理解。
忘了还有一位重要人物的话没提及, 是 今年辞世的 Douglas C. Engelbart 先生在 1962年时说的:“谁来首先扩展 ?”
从他们的话中能获得什么样的经验呢?这个问题还要慢慢思考,只记得有本很红的网络小说 《琅琊榜》中的一个主角梅长苏说:
-
-