Yes, up at 7 am for a 3 mile run, a cold shower, then a breakfast of gruel followed by a full day of software engineering techniques … well, not quite: the software engineering part is true though. The Software Carpentry project is running what it calls Boot Camps to teach scientists modern software engineering practices. The U. K. Software Sustainability Institute held the first such boot camp in Britain, and filed this report on the event.
Software Carpentry is a project started by Greg Wilson of the University of Toronto to help scientists become more productive programmers. The project came about because scientists are generally self-taught lacking the software skills to write sustainable code in this era of “Big Data,” in which computational expertise is assuming ever greater importance. According to the numbers on Software Carpentry’s web site, 95% of scientists are primarily self-taught but spend 40% or more of their time “wrestling with software.”
Software Carpentry’s approach is to combine short, intensive “boot camp” workshops with self-paced online instruction. The camps cover the “core skills needed to be productive in a small team: program design, version control, testing, the shell, and data management,” while the on-line training covers the core topics in more depth. The aim is to develop healthy practices rather than teach particular technologies.
- Beginner friendly
- Easy learning curve
- Now know how to use SQL
- Doesn’t matter what programming language I used in the first place
- Taught functional programming rather than object-oriented
- Material backed up by anecdotes and evidence
- Good at giving thoughts rather than skills
- Can go back and share with other members of the group
- Killed my fear of version control
… and more. On the minus side:
- Can’t afford to buy all the books referenced
- Too early a start [9am start both days in central London]
- Too much to take in
- Not enough functional programming
- Lower level than group is used to
- Need coffee at the start of the morning [which we didn’t have on day 2]
- Problems with the wireless network
- Need biscuits in the afternoon (Love this one – astrocompute!)
… and more. Neil pointed out that for an intensive workshop, a comfortable working environment is required for productivity: sweaty rooms, lack of cookies and coffee make for grumpy scientists.
My impression from afar is that the workshop was a technical success, in that that the attendees learned valuable skills that will make them more productive scientists, and that the format promotes fast learning. Aside from the need for an air-conditioned room, I gain the impression that perhaps too much may be included in the class. This is not a comment on the class, but on the nature of the work and skill-set scientists need: there is so much to learn. I wonder if the optimum long term term solution is to begin to lobby to have these techniques included in the graduate curriculum, so they can be learned over a couple of years rather than by “cramming.” The splendid Software Carpentry web site already contains much of the material needed for the curriculum.