You should publish papers to document your research and communicate to the world. Publishing is hard work, done with the ultimate goal of having an impact and getting credit for your effort. Writing a rigorous paper that clearly explains your work is the most important thing you can do in this regard. But there are other things you can do to magnify your impact. Specifically, you can publicly share versions of your papers, and you can share your code. I’ll provide some background on these issues below, and explain why I make these recommendations.
This is a paper that has just been submitted to a journal or is still in preparation. It has not yet undergone peer review (i.e., it has not been revised in response to peer review comments).
This is your version of the manuscript, after you have revised it in response to peer review comments and it has been accepted for publication. It is the last document you submitted to the journal before you got the “Congratulations, your paper is accepted” response. It is also referred to as the Accepted Version.
This is the final version of your accepted paper that the journal will publish, and it includes the journal’s typesetting and formatting. It is also referred to as the Version of Record.