Skip to content

Commit

Permalink
small updates here and there, shortening
Browse files Browse the repository at this point in the history
  • Loading branch information
bast committed Aug 16, 2024
1 parent 8654d43 commit 9e2f28c
Showing 1 changed file with 23 additions and 29 deletions.
52 changes: 23 additions & 29 deletions content/coderefinery-intro.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,21 @@
# About the CodeRefinery project and CodeRefinery workshops in general

:::{objectives}
- Understand what CodeRefinery is
- Understand how we got here
- Understand about the challenges to define CodeRefinery target audience
- Discuss what CodeRefinery is and how we got here
- Understand about the challenges to define our target audience
:::

CodeRefinery is a
[Nordic e-Infrastructure Collaboration (NeIC)](https://neic.no/)
project that has started in October 2016 and is currently
funded until February 2025. We are currently working on the continuation plans.
funded until February 2025. We are working on the continuation plans.

The funding from 2022-2025 is designed to keep this project active
beyond 2025 by forming a support network and building a community of
instructors and contributors.

:::{discussion} History

:::{discussion} History
The CodeRefinery project idea grew out of two [SeSE](http://sese.nu) courses given at KTH Stockholm in 2014 and 2016.
The project proposal itself was submitted to NeIC in 2015, accepted in 2015, and started in 2016.

Expand All @@ -26,14 +25,14 @@ its present form.
:::


## Main goals
## Goals

- Develop and maintain **training material on software best practices** for researchers that already write code.
- Develop and maintain **training material on software best practices** for researchers that write code/scripts/notebooks.
- Our material addresses all academic disciplines and tries to be as programming language-independent as possible.
- Provide a [code repository hosting service](https://coderefinery.org/repository/) that is open and free
- for all researchers based in universities and research institutes from Nordic countries.
for all researchers based in universities and research institutes from Nordic countries.
- Provide **training opportunities** in the Nordics using (Carpentries and) CodeRefinery training materials.
- Articulate and implement the CodeRefinery **sustainability plan**.
- Evolve the project towards a **community-driven project** with a network of instructors and contributors.


## Community
Expand All @@ -42,9 +41,10 @@ its present form.
Image showing the key areas of the CodeRefinery community: Workshops, chat inlcuding help channel, online meetings and co-working,
other collaborative training, eg on High Performance Computing topics.
```

CodeRefinery is not just workshops, we are community and want you to be part of it!

There is many different levels of involvement, from the occasional commenter in chat,
There are many different levels of involvement, from the occasional commenter in chat,
CodeRefinery ambassador (people who like the project and workshops and help us spreading the word) or lesson issue creators and lesson contributors to
local host, co-instructor or co-organizer.

Expand All @@ -64,21 +64,23 @@ The Carpentries aims to teach computational **competence** to learners through a
avoiding the theoretical and general in favor of the practical and specific.

**Mostly, learners do not need to have any prior experience in programming.**
One major goal of a Carpentry workshop is to raise awareness on the tools researchers can learn/use to speed up their research.
One major goal of a Carpentries workshop is to raise awareness on the tools researchers can learn/use to speed up their research.

By showing learners how to solve specific problems with specific tools and providing hands-on practice,
learners develops confidence for future learning.

:::{admonition} Novices
We often qualify Carpentry learners as **novices**: they do not know what they need to learn yet.
A typical example is the usage of version control: the Carpentry `git` lesson aims to give a
We often qualify Carpentries learners as **novices**: they do not know what they need to learn yet.
A typical example is the usage of version control: the Carpentries lesson
[Version Control with Git](https://swcarpentry.github.io/git-novice/)
aims to give a
very high level conceptual overview of Git but it does not explain how it can be used in research projects.
:::


### CodeRefinery audience

In that sense, CodeRefinery workshops differ from Carpentry workshops as we assume
In that sense, CodeRefinery workshops differ from Carpentries workshops as we assume
our audience already writes code and scripts and we aim at teaching them **best software practices**.

Our learners usually do not have a good overview of **best software practices** but are aware of the need to learn them.
Expand All @@ -92,29 +94,21 @@ We often qualify CodeRefinery learners as **competent practitioners** because th
:::

:::{discussion} Challenges related to defining our target audience
We often get the feedback "I wish I would have known X earlier!".
*Competent practicioners* have run into issues with **not** caring (or not fully understanding)
We often get the feedback "I wish I would have known X earlier!"
*Competent practitioners* have run into issues with **not** caring (or not fully understanding)
about version control, documentation, modularity, reproducibility before, so they are easily motivated to learn more.

For a *novice* these topics may seem unnecessary and "too much" and the workshop may feel too difficult to follow.
However, the materials are designed so that one can always revisit a topic, when needed.
The important part is that you know that "X" exists, and where to find more information, which is also beneficial for novices.
:::

---

## Best FAIR research software development practices?

It can be useful to ask the question: *best software practices for whom*?
CodeRefinery teaches *best research software practices* derived from producing and
shipping research software. These practices are also very good for sharing software,
though our audience will probably not need to embrace *all* aspects of
software engineering.
Therefore we also often call what we teach **good enough** software practices.
Participants of our workshops are encouraged to take from the workshop what they see useful for their own work.

:::{keypoints}
CodeRefinery:
:::{keypoints} Keypoints: CodeRefinery
- Teaches intermediate-level software development tool lessons
- Training network for other lessons, too
- It is difficult to define "best practices", we try to teach **"good enough" practices**
- Training network for other lessons
- Publicly-funded discrete projects (3 projects actually) transitioning towards an open community project
- We have online material, teaching, and exercise sessions
- Our main target audience are competent practitioners, but also novices and experts can get something out of the workshops
Expand Down

0 comments on commit 9e2f28c

Please sign in to comment.