Training in software and computing is an essential ingredient for the success of any HEP experiment. As most experiments have similar basic prerequisites we want to join our efforts and create one introductory software training curriculum that serves HEP newcomers from all experiments. This curriculum is made up of independent training modules and should contain all software skills needed as they enter the field while instilling best practices for writing sustainable software.
We have started this work here and have completed and tested several of our modules to great success.
A lot remains to be done! First and foremost, we want to expand the selection of training modules that we can offer. We have already started the work on some modules, while others are yet to be kicked off.
This is where you come in!
Ever wanted to teach your favourite ingredient to a successful HEP analysis in a way that is sustainable and will reach a large audience? Then you're at the right place. We can offer support and help you find your audience. Your module will live at our github organization which opens it up to improvements from anyone who has a github account.
Basically each module is a website like this one which is generated from a repository like this one. Quite fancy, isn't it? Don't worry if the source looks a bit overwhelming at first glance. The whole content is conveniently written in markdown, which will take you less than ten minutes to learn and we can help you to set up everything around it at the beginning.
The modules are suitable for self study, but can just as well be used to quickly roll out a training event (more information).
Very simple: In our kickoff meeting (or at the afternoon check in) we discuss about the work we want to do and form some groups. We will also make sure that everyone has a rough understanding of how to get started. Then we start hacking away! Finally, towards the end of the hackathon we present our results.
Don't worry if the few scheduled meetings don't work with you (because of time zone trouble or other issues): We'll make sure that everyone can contribute! In the end it's all about getting done the work. Perhaps reach out to us before so we know what you want to work on and we make sure that you aren't forgotten!
Perhaps you're thinking "well, I can do that at any time". And you're right, of course. But sometimes it's much nicer to block off some days to really focus on one thing and a workshop can be a convenient excuse for this.
What you want to focus on is essentially up to you. For inspiration you can look at the curriculum. There will definitely be work on a module on SSH and advanced git. We are also thinking about porting an existing C++ training (slides and video recordings) to our format. Python packaging (or package managers under Linux in general) would be another topic. But you can also bring in any suggestion of your own! We will most likely have several people working on different projects at the same time.
There's also a google document where you are very much invited to elaborate your ideas and see what other people have written! Don't be shy to leave your thoughts!
Of course we would be more than happy to see you bring your module all the way from creation to its debut training event, so we highly encourage you to stay connected! But we also perfectly understand if it is difficult for you to find time to continue contributing outside of the workshop. In that case we will try to find someone who can bring your module from where you left it to full fruition.
We want to make your contribution visible. If you make non-trivial contributions to the HSF Training mission (e.g. work on something during the hackathon), you can add your profile to the HSF Training Community. We are also currently working on making the content contributors of each module visible on the front page of the module in a similar fashion. Of course we are open to any other suggestions from your side as well.
If you have some more time to spare, take a look at the The Carpentries Curriculum Development Handbook. The approach of HSF Training is closely mimicking the example of Software Carpentry, so most of this applies to us as well. If you're more interested in the technical side of things, take a look into their documentation on how to create a module. Note however that we made some changes/adaptations.