Code Clubs - good coding practices for all


Code clubs are initiatives where people meet to improve their coding skills and help each other out. I am a big fan of them as I believe that they can help improving the quality of research. Because as we all know: Better Software, Better Research.

I recently learned more about the code club at the Max Planck Institue of Psychiatry (MPIP) in Munich and would like to share how they organize it in the hopes that it might inspire you. Thanks to the organizers Vera Karlbauer and Jonas Hagenberg for helping me write this post.

CodeClub at MPIP

Target audience: researchers who use code but may have quite varying programming skills (from wet-lab scientists to bioinformaticians).

Goal: increase the quality of their research software and code scripts for better reproducibility and fewer errors.

Structure:

Meetings: 1x per month, ca. 1h

Format:

  • Short presentations (ca. 10 min) about a relevant topic
  • Short exercises in small groups

Code Review:

  • Platform to find a partner
  • Help with how to perform a code review
  • Discuss problems and experiences in the group

Implementation:

  • Ask everyone to present – does not need to be polished
  • Set realistic goals (only 1h)
  • Use breakout rooms for exercises when online
  • Mix experienced with less experienced participants
  • Collect presentations at one place

Organizers: Two PhD students (currently Vera and Jonas). They recruit a new candidate from the attending students when one of the two PhD students graduates.

Implementing a code club can be challenging. In their talk, Vera and Jonas mentioned the problems, but they also found some solutions:

  • Beginners are reluctant to join:
    • Communicate and advertise during onboarding
    • Low entry barrier and easy first wins (use a project template!)
  • Wide range of different projects and software.
    • Topics that are programming language agnostic but useful for many, e.g. literature review tools.
    • Promote a project template for better comparability.
    • Best practice template scripts for R and Python (still work in progress).
  • Often data analysis scripts instead of software development.
    • Be pragmatic. E.g. instead of full documentation or github code reviews, code comments may be enough.
  • Code review is time-consuming and is not considered an important contribution.
    • Long-term solution: change culture and recognize achievements.
    • Clear code review guide.

Other code clubs

There are many similar initiatives and quite some useful resources. Here is a list of a bunch of them. Please check them out and consider starting join a code club or even starting one ;)

Support needed?

Need help with starting a code club or implement other strategies in your group/institution/project to improve the quality of your code?

The Digital Research Academy does just that.

All the best,

Heidi


P.S. If you're enjoying this newsletter, please consider supporting my work by leaving a tip.

Heidi Seibold, MUCBOOK Clubhouse, Elsenheimerstr. 48, Munich, 81375
Unsubscribe · Preferences · My newsletters are licensed under CC-BY 4.0

Dr. Heidi Seibold

All things open and reproducible data science.

Read more from Dr. Heidi Seibold

I get asked for career advice all the time (even though I am just figuring stuff out myself). Generally I try to help by listening and asking questions, but there is one thing that I tell everyone who wants to hear it: pick work where you like the people. How do you pick the research group you want to work with? My recommendation is to pick based on two things: Do you like the topics they work on? Do you get along with the people in the group (in particular your boss/supervisor)? The first is...

The academic publishing system is broken. I think we can all agree on that. But what if you want to have an academic career and at the same time stick to your values of openness? Here's my pragmatic take. I understand the fear of not publishing in established journals. We all want to have a good career and feel like publishing our papers in the journals that our peers and employers deem worthy seems like an important step. As a pragmatic open scientist, I generally recommend not to be too...

Have you complained about the inefficiency of public administration before? I think, you're not alone. In this post I want to share my journey with trying to help increase efficiency through data literacy in the public sector. I am a person who likes to solve problems. Most of my time is spent solving problems in academia, but I decided to leave my usual grounds for a special project where I can help solving problems in the public sector. Why do I care about solving problems in the public...