I’ve read many pieces floating out there about the “secret” of earth-shattering research. I have found nothing that even comes close to the salty advice of the late computer scientist Richard Hamming (of the Hamming code fame) in his essay You and your research.

Most essays out there are filled with mushy platitudes full of things people would like to believe about the scientific enterprise. They tread daintily around the brute facts of the world. Not Hamming, his advice is pungent and opinionated in a way that few would be brave enough to make:

The Institute for Advanced Study in Princeton, in my opinion, has ruined more good scientists than any institution has created, judged by what they did before they came and judged by what they did after. Not that they weren’t good afterwards, but they were superb before they got there and were only good afterwards.

Other pieces seem counter-intuitive but rings true as steel:

What most people think are the best working conditions, are not. Very clearly they are not because people are often most productive when working conditions are bad.

Another penetrating insight is the role of ambiguity:

Most people like to believe something is or is not true. Great scientists tolerate ambiguity very well. They believe the theory enough to go ahead; they doubt it enough to notice the errors and faults so they can step forward and create the new replacement theory.

And perhaps the most important of all:

Most great scientists know many important problems. They have something between 10 and 20 important problems for which they are looking for an attack. And when they see a new idea come up, one hears them say ``Well that bears on this problem.’‘ They drop all the other things and get after it.

( comments )
 Mark   03/17

I read this paper a couple of years ago and found it utterly compelling.

The key message I got from his talk was “if you want to do great work, you clearly must work on important problems” which begs the question “what are the important problems in my field?”

This question recently raised itself again when I was reading Knuth’s Selected Papers on Computer Science. In it Knuth believes Forsythe articulated the key question in computer science when he asked “what can be automated?”.

Within machine learning Tom Mitchell has recently asked similar big questions of that discipline that coincided with the opening of the first department of machine learning.

Personally, I think one of the big research questions in machine learning is how do we best integrate the knowledge a domain expert may have about an inference task with the computational grunt found in modern learning algorithms? This is most closely related to Mitchell’s question “Can we design programming languages containing machine learning primitives?”