Right now, somewhere, a grad student is struggling to make sense of some badly formatted data in a bunch of folders called final, final_revised, and final_updated. Nearby, her supervisor has just spent four hours trying to reconstruct the figures in a paper she wrote six months ago so that she can respond to Reviewer Number Two. Down the hall, the lab intern is pointing and clicking in a GUI to run an analysis program for the thirty-fifth of two hundred input files. He won’t realize that he used the wrong alpha for all of them until Thursday…
This isn’t science: it’s what scientists do when they don’t have the equivalent of basic lab skills for scientific computing. They spend hours, days, or even weeks doing things that the computer could do for them, or trying to figure out what they or their colleagues did last time when the computer could tell them. What’s worse, they usually have no idea when they’re done how reliable their results are.
Starting with their work at the Hacker Within, a grassroots group at the University of Wisconsin that they helped found, Katy and Anthony have shown that none of this pain is necessary. A few basic tools like the command shell and version control, and a few basic techniques like writing modular code, can save scientists hours or days of work per week today, and simultaneously make it easier for others (including their future selves) to reproduce and build on their work tomorrow.
This book won’t make you a great programmer—not on its own—but it will make you a better programmer. It will teach you how to do everyday tasks without feeling like you’re wading through mud, and give you the background knowledge you need to make effective use of the thousands of tutorials and Q&A forums now available on the Web. I really wish I had written it, but if I had, I couldn’t have done a better job than Anthony and Katy. I hope you enjoy it as much as I have.