Scientific computing doesn’t have to hurt

Amy Brown handles communication and scheduling for Software Carpentry. The post title alludes to the goals of Software Carpentry, a volunteer organization whose members teach basic software skills to researchers in science, engineering, and medicine. It’s a great organization, and we’re really excited to have Amy tell our readers more about it in this week’s guest post.


Regular readers of The Molecular Ecologist will know that it’s a great idea to harness the power of the command line, master a programming language, and share your code. But if you’re new to the shell and version control systems like Git it’s hard to know where to start. Even scientists who have been programming for a while have often not received formal training on their tools.

Software Carpentry was created to fill in this knowledge gap. Our two-day bootcamps provide an overview of four core computing topics:

  • automating repetitive tasks
  • structured software development
  • testing
  • version control

The automation section teaches the basics of file management and navigating directories, as well as the intricacies of pipes and redirection, of course creating simple shell scripts to automate repeated tasks.

The software development services section offers a brief overview of Python or R, and discusses good coding practices: variable naming conventions, commenting, and other ways to make your code comprehensible to your collaborators (and to you, six months from now).

The techniques we teach for testing your code will help prove — to yourself or others — that it does what it’s supposed to do.

Finally, Software Carpentry bootcamps teach version control, both as a way of sharing code and as a way to keep track of changes to your code and revert to earlier versions when necessary.

It’s a lot to cover in two days, but our team of volunteers is continually refining our teaching infrastructure and techniques. Bootcamps are structured as workshops, with lots of hands-on tutorials interspersed with demonstrations. Each bootcamp is staffed by several helpers as well as two or more instructors, so there is always someone nearby to help stuck learners get unstuck.

If you’re interested in hosting a bootcamp at your institution, get in touch. (There’s more information on how to run a bootcamp in our Operations Guide.)

If you’re pretty confident with the tools and techniques we teach, we’d love to have you on the team. You can be a helper at a bootcamp near you, join our online instructor training program (or use our material to teach your own workshop, as Anthony Scopatz recently did at the African Institute for Mathematical Sciences), or help out behind the scenes.

In the last 18 months alone, Software Carpentry has helped over 3500 scientists write code better, and write better code. If you’re interested, we’d love to work with you.

Thanks to Peter Fields and the Molecular Ecologist blog team for inviting us to write a blog post about Software Carpentry.

This entry was posted in community, howto, methods, software. Bookmark the permalink.