Richard Hamming

Oct 20, 2023

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 - One Man's View of Computer Science.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