By Damien Irving (Postdoctoral Fellow, CSIRO Oceans and Atmosphere)
When thinking about education and training in scientific computing, you’d be hard pressed to find a bigger success story than Software Carpentry. Over the past five years or so, this volunteer organisation has not only provided training for thousands of researchers around the globe, it has also revolutionised the way we produce training materials. Rather than have individual experts produce stand-alone, static textbooks that are almost immediately outdated, the global community of volunteer Software Carpentry instructors – who all undergo a short training course in educational psychology and instructional design – is collaboratively (via GitHub) and continuously updating and improving its lesson materials.
Over this period, a number of AOS societies and research institutions have run Software Carpentry workshops for their members and employees. Personally, I’ve hosted a workshop alongside the past four Australian Meteorological and Oceanographic Society (AMOS) annual conferences. At these workshops we teach the generic Software Carpentry Unix Shell, Python and Git lessons over the first day and a half, and then finish with an AOS capstone lesson on the final afternoon (i.e. looking at how those generic tools and skills can be applied in the AOS sciences). Since most AOS people are self taught programmers, the workshops are typically the first time participants have met basic science-related software engineering concepts like version control and the importance of writing modular, re-usable and testable code. As a bonus, they learn Python along the way.
First and foremost, I think the PyAOS community should look to increase the number of Software Carpentry workshops it runs over the next few years. At the moment a few people in the community run workshops on their own initiative, but there isn’t a coordinated community-wide focus or commitment to doing this. A likely bottleneck in achieving this aim will be getting enough interested instructors through the training/accreditation course. The course itself isn’t very long (two full days), but demand is high and preference is given to organisations who are members of the Software Carpentry Foundation. If a major AOS society or institution joined the Foundation (see related information here) and committed to hosting an instructor training course for the community, this would help considerably.
A secondary aim might be for the PyAOS community to get involved with Data Carpentry. As the name suggests, this organisation is a sibling of Software Carpentry that focuses on developing and delivering discipline (or research data) specific lessons, as opposed to the generic approach taken by Software Carpentry. This is obviously a big task (it’s much harder to maintain a set of high quality lessons for many different research disciplines at once), but the PyAOS community would be well placed to take the lead on developing lesson materials specific to netCDF data and the Python libraries (e.g. iris, xarray) used to analyse them.