On September 8, 2019, Samantha Toet and Angela Li co-taught a 3-hour Forwards Package Development Workshop at a weekend R-Ladies Charlottesville Meetup.
The workshop took place as a result of Angela being in town - she reached out to Sam and suggested the workshop, Sam thought it was a good idea, and they worked together to coordinate the logistics (all Sam!) and teaching. By using the Forwards curriculum and pre-made organizing templates - with a few tweaks of their own, of course - they were able to pull together the workshop in a month.
The workshop was an abbreviated version of the full Forwards curriculum that allowed participants to develop their first-ever package. The workshop started with motivating the need to create a package, then walked through making a package from scratch, then went over best practices and sharing out a package. We thought it was a good “story arc” for participants: create, document, test, and share.
We enjoyed teaching the workshop, and there were several things we learned from teaching it:
Let them eat cake (first), or have participants create and explore their own package, no matter how small it is. You can help with some of the heavy lifting by providing sample functions to use in the package, but give them ownership of the full process.
Mistakes are good! Coding is never perfect or streamlined, so by troubleshooting on the spot, you’re demonstrating the iterative process. For example, Sam started off her session by live troubleshooting a Roxygen tagging issue. Participants could call out their suggestions and collaboratively come to a solution. Participants were also able to get a real taste of the process of looking at help pages, changing some part of the code, re-documenting and building the package, and looking at the results.
Focus on workflows and process over exact tooling. The goal of this workshop was not to make every participant an expert package developer, but help participants see the patterns of package development. By internalizing these patterns (for example, modify code -> load -> explore in console, or write tests -> modify code -> load), participants are able to understand the general workflow and start to ask deeper questions and explore more on their own.
If you’re interested in organizing an R-Ladies based workshop of your own, you can use the resources we developed. Please don’t hesitate to reach out to either of us for more information - we’d be happy to chat (or maybe even co-teach)!