Developer Training#
The page contains a collection of training material for research software developers. Consider this list a loose collection of resources rather than a comprehensive series. This page was written by Rafael Mudafort, and I give my own recommendations and opinions included in the descriptions below. Feel free to reach out to me with questions or comments.
Internal to NREL#
This section section contains training material that was developed at NREL and requires access to the NREL VPN to view.
Lunch and learn style talks by Rafael Mudafort given at NWTC between 2019 and 2020
Some are better than others but all are aimed at new hires, especially interns and post docs. The objective was to elevate the skill set for those at NWTC who had the least confidence in software development and generally using a computer in this way (command line, ssh, IDE’s, etc).
Advanced git usage: getting out of a problem (Not recorded but this one should be given again and recorded)
MBAP Software Engineering for Engineering Software (SEES) Seminar Series
Computational Sciences Tutorials
This is from the DAV group and there is a lot of content. I have not watched all of these because there are so many, but the ones I have watched are pretty good. Some tend to be focused on database management and web development – things that are less applicable to NWTC. However, there’s some really good stuff here especially the ones focused on HPC usage. I would suggest this to new hires as “extracurricular”. After they have a good foundation on the topics they’ll be using in their day to day, these tutorials would broaden their knowledge a bit and hopefully spark curiosity.
External#
While there are infinite resources for software development training on the internet, I’ve found these to be particular relevant to work at NWTC.
Missing Semester of CS Education from MIT
This is a really excellent resource for practical topics on using a computer in the way we do in scientific research. It should be the first stop for new hires. It’s very approachable and you can skip around sections.
-
These tutorials are aimed at national labs and scientific researchers. They can be quite broad, but generally are well thought out. While I find many of them only tangentially relevant, a few have really shaped the way I think about software at the lab over the past few years, and I’ve listed some of those below.
Software Design Patterns in Research Software with Examples from OpenFOAM
What I Learned from 20 Years of Leading Open Source Projects
Software Engineering Challenges and Best Practices for Multi-Institutional Scientific Software Development
A Workflow for Increasing the Quality of Scientific Software (in Computational Science and Engineering)
Modern C++ for High Performance Computing
Modern CMake
US RSE Education and Training seminar series
I highly recommend engaging with US RSE, in general, since there are many other resources supporting both the practice of research software engineering and the people themselves