-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Copying the Ruby track structure #1614
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
Comments
A lot of the exercises in the core Ruby track will have a significant amount over overlap in the Python track. Personally I would eliminate I would ten to put The I would suggest we keep |
@yawpitch Superhelpful. Thanks. The point of two-fer in Ruby is to teach the very simple things like indenting (two spaces), conditionals, etc. The default argument is in many ways incidental to the point of the exercise. Is there another exercise that is as simple as two-fer that could achieve the same thing? |
Also I'll add in a vote for |
@iHiD though I personally dislike |
I'd be happy to see |
Personally, I'm OK with Two-Fer -- it's a good confidence builder, but it's weird that it's so far back in the course. Should probably be right after Hello World. While I like both Kindergarten Garden and Allergies, I agree that they're very similar. I agree that allergies would be a good one to be core, because if it was a side-exercise, I'm pretty sure a big segment of the students who try it would miss the binary entirely. Kindergarten garden's gotchas could be picked up as community comments on a side exercise probably. I personally really hate mentoring Book Store. However, it's a good exercise, I enjoyed it when I went through it on the track, and I really benefited from having a mentor there. But maybe it would be ok to leave as a side exercise that people could opt into? I really like Markdown and REST API as core exercises. They're kind of like the track master's theses, or, at least, that's what it feels like as both a student and a mentor on them. They present a little bit of design/architecture thinking as well as the idiomatic Python stuff. I'd have to comb through the side exercises to see if I think they would be good core ones, but, overall, I think you probably couldn't go wrong with mirroring the Ruby track for most things. It feels well-laid-out and each exercise introduces something important and new. |
Just in case there was any lingering concerns about this from a maintainer's point of view: When I reordered the exercises in this track for the new Exercism, I based the ordering mostly on the C# track. I think Ruby is a much better fit for a starting model than C#, so I have no problem with a significant reorder. A few other thoughts:
|
This is my strong feeling too. I feel like it is a nice gentle step up from Hello World, gives mentors the first opportunity to iron out newbie problems (inconsistent indenting, weird variable names, etc), and in 50% of cases can be approved in 20secs. |
Do we actually have/track this metric (or is it anecdotal)? If so, that's awesome! |
It's anecdotical but I've mentored >50 twofers and so I think it's a pretty authoritative anecdote :) @kytrinyx has similar experience in her tracks and @ErikSchierboom in his. |
I suppose my issue with That said part of my issue with it is that -- where it's currently placed in the order -- if it takes more than 2 seconds to approve, it's too much. |
Yeah. When we moved it to after Leap is good too for its simplicity - it's just much harder as a learner as there's actually something to solve that's logic-based, not code-based, and it hurts my brain every time to look at as a mentor still :) |
Right ... personal bias then. I'm now pretty certain I'm among the world's foremost experts on "what is a bloody leap year", but I'll readily admit I'd prefer to not have to walk so many complete beginners through 6-7 iterations on it, with 3-4 just on basic setup issues. I remove my objection to |
Seconded. I don't currently mentor, so I don't have that personal perspective. Thanks @iHiD. |
As for I'm all for leaving |
Two-Fer is kind of the perfect exercise to have right after Hello World (at least in most tracks). That's what it was intended to be. It has a single conditional, and is a good opportunity to talk about style things without blocking their progress. I've found that it gets a lot of people progressing without taking up too much mentor time, at least in the Go track where it's directly after hello world. |
Yeah, in modern Python it's most sensibly implemented like so: def two_fer(name="you"):
return f'One for {name}, one for me." Compare that with a decent def hello_world(name="World"):
return f'Hello, {name}!" And you see my reasoning. |
I do see your reasoning. The only issue I take with it is that |
True, just noticed that a whole bunch of people go for the reach goal, in all the tracks. And default arguments and string formatting are well covered by other exercises that offer more.
Regardless, if it's the second exercise I've got no objection... right now it's positioned in such a way in Core that anyone that reaches it feels like their time is being wasted.
…On Dec 3, 2018, 17:47 +0000, Corey McCandless ***@***.***>, wrote:
I do see your reasoning. The only issue I take with it is that hello-world is meant to be as simple as possible: no optional parameters, no string interpolation, etc. Just "Hello, World!"
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Just making #1633 visible to contributors to this thread. |
This is to get you all started with the rearrangement of the track, as proposed in #1614 Please note that I don't know Python; this was done based on the changes I made to the Ruby track. Hope it helps! 1. Copy Ruby's core exercise progression as a first step to help decrease the mentoring workload. 2. For easy reference, I put all the core exercises at the top of the file. 3. Removed Leap as a core exercises, and choose other cores to unlock the side exercises that used to depend on Leap 4. Raindrops was marked 'deprecated', but is part of the Ruby core; I reinstated it for now. 5. In Ruby Difference of Squares and Grain are still cores, but will be changed to sides. As Python didn't have them as core, I left it like that. 6. In Ruby, Robot Name is a core, but it is not an exercise in Python. To avoid extra work, I added Word Count instead. 00d5afa 7. Extra cores that are in Python, not in Ruby: Bob, Allergies, Sum of Multiples, Kindergarten, Grade School, Saddle Points, BinarySearch, List ops, Bookstore, Markdown, Rest-api. I added commits for each of them, so that you can easily revert them. My changes are based on either considerations I made to the Ruby track, or a rough estimation in regard to the changes in this PR. - [ ] Kept as core: Kindergarten Garden; Grade School; Book Store; Markdown. - [ ] Changed into side: Bob, Allergies, Sum of Multiples, Saddle Points, Binary Search, List Ops; Rest-API. *Closes #1614* Maintainers To do : - [ ] Squash PR before merging - [ ] Ping Jeremy and ask to un-deprecate Python/Raindrops
Hello @exercism/python
Python is one of two tracks that we're really struggling to mentor. The main reason seems to be that the structure of the track isn't massively easy for beginners to upramp on, so mentors are having to solve a lot of issues on each exercise.
We're currently working on a project to build a system to make structuring tracks easier. We'd like to work on the Python track for that as soon as it's ready. However, in the meantime, I think we should re-order exercises to be the same as in Ruby, which has had a huge amount of effort put into it in terms of thinking about structure.
If anyone massively disagrees then please speak up. Otherwise we'll do this in the next week or so. If anyone would like to volunteer to do the PR for this, then that would be super helpful, otherwise I'm tentatively assigning this to @kytrinyx .
The text was updated successfully, but these errors were encountered: