Inspired by Erik, a proposal to update Arturo’s difficulties.
I’ve been considering bumping a few exercises up in difficulty given that there’s a lot of medium exercises.
With the caveat that Arturo has a pretty small sample size, I think this approach is fine. We’re not lowering the displayed difficulties (medium to low for example) so that won’t hurt anyone’s rep. The few exercises we’re raising the difficulty for will end up giving the students more rep. That’s a nice surprise for them.
The one big change and this goes for all my tracks is that I solely go by displayed difficulty (easy, medium, or hard). As a result, I try to consistently give easy exercises 2, medium exercises 5, and hard exercises 8. There are some deviations from that since I haven’t gone through difficulty levels in a bit, but that’s the goal at least. That makes it easy to sort all the easy exercises alphabetically, then the medium ones, and finally the hard ones.
I’d also be interested in doing this for CoffeeScript and Vim script if you’re interested since the difficulties are a little low across the board and haven’t been revisited since a lot of exercises were added to both during 12in23 and 48in24.
Same thing applies where I only want 2 (easy), 5 (medium), or 8 (hard).
Done. Sheet is current sorted by difficulty then name.
The tricky bit, since I’ve done all these exercises multiple times, is to put myself in the mindset of a more junior developer. When on the fence, I tended towards medium.
No hard exercises yet.
Looks good. Feel free to PR the changes.
Just to clarify for posterity: easy exercises get difficulty 2, except for hello-world which gets 1 so that it sorts first.
My process to do this:
- from the build status page, inspect the practice exercises and copy the whole
<details>block. I couldn’t seem to copy the rendered data, probably thanks to it being a details block - transform that HTML to CSV (I like to use vim for this kind of repetitive task: I can record a macro and replay it as many times as needed)
- extract the exercise name and current difficulty as csv from the config.json file
- join the two csv files: in fish syntax
join -t, (sort build.csv | psub) (sort diffs.csv | psub) > current.state.csv - copy-paste that into google sheets, sort by various metrics to get a feel for the proposed difficulties.