By Mike Jackson, Software Architect
On 18th October I attended GRADnet's "Moving Forward for 2nd Year PGRs" day in London for physics post-graduates, and ran two sessions on "Writing better software to research".
SEPnet, the South East Physics Network, is a consortium of universities in the south east of England, promoting excellence in physics in both academia and industry, via research, collaboration, training, and outreach. GRADnet is SEPnet's collaborative graduate school which provides professional skills training to PhD students.
GRADnet's "Moving Forward for 2nd Year PGRs" day offered attendees a choice of 5 sessions both morning and afternoon, on Creating impact, How to write a successful Fellowship Application, Research data management, Unconscious Bias and Writing better software for research. 66 students attended the event, held at the Park Crescent Conference Centre, London.
My 2.5 hour session on Writing better software for research provided students with a hands-on code review to get them thinking about the qualities of good, and bad, code. I gave an introduction to a selection of best practices from Wilson et al.'s highly recommended 2014 paper Best Practices for Scientific Computing, complemented with numerous examples. Students were also directed to further training and resources including Software Carpentry, Data Carpentry, ARCHER, DiRAC, HPC UK, the Digital Curation Centre and the UK Research Software Engineer Association. I concluded with Croucher's Law "I can be an idiot and will make mistakes...You are no different!" confessing my recent software sins and reasons for these.
Students commented that the most interesting parts of the session were the hands-on code review ("helpful and engaging"), version control, Makefiles, automated testing and hints and tips for good clear code. One commented that it was the "Best workshop I've ever done." Some would like to have seen more non-Python examples (C++ for example) and some examples with parallel code. A few students felt that the session was too elementary, but did comment that it as a "Good refresher" and "useful for formalising knowledge picked up "on the job'". A couple of students commented that there was "too much just sitting there listening" and that it was "Long winded" and "dragged" and "Could have been more hands-on". I'd agree ... I was flagging after talking for 2 hours AM and PM! For future runs, another hands-on exercise, possibly on testing, and a 2nd instructor, would be a must.
It was a rewarding day and I'd hope we'd get the chance to return, with an improved session, next year.
For more on the event, see SEPnet's blog post on "GRADnet Moving Forward for 2nd Years event is a success!"