Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

documentation: add hints for the first exercises without starter implementation #1075

Closed
daveziegler55 opened this issue Dec 6, 2017 · 15 comments

Comments

@daveziegler55
Copy link

I like your idea for allergy code.
However, I can't find any main method so I am having some trouble understanding how it really works.
Also I am having trouble running a test for $ gradle test in my terminal. Perhaps I am missing something in my install? Thank you.

@sjwarner-bp
Copy link
Contributor

Hi @daveziegler55 - the allergies exercise does not have a starter implementation with it in line with our POLICIES.md, as it is rated 4 or higher in terms of difficulty.

However, the enums used for this exercise are in Allergen.java. I imagine that you are getting this file confused with the implementation you are meant to create. If you haven't already, I would make another Java file in the src/main/java/ directory called Allergies.java, and then create your implementation in this file!

Please let me know if this helps - there is also guidance available in the Gitter room if you ever need it 🙂

@stkent
Copy link
Contributor

stkent commented Dec 6, 2017

This raises a good point about the transition from {stubs provided} to {no stubs provided}. We could probably make that transition less abrupt. How would folks feel about adding some hints to the earliest* exercises without starter implementations?

*The tricky thing is that we'd need to do this for several exercises in order to cover the set of {exercises that might be the first exercise a user encounters} due to the nextercism branching structure.

@stkent stkent added the support label Dec 6, 2017
@sjwarner-bp
Copy link
Contributor

I think that's exactly right - it would be a really good idea to put some hints in and ease users into the idea of making their own files.

This exercise is probably particularly confusing due to the fact that there is a file providing enums, but it isn't a starter implementation.

@FridaTveit
Copy link
Contributor

I agree that this is a really good idea :) But as @stkent mentioned, it will be really hard to keep track of which exercises to do this for. We could add hints for the first core exercise with difficulty 5? Or all exercises with difficulty 5? All exercises with difficulty 5 would probably be the most thorough while not being too hard to maintain. But it would require a lot of duplication...

@sjwarner-bp
Copy link
Contributor

There are currently 14 exercises with difficulty 5 - I agree with the point you are making regarding duplication @FridaTveit. 14 exercises is quite a lot, however (if I understand correctly regarding nextercism) it is quite possible that many users will not complete all 14, especially if they choose to specialise in a specific area. For this reason, I'd be apprehensive about a less thorough coverage.

Additionally, I agree that this will be easiest to maintain! 🙂

@stkent
Copy link
Contributor

stkent commented Dec 12, 2017

All with difficulty 5 sounds easier to maintain, for sure. We could still end up with paths through the curriculum that abruptly jump (if a path has no exercises with difficulty 5) but I'm not sure there's a reasonable fix available.

@FridaTveit
Copy link
Contributor

Sounds like we're agreed to do all with difficulty 5 then :) I'm happy to do a PR for that unless either of you particularly want to do it? :)

@sjwarner-bp
Copy link
Contributor

Sounds good to me @FridaTveit - go for it! 🙂

@FridaTveit FridaTveit changed the title $ gradle test documentation: add hints for the first exercises without starter implementation Dec 12, 2017
sjwarner-bp added a commit that referenced this issue Dec 16, 2017
@wolf99
Copy link
Contributor

wolf99 commented Dec 20, 2017

FYI - traversing the curriculum just by the core exercises, the first exercise I come across without a starter implementation is parallel-letter-frequency which is a level 6. Not having a starter implementation - nor any mention of creating one in the exercise's readme did through me for a moment. Given that I have worked with other language tracks it was only a moment. However, I can imagine that for people for whom this track is their first, this may take more than a moment to grasp.

@stkent
Copy link
Contributor

stkent commented Dec 20, 2017

Hmm, not sure what the right solution is here. Thoughts, @exercism/java?

@sjwarner-bp
Copy link
Contributor

sjwarner-bp commented Dec 20, 2017

It's an interesting issue. I was chatting on the exercism/java gitter and someone raised a concern over the flatten-array exercise not having a class supplied with it. I explained the situation and directed them to the README (as it has Frida's guide in), but it is interesting the user seemingly first experienced it in flatten-array instead of parallel-letter-frequency as specified above?

Regardless of that, this should still be fixed. Do we know what dictates the order of the exercises? While we don't have to strictly order by difficulty, it would make sense to me if we were able to re-order a bit to fix this issue. Obviously with nextercism this could be a little more tricky, but for the current linear order it should be fairly simple?

What do you think of this @stkent ? 🙂

@FridaTveit
Copy link
Contributor

parallel-letter-frequency is unlocked by the core exercise hamming. Other easier exercises without starter implementation are also unlocked by hamming such as phone-number (difficulty 5), nucleotide-count (difficulty 5), series (difficulty 5) and roman-numerals (difficulty 6). Which exercise the user does first at that point is up to them as far as I'm aware, at least in nextercism. So we can't really force them to do an easier one first. We could make parallel letter frequency unlocked by a later exercise, e.g. matrix.

Actually, come to think of it, parallel-letter-frequency should probably be unlocked by bank-account. They're the only two exercises to do with concurrency so it would make sense to group them together. What do you think @stkent @sjwarner-bp? :)

@sjwarner-bp
Copy link
Contributor

That makes sense to me - if it is going to cause an issue then it isn't adequately hidden by other easier exercises.

It makes sense to me that those two exercises should be paired, great idea @FridaTveit ☺️

@FridaTveit
Copy link
Contributor

I've made a PR :)

@FridaTveit
Copy link
Contributor

I think we can close this now since all the good first patch issues to add hints to exercises with no starter implementation have been closed. What do you think @exercism/java? 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants