Julian Togelius, a guy who does some very awesome work on Artificial Intelligence for games, has recently published a blog post about the differences between Tinkering and Research. Go read that post and then come back.
According to the blog post, there is a large overlap between a tinkerer and a researcher. He defines a Tinkerer as a person who does cool things for the hack of it (such as building a bot, writing an AI for an application or developing a hard algorithm), and a Researcher as someone who does cool things for the sake of increasing humanity total sum of knowledge (such as building a bot, writing an AI for an application).
As you can see, it is very easy to do one while you think you are doing the other. I see this happening way too much (WAY TOO MUCH) here in Tsukuba, and this is one of the reasons that led me to start the Experiment Design in Computer Sciences course (although I used to say "engineering vs science", Julian's comparison is more apt).
On one hand, I think it is very important for academics to have experience with tinkering. I certainly give priority to students who have done some tinkering before coming to the university. On the other hand, as the post points out, tinkering has some shortcomings when the final goal is to increase the total knowledge of the human race, so in an academic context we need to pay attention to the difference.
Julian describes four points that compose the main differences between tinkering and research (in order of importance):
- Scholarship: Reviewing and attributing related works; avoiding work duplication
- Testing: Studying and describing the behavior of the thing under study
- Goals: Thinkering is done for the hell of it; research is done with a goal
- Persistence: Even small goals towards understanding a bigger field are important; different time scales.
Here I start to disagree just a bit. If I were to draw the line between tinkering and research, it would look like this (keeping the same format):
- Reproducibility: This is the counterpart of Scholarship. It is the effort to make sure that your work is understandable and reproducible by others. A scientist must make sure that whatever they do, it will be possible for other people to learn from it. To this end, a scientist must strive to make public as much of the data, code and methods as possible, and to be clear and precise in the description of the thought process behind their research.
- Testing: The same as in the post's list, except that I personally think it is more important to the scientific work than Scholarship. Julian comments that his students often ask him the point of scholarship when they could "just be doing coding instead", but in my experience it is usually the Testing that gets the axe.
- Scholarship: Of course, I think that scholarship is essential. I just think that tinkerers (at least those worried about doing good work) are much more worried about avoiding duplicated work than Julian gives them credit in his post.
- Persistence: I would stop at the tree points above, but to keep the format, I choose Persistence. I believe that persistence is more relevant for the difference between tinkerers and researchers than goals is.
Maybe my list is a bit colored by what I think is currently most lacking in CS scientists (reproducibility and scientific rigour). Anyway, it is important to keep in mind the differences between "tinkering" and "research". In my first "Experiment Design" class, I explained that science is an "ecosystem", where inspiration, testing, communication and application all interact with each other.
The differences between tinkering and research is a clear example of this ecosystem in action. The tinkerer will give birth to the ideas/inspirations that will allow research/testing to take place, and at the same time the public and accessible results of testing will create the fertile grounds for more tinkerers to flourish.