Is it beneficial for a student to publish their research code and data?

The core of scientific research is that we are open on how we came to a certain conclusion. That way we can move beyond "I am wearing a white lab-coat, so you must believe me", to "this is how I got my results, you can replicate them and see if they are robust, or you can try different approaches and we can discuss and learn how that affected the outcome". So making sure others can understand in detail how you got to your results is central to doing good research. Releasing code is an important step in that, regardless of the university you belong to.

So don't think of this as a service to others (it is nice if that also happens, but that is not the goal). It is about doing good research by documenting how you got to your results, and making that documentation available.


An article about a computational result is advertising, not scholarship. The actual scholarship is the full software environment, code and data, that produced the result. (Buckheit & Donoho, 1995)

Yes, you should publish your code and data. Reproducibility is part of the definition of science: if the results of your experiments or computations cannot be replicated by different people in a different location, then you're not doing science. Far from being a mere philosophic concern, reproducible research has been a key issue in prominent controversies like climategate and cancer research clinical trials.

The person most likely to benefit from your efforts to clean up and publish your code and data is your future self. Why?

Error is ubiquitous in scientific computing...I find that researchers quite generally forget what they have done and misrepresent their computations. (Donoho)

The first step toward working reproducibly is simply to put the code and data that is used in your published research out in the open.

You may adopt reproducible research practices for philosophical reasons, but you will soon find that they bring more direct benefits. Because you write code and prepare data with the expectation that it will be seen by others, you'll find it much easier for yourself and your colleagues to build on past work. New collaborations may form when others discover your work through openly released code and data. And the code itself may be the main subject of publications in journals that have come to recognize the importance of scientific software.

More resources:

  • Top Ten Reasons to Not Share Your Code (and why you should anyway)
  • Publish your computer code: it is good enough