Manhattan Men: Hamming's Code
This is the 17th installment of 774: Weekly lessons from history about science, technology, and innovation.
Next Week:
Manhattan Men: Einstein’s Bagels
This Week:
Hamming’s Code1
Richard Hamming was a relatively young contributor to the Manhattan Project who would eventually go on to lead a groundbreaking scientific career. Hamming was in his late 20s when he arrived to work at Las Alamos to work as a programmer on the IBM calculating machines. In a talk he once said that
At Los Alamos I became aware that I was a janitor of science. Some of the people who keep the thing going, but whose opinion does not matter a great deal. They could trust me to do simple things, but the major decisions I was not really involved in.
Hamming began with relatively humble work on the atom bomb and remained humble about his contributions, but in reality he was being press-ganged into research of ever-increasing importance the entire time. In a talk Hamming gave in 1998 titled “Mathematics on a Distant Planet”2 he explains how he was eventually charged with determining whether the upcoming test of the atom bomb might kill every human alive.
Shortly before the first field test (you realize that no small scale experiment can be done—either you have a critical mass or you do not), a man asked me to check some arithmetic he had done, and I agreed, thinking to fob it off on some subordinate. When I asked what it was, he said, "It is the probability that the test bomb will ignite the whole atmosphere." I decided I would check it myself! The next day when he came for the answers I remarked to him, "The arithmetic was apparently correct but I do not know about the formulas… after all, there could be no experiments at the needed energy levels." He replied, like a physicist talking to a mathematician, that he wanted me to check the arithmetic not the physics, and left. I said to myself, “What have you done, Hamming, you are involved in risking all of life that is known in the Universe, and you do not know much of an essential part?” I was pacing up and down the corridor when a friend asked me what was bothering me. I told him. His reply was, “Never mind, Hamming, no one will ever blame you.”
While less acclaimed then Richard Feynman, Hamming made massive contributions to modern computing and math that few rival. If Feynman’s obsession in life was to deeply understand as many fields as he could, Hamming’s obsession was what those variant areas of expertise would do for a person’s career. In a talk called “You and Your Research”3 and the book it inspired, The Art of Doing Science and Engineering4, Hamming emphasizes his life’s maxim: “Luck favors the prepared mind.”
Hamming’s pithy point was that you really have no idea what you might need to do throughout your life, thus there is no perfect roadmap to prepare, but if you prepare for as many possibilities as you can the odds of you being able to successfully tackle tasks increase. Could a young Richard Hamming have ever expected to double check the calculations ensuring that a test in New Mexico would not burn all the oxygen in the atmosphere? Probably not. But because of his expertise and commitment to learning he could handle the job, albeit reluctantly, when it landed on his doorstep.
Understanding was not enough for Hamming. Success was the expected end of all his understanding. He said that
As far as I know and as far as you know, you only have one life to lead. You might as well lead the life you would like to have. And I suggest to you a life of doing something significant, by your definition of significant, is worthwhile.
He once demanded of a group of coworkers at Bells Labs to justify their chemistry careers to him.
If what you’re working on is not important and its not likely to lead to important things, why are you working on it?
This type of admonition comes up frequently in Hamming’s talks and books. He is preoccupied with not wasting finite time on things that he thinks do not matter. The best way to avoid waste and accomplish significant things, according to Hamming, is to prepare for many problems that seem like they might be important.
Hamming gave an example of his maxim using the Institute for Advanced Study at Princeton.
They take in people who have done something great. They give them luxury: a beautiful office, a beautiful restaurant to dine in, a wonderful grounds and everything else like that, adequate salary to live on and so on. No cares, no nothing. You are freed for life from anything at all.
What happens? The bulk of them continue to work on the problem that made them famous. They keep on elaborating and so on. They’ve already made it famous! It doesn’t have to be added to! They got the thing going. Rarely do they change…
The bulk of the people appointed to the Institute of Advanced Study don’t keep the door open on life, as it were, and they don’t do anything comparable to what they did before. They are very able people, but the institute, in my opinion, sterilizes them to a great extent.
Additionally, he believed that luck and hard work were essential components to success, but that they must be combined with good timing in order to be of any use.
The race is not to the swiftest. The guy who works hardest doesn’t win. The person who works on the right problem at the right time in the right way is what counts and nothing else… I’m trying to teach you something about style and taste so you’ll be able to have some hunch of when a problem is ripe, what problem is ripe, and how to go about it… Nothing else counts. Nothing.
I never explain Hamming’s Code,
but this is a great primer on what it actually is
and how it benefited error correction in computing.