As a Software Carpentry instructor, I gained valuable cross-discipline experience: communicating difficult concepts to non-experts, developing skills in computing tools, collaborating with a team, and demonstrating my commitment to better computing skills by volunteering my time. My involvement with Software Carpentry also introduced me to a unique professional community of people who care about research and computing, which is typically not found in a single university/lab/office. This community has introduced me to new ideas, tools, and job postings from off the beaten path.
Christina Koch helps researchers at the University of Wisconsin, Madison, access and utilize large-scale computing resources to transform their research.
Software Carpentry helped me to explore the ways in which I improve and maintain my code. This made it easier for me to look back upon my old work and adapt it for new purposes, thereby making my research progress more quickly. It has also let me ask types of questions that I previously had no ability to address.
Minyoung Wyman studies the evolution of male and female differences using fruit flies as a model organism
I depend on the techniques taught in this course to maintain reliable programs, scripts and data organization. The time management, revision control, debugging and testing strategies are absolutely essential to build and maintain my projects. The basic Unix, shell, and scripting skills save me significant time and effort every day. It’s an invaluable resource for computational researchers.
Anita Oder is helping develop a set of optimal experimental planning and analysis tools for neuroimaging research
While doing Software Carpentry, I made significant changes to the program I was using in my research. I felt like I was finally in control of its behavior, not vice versa. I still refer Software Carpentry to anyone new to programming, best practices, or even Python, especially if I have to work with that person.
Elango Cheran’s MSc thesis was on detecting structural variants from paired-end sequencing data
Like most psychology students, I got no formal training in computational methods during my undergrad or graduate program. This meant that I was effectively cut off from the tool I was using and pessimistic about my chances of ever mastering it. Software Carpentry demystified programming for me and also gave me a solid background in software development practices. I now use tools that I never would have considered before taking the course, and have even accepted a postdoc in a computation-heavy lab, which would have been out of the question. My only regret is that I wasn’t able to take this course earlier in my degree!
Hanah Chapman studies the evolutionary psychology and cognitive neuroscience of human emotion
Deadline after deadline: research life is as simple as that. As a consequence, research software is too often written in a rush. How many of you have faced that little, tricky, hidden bug a few days before submission? If you did, you also know that feeling of mistrust of your code. Software Carpentry showed me how easy and rewarding it is to write code that is testable from very early stages: write a little function, and immediately check whether simple examples yield the results you expect. And while Subversion repositories are not so easy to set up, once they are working, it’s like having a perfect lab assistant to tell you what is going on at any time.
Enzo De Sena builds physical and acoustic models of surround sound
Before I attended the Software Carpentry workshop, I honestly didn’t think I’d pick up anything useful other than a few minor tips and tricks because I had been programming for over 6 years at that point. Much to my surprise, Software Carpentry transformed the way I approach programming. I learned how to write better, flexible software with command-line options; the importance of open-source, reusable software in research; and was introduced to the best research notebook I’ve encountered so far: IPython Notebook. I couldn’t recommend Software Carpentry enough, even for the veteran programmers out there.
Randal S. Olson studies biologically-inspired artificial brains and algorithms at Michigan State University
I was a physicist in a biology lab, working mostly with biologist with little or no knowledge of programming. What Software Carpentry taught completely changed our way of working. It was hard to understand at first why seemingly simple tasks sometimes took longer, but after a few weeks we were able to automate days of work so that we could have a coffee break and brainstorm on the actual science. This completely changed the way we envisioned studies, from limiting ourself to what a student could manually analyze to collecting as much data as possible in order to investigate modification of mouse Oocytes maturation at timescales we wouldn’t have looked at. And even though we didn’t have deep training in some topics, just knowing that things like regular expressions existed allowed the team to consult experts. This allowed us to structure the way we did experiments and store data in better ways, which in turn made getting new team members up to speed much easier.
Matthias Bussonnier is a post-doc at the Berkeley Institute for Data Science
Have a story of your own you’d like to share? Please let us know.