计算机科学名人名言

名人名言虽然略有鸡汤的嫌疑,但其实大师们看问题的角度才是最值得学习的。这里整理了一部分,之后会逐步翻译成中文。


计算机科学

Hal Abelson (1986) 在 SICP 的教学视频中所说的

[Computer science] is not really about computers – and it’s not about computers in the same sense that physics is not really about particle accelerators, and biology is not about microscopes and Petri dishes…and geometry isn’t really about using surveying instruments. Now the reason that we think computer science is about computers is pretty much the same reason that the Egyptians thought geometry was about surveying instruments: when some field is just getting started and you don’t really understand it very well, it’s very easy to confuse the essence of what you’re doing with the tools that you use.”

比尔盖茨和面试者的对话:

Interviewer: Is studying computer science the best way to prepare to be a programmer?

Bill Gates: No. the best way to prepare is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating system. You got to be willing to read other people’s code, then write your own, then have other people review your code. You’ve got to want to be in this incredible feedback loop where you get the world-class people to tell you what you’re doing wrong.

Richard Feynman 1970 年在关于计算的讲座上说:

Computer science… differs from physics in that it is not actually a science. It does not study natural objects. Neither is it, as you might think, mathematics; although it does use mathematical reasoning pretty extensively. Rather, computer science is like engineering; it is all about getting something to do something, rather than just dealing with abstractions, as in the pre-Smith geology.

Richard Hamming 1962 年在《科学家与工程师的数值方法》一书的前言中说:

The purpose of computing is insight, not numbers.

Richard Hamming 在 1968 年的图灵奖获奖演说时说:

Without real experience in using the computer to get useful results the computer science major is apt to know all about the marvelous tool except how to use it. Such a person is a mere technician, skilled in manipulating the tool but with little sense of how and when to use it for its basic purposes.

Indeed, one of my major complaints about the computer field is that whereas Newton could say, “If I have seen a little farther than others, it is because I have stood on the shoulders of giants,” I am forced to say, “Today we stand on each other’s feet.” Perhaps the central problem we face in all of computer science is how we are to get to the situation where we build on top of the work of others rather than redoing so much of it in a trivially different way. Science is supposed to be cumulative, not almost endless duplication of the same kind of things.

David Wheeler 在 1993 年的图灵奖获奖演说时说(这是非常著名的一段话,被认为是软件工程的基础理论):

Any problem in computer science can be solved with another level of indirection.

算法

Robert Harper 在软件基础这篇论文中说:

Algorithms are the computational content of proofs.

Peter Wynn 在其论文中提到:

Numerical analysis is very much an experimental science.

编程

Joshua Bloch 在 Coders At Work 一书的访谈中说

The cleaner and nicer the program, the faster it’s going to run. And if it doesn’t, it’ll be easy to make it fast.

John Barnes 在《Programming in Ada》一书中说

Playing with pointers is like playing with fire. Fire is perhaps the most important tool known to man. Carefully used, fire brings enormous benefits; but when fire gets out of control, disaster strikes.

James Gleick 在其论文中说

Computer programs are the most intricate, delicately balanced and finely interwoven of all the products of human industry to date. They are machines with far more moving parts than any engine: the parts don’t wear out, but they interact and rub up against one another in ways the programmers themselves cannot predict.

网友 EMCIC 在论坛中提到

Computers are man’s attempt at designing a cat: it does whatever it wants, whenever it wants, and rarely ever at the right time.

C.A.R. Hoare 说

There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.

Donald Knuth 的经典语录之一

Premature optimization is the root of all evil.

Erik Naggum 说

Languages shape the way we think, or don’t.

Larry O’Brien 和 Bruce Eckel 在 Thinking in C# 一书中说:

Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends – commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours, but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see.

Sam Redwine 在一个 Workshop 中说:

Software and cathedrals are much the same – first we build them, then we pray.

Gerald M. Weinberg 在《计算机编程心理学》一书中说

Asking for efficiency and adaptability in the same program is like asking for a beautiful and modest wife. Although beauty and modesty have been known to occur in the same woman, we’ll probably have to settle for one or the other. At least that’s better than neither.

Edsger W. Dijkstra 说过不少有意思的话:

If debugging is the process of removing bugs, then programming must be the process of putting them in.

Testing can only prove the presence of bugs, not their absence.

Donald Knuth 老爷子关于调试的见解也别出心裁:

Beware of bugs in the above code; I have only proved it correct, not tried it.

Sidney Markowitz 真相了:

The last bug isn’t fixed until the last user is dead.

编程语言

Abelson & Sussman 在 SICP 第一版前言中说:

Programs must be written for people to read, and only incidentally for machines to execute.

George Boole 说过

That language is an instrument of human reason, and not merely a medium for the expression of thought, is a truth generally admitted.

Richard W.Hamming 说过

Typing is no substitute for thinking.

Marvin Minsky 在图灵奖获奖演说时说:

Computer languages of the future will be more concerned with goals and less with procedures specified by the programmer.

Bjarne Stroustrup 说过

If someone claims to have the perfect programming language, he is either a fool or a salesman or both.

小结

这一部分实际上是为自己的新书所收集的一部分『边角料』,我觉得每一个入门,或者热爱计算机学科的同学,可以从这些话中得到一些鼓舞,或者一瞥计算机科学的『金库』。

参考链接

捧个钱场?