CodeYourFuture / curriculum

The CYF Curriculum
https://curriculum.codeyourfuture.io
Other
29 stars 35 forks source link

Introduce exports/require or similar somewhere between Jest and Data Groups #1062

Open illicitonion opened 2 hours ago

illicitonion commented 2 hours ago

Data Groups has instructions that assume you're writing separate implementation and test files (e.g. in https://programming.codeyourfuture.io/data-groups/sprints/1/prep/#mean)

But until this point we've only ever written things in one file, and never used something like import/require/exports.

For now I suspect trainees will just implement everything in the .test.js files they create (and maybe even not notice that they're making other files).

But the coursework for this sprint (https://github.com/CodeYourFuture/Module-Data-Groups/tree/main/Sprint-1) has some separate implementations and then starts just assuming you'll know how to set things up from scratch.

For now I'm going to add a little scaffolding, but we should introduce these concepts (maybe in the Jest sprint following learning Jest?) so our trainees can start practicing them.

SallyMcGrath commented 2 hours ago

We set it up in the components workshops eg https://workshops.codeyourfuture.io/#components-2

illicitonion commented 2 hours ago

A few risks here:

  1. Workshops are optional, both in terms of "who comes to class and does them" and in terms of "the workshop block lists multiple possible workshops" (and on top of that, components 2 has a prereq on components 1, so the correct workshop needs to have been selected in both sprints). We should work out how to make both of these workshops mandatory, if we're going to rely on knowledge from them.
  2. That workshop has a lot of new concepts, content, and goals. It's likely that even if that workshop is attempted, many trainees won't get through enough of the content to learn this particular concept (e.g. they may end up spending an hour learning about git branching workflows).

I think it's worth throwing in one short 10 minute block on this just in case :)