Richard Hamming

Mar 30, 2022

One Man's View of Computer Science (1969)

ACM page trying to extort you to pay for it: https://dl.acm.org/doi/abs/10.1145/321495.321497 PDF: http://worrydream.com/refs/Hamming%20-%20One%20Man%27s%20View%20of%20Computer%20Science.pdf formatted HTML version: https://gist.io/@llimllib/58812e1ee1d7fa5196b2afc46a566ff6

Twitter thread of quotes here: https://twitter.com/llimllib/status/1343620375008206852

The Art of Doing Science and Engineering

I loved this book. A collection of quotes I liked follows, but I no longer have the book so it won't be organized in any way

https://www.amazon.com/Art-Doing-Science-Engineering-Learning/dp/1732265178

Max Planck (1858-1947) fit the black-body radiation experi- mental data with an empirical curve, and it fit so well he "knew it was "the right formula." He set out to derive it, but had trou- ble. Finally he used a standard method of breaking up the ener- gy into finite sizes and then going to the limit. In the calculus course we do the same sort of thing; the integral is approximat- ed by a finite number of small rectangles, these rectangles are summed, and then the limit taken as the largest width ap- proaches zero. Fortunately for Planck, the formula fit only so long as he avoided the limit, and no matter how he took the limit the formula disappeared. He finally, being a very good, honest physicist, decided he had to stop short of the limit, and that is what defines Planck's constant!

Man is not a rational animal, he is a rationalizing animal. Hence you will find that often what you believe is what you want to believe, rather than being the result of careful thinking.

I should be remarked that in primitive societies creativity, origi nality, and novelty are not appreciated; doing as one's ancestors did is the proper thing to do. This is also true in many large or- ganizations today: the elders are sure they know how the future should be handled and the younger members of the tribe, when they do things differently, are not appreciated.

Better I should try to do it, a person you know who has experienced it many times, than you get it from some people who themselves have never done a significant creative act. I often suspect creativity is like sex: a young lad can read all the books you have on the topic, but without direct experience he will have little chance of understanding what sex is- but even with experience he may still not understand what is going on! So we must continue, even if we are not at all sure we know what we are talking about.

An expert is one who knows everything about nothing; a generalist knows nothing about everything. In an argument between a specialist and a generalist, the expert usually wins by simply (I) using unintelligible jargon, and (2) citing their specialist results, which are often completely irrelevant to the discussion. The expert is, therefore, a potent factor to be reckoned with in our society. Since experts both are necessary and also at times do great harm in blocking significant progress, they need to be examined closely. All too often the expert misunderstands the problem at hand, but the generalist cannot carry though their side to completion. The person who thinks they understand the problem and does not is usually more of a curse (blockage) than the person who knows they do not understand the problem.

I recall an experience I had while I was on the board of directors of a computer company. We were going to a new family of computers and had prepared very careful estimates of costs of all aspects of the new models. Then a salesman estimated that if the selling price were so much he could get orders for ten, if another price 15, and another 20 sales. His guesses, and I do not say they were wrong, were combined with the careful engineering data to make the decision on what price to charge for the new model! Much of the reliability of the engineering guesses was transferred to the sum, and the uncertainty of the salesman's guesses was ignored. That is not uncommon in big organizations. Careful estimates are combined with wild guesses, and the reliability of the whole is taken to be the reliability of the engineering part.

Second, you cannot gather a really large amount of data accurately. It is a known fact which is constantly ignored. It is always a matter of limited resources and limited time. The management will usually want a 100% survey when a small one consisting of a good deal less, say 1% or even 0.1%, will yield more accurate results! It is known, I say, but ignored. The telephone companies, in order to distribute the income to the various companies involved in a single long-distance phone call, used to take a very small, carefully selected sample, and on the basis of this sample they distributed the money among the partners. The same is now done by the airlines. It took them a long while before they listened, but they finally came to realize the truth that small samples carefully taken are better than large samples poorly done - better both in lower cost and in greater accuracy.

The first rule of systems engineering is: If you optimize the components, you will probably ruin the system performance.

From the first the company provided a service, not just equipment. That is a big difference. If you merely construct something and leave it to others to keep it running, it is one thing; if you are also going to operate it as a service, then it is another thing entirely!

Thus rule two: Part of systems engineering design is to prepare for changes so they can be gracefully made and still not degrade the other parts.

Rule three: The closer you meet specifications, the worse the performance will be when overloaded.

Westerman believes, as I do, that while the client has some knowledge of his symptoms, he may not understand the real causes of them, and it is foolish to try to cure the symptoms only. Thus while the systems engineers must listen to the client, they should also try to extract from the client a deeper understanding of the phenomena.

Let me close with the observation that I have seen many, many solutions offered which solved the wrong problem correctly. In a sense systems engineering is trying to solve the right problem, perhaps a little wrongly, but with the realization that the solution is only temporary and later on, during the next round of design, these accepted faults can be caught, provided insight has been obtained.

I strongly recommend taking the time, on a regular basis, to ask the larger questions, and not stay immersed in the sea of detail where almost everyone stays almost all of the time. These chapters have regularly stressed the bigger picture, and if you are to be a leader into the future, rather than a follower of others, I am now saying it seems to me to be necessary for you to look at the bigger picture on a regular, frequent basis for many years.

I must come to the topic of "selling" new ideas. You must master three things to do this:

  1. Giving formal presentations,
  2. Producing written reports, and
  3. Mastering the art of informal presentations as they happen to occur.

All three are essential- you must learn to sell your ideas, not by propaganda, but by force of clear presentation. I am sorry to have to point this out; many scientists and others think good ideas will win out automatically and need not be carefully presented.

↑ up