Several Ruby exercises don't define the required class/module interface at all

For example, the “DnD Character” exercise (https://exercism.org/tracks/ruby/exercises/dnd-character): The Instructions describe how (pen & paper) DnD character generation works but it does not say what methods I should implement, what arguments these methods accept and what type of values they should return. It does not say that class method :constitution should probably be defined by me (it’s not in the template, it’s not mentioned in the Instructions but the test script seems to expect it).

The exercise template also does not help. It defines the names of some (not all) methods and says "Write your code here. Make the tests in dnd_character_test.rb pass. If you understand what this test file does, you probably do not need to do this exercise. I certainly don’t.

I have now completed 23 Ruby exercises and about 10 of them were like this - I had to dig in the test.rb to understand what is exepected of me. I managed to do that so far, but with “DnD Character” exercise, I am completely lost and cannot complete the exercise because I don’t understand what’s expected of me.

Hello. The aim with most Exercism exercises is that you read solve them using Test Driven Development (TDD) where you read the tests. The exception is the Concept exercises. I do wonder if we should at least add a base example to each exercise, but I’ll have a seperate discussion for that. Let’s solve this one for you for now here.

I’ve added this PR to clarify. Does it help?

Yes, that definitely helps. I was clearly mistaken about your target audience, I did’n know they are supposed to know what TDD is and use it.

2 Likes

Great!

Yeah, Exercism is aimed at developers. It’s a commonly misunderstood thing (despite the fact all the welcome emails/videos explain it, I can’t seem to get that message through! :slight_smile: ) Ironically, we are now creating beginner content, but in isolation (e.g. the Bootcamp :))

Seen, approved, and brought in!

Thanks for the motivation for the change @fuxoft .