By Mario Antonioletti.
A version of this post originally appeared on the EPCC blog.
I participated as an instructor in a Software Carpentry bootcamp that took place this week in Oxford. The bootcamp was organised by Jonathan Cooper and targeted at researchers involved in the Oxford Doctoral Training Centre. Shoaib Sufi from the Institute was the other instructor at this event. The three of us taught about 30 attendees from various disciplines studying for DPhils (this being Oxford) as well as some Postdocs, giving them some basic computing skills that we hope will make their research more productive.
This bootcamp included topics such as: version control (git), python, testing in python, python’s NumPy and SciPy and bits of MATLAB and relational databases. All the materials used are available online, and are a branch of the much larger, publicly-available Software Carpentry training material that is being developed on GitHub. There is a wealth of stuff that is really worth looking at.
Software Carpentry bootcamps help researchers to be more productive by teaching them basic computing skills that will help them in their research. Uniquely, this is not done by just lecturing but by doing.
The Institute is the UK coordinator for Software Carpentry and has, I believe, been critical in promoting the bootcamps in the UK. Mike Jackson, my office mate of about a decade, currently coordinates many of the bootcamps and both he and Steve Crouch, another member of the Institute, have instructed in the UK, Europe and the USA. I have been involved in two previous bootcamps as a helper – one that took place in Newcastle and the other in Edinburgh - so I thought I should now step up and instruct.
For this bootcamp I chose to instruct the version control and testing. I already had an interest in git and had been using it in a basic form. I really like git but it does give you plenty of rope to hang yourself with. I managed to screw up my local repository by basing the materials I was customising on a clone of the wrong repository and then updating from the right one – it led to a mess. Luckily it is hard to lose files but what I found is that you begin to care as much for the provenance, the history of changes and commit messages, as you do for the files themselves. Still, I am now a convert and think git is better than Subversion or CVS. The testing was interesting too. Preparation took a lot longer than I expected because the materials have to be tailored to make them into a compelling narrative.
The verdict? The whole thing was a lot of fun. I deepened my understanding of the topics I taught and, as always, learnt new things at the bootcamps. I now want to deepen my understanding of Python. The attendees enjoyed the experience - with one chap getting so excited by git that he had started porting his code to it during the bootcamp!
I would highly recommend getting involved with Software Carpentry bootcamps as an attendee, a helper, an instructor or - if you fancy having one of these events at your institution/department - why not become an organiser? You can also contribute materials if you have any particular expertise that would help researchers to work more efficiently. If you are interested, start by looking at the Software Carpentry website.