As more research fields develop some computational aspects, teaching good software practices and development becomes essential across the scientific spectrum. With the exception of some disciplines with a strong computing tradition, students and staff in most other areas have to adopt generic materials, which are quite often limited in scope or make unrealistic assumptions about the background of their audience. Every discipline then has to teach some specific skills to starting researchers and students in their field. Doing this training takes time (a lot of time!) and there are often only a few experts in a particular group that have the specific knowledge to do it. Often they are the busiest people already, so how can we design a training program that is sustainable for an active science, but passes on the skills that only we can teach? And how can we make sure it is accessible to learners from our field, and effective?
Most fields have a set of core skills that are needed by all researchers. These are often addressed by generic training courses, such as Software Carpentry. That’s great, but often a little too basic for many fields. You may have come across this situation yourself: students (usually from computational fields) finding the material too rudimentary, feeling like they are not learning anything after quickly completing all the exercises, and being disappointed with the course. The aim of Software Carpentry training to be applicable to all disciplines perhaps makes this unavoidable. One way of engaging students that would otherwise not get anything out of the course is to develop training materials at a level of experience appropriate for their background – and this has implications both when designing the material and when delivering it. Using specific examples from their own field as part of the training can also be a great motivational tool, not just for getting the students themselves more involved, but for convincing PhD supervisors who are often uncomfortable with their students “wasting” time on generic courses rather getting on with their core work. We can often share these more advanced topics between closely related fields – so look around for material that has been developed by other people. Hopefully it’s something you can collaborate with them on to make it even better for everyone.
Something to be aware of when developing discipline-specific materials and courses is the risk of going overboard. Adopting too narrow an approach would severely limit the number of students that will be attracted to it or find it useful and often the material will more quickly become out of date. It also makes it harder to reuse the resources developed, hampering the sustainability of the entire effort. It is therefore important to keep the big picture in mind when designing and delivering the courses: having generic objectives is a way of ensuring that the lessons learned can be more broadly applicable, despite the examples and motivation being more focused. The Data Carpentry approach of having discipline-specific training materials could serve as inspiration in this task.
When designing training that’s quite specific to your field you can learn many useful things from the way that more generic training is run. Giving students their red (help!) and green (it’s ok!) stickers can still be used for domain-specific training. Of course, then you need a good set of helpers to go around and be able to help the students to fix their problems. How can you get a set of motivated people to do that? Well, one good way is to ask people who went through previous rounds of training to help out with the next iteration of the course. Usually they will have mastered the skills you taught them before, but still remember the things they found difficult in the past – that makes them perfect to become helpers and then even trainers themselves. And make sure you get feedback from students and helpers about the training.
That’s a lot of human effort we invest, but we need to stress that this is a very valuable investment to make and that it will pay off many-fold in the future. Collaborations and organisations should recognise and reward the efforts of students, helpers and trainers. We can work across different communities on some topics and always adopt best practices, which makes our domain specific training more sustainable. Training is a key part of our scientific success and our goal is to build a training community that can coordinate and sustain training material and events in the long term.