The HSF Training Hackathon!
The big goal!
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.
What are the next steps?
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.
Tell me more about these training modules
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).
So what will happen at the hackathon?
Very simple: In our kickoff meeting we select some modules that each of us wants to work on and 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.
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.
Which modules will we focus on?
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.
What happens afterwards?
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.
Any preparations required?
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.