Code Monkey home page Code Monkey logo

website-copy's Introduction

Readme

Copy for the Exercism website

A repository for the copy used on Exercism's website. This repository is directly read into the site at periodic intervals.

Contributing

Good copy and documentation is just as important as good code so we are massively grateful for contributions to this repository.

  • If you find mistakes or missing information on any pages, please submit a Pull Request. You can easily do this by editing the file directly on GitHub and then following the user-interface prompts.
  • If you think a new page should be added to the website, please open an Issue so that we can discuss it.

Thank you! 💙

Mentor notes

The structure within the repository is: /tracks/$track_id/exercises/$exercise_slug/mentoring.md.

  • You can easily edit the files within GitHub to create Pull Requests for changes.
  • We'll be offering some mentors write permissions to the repo so that they can merge PRs without waiting for us to check everything.
  • You'll find a button to display the Mentor Notes when you start mentoring a submission, if notes are available for that exercise.

Please use ### for headings and try to keep to a structure of:

  • Reasonable solutions: 1+ solutions that solve this problem well.
  • Common suggestions: Good suggestions specific to this exercise. Good lessons that emerge from it.
  • Talking points: Questions to challenge more advance learners with.

Here's an example for Ruby's Isogram.

This is how you create a new file:

Create a new file

website-copy's People

Contributors

amaliacardenas avatar angelikatyborska avatar br1ght0ne avatar canhascodez avatar cmcaine avatar emcoding avatar erikschierboom avatar exercism-bot avatar gustavosobral avatar ihid avatar isaacg avatar jeffdparker avatar jiegillet avatar jmrunkle avatar joshgoebel avatar kntsoriano avatar kotp avatar loriking avatar michael-berger-fr avatar michaeldimmitt avatar nicolechalmers avatar nobbz avatar pgaspar avatar ricemery avatar rpottsoh avatar saschamann avatar sleeplessbyte avatar sshine avatar tehsphinx avatar yaahc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website-copy's Issues

Javascript Mentored Track - Hello World

So being a new member here, I just entered the javascript track and I tried starting the 'Hello World' core track. Its grey and unclickable, not sure why - i.e. I can't start...

Screen Shot

More real estate on the mentoring view

Hi,

Could we please increase (or make it scale) the mentoring view?

Currently about half of my screen is unused, yet I have an horizontal scroll bar on the code part, and the commenting section is small...

image

[WIP] Create Mentor Guide

Getting Started with Mentoring

Navigating the Mentor Dashboard

To get started with mentoring, log into your Exercism account and click on “Mentor Dashboard” in the main menu.

menu

You will see you Mentor Dashboard which lists solutions that have been submitted by learners and are ready for mentor feedback. Here you can filter the solutions by Status, Track (language) or Exercise. We recommend using the “Exercise” filter so you can give feedback on multiple solutions while a particular exercise is fresh in your mind.

The right hand side shows how many solutions you’ve mentored so far so you can see how your hard work if you’re helping out the community.

dashboard

Click on one of the solutions to start giving feedback. This will take you to the mentor feedback interface where you can write and submit your feedback.

Giving Mentor Feedback

You can click the the “Instructions” tab to remind yourself of what the exercise is about. These are the same instructions given to the learner.

instructions

The "Test Suite" tab shows the tests that the user has made pass in order to solve the exercise.

testsuite

The “Solution” tab is the code the learner has submitted for feedback. The iteration number is shown in the top right corner.

solution

We recommend taking a look at the learners previous iterations so you can see their progress and give helpful feedback which considers their journey.

iterations_censored

Under "Mentor Discussion" you will see two tabs where you can write your feedback and preview what you've written.

write

preview

Once you're happy with the feedback you've written, click "Comment". If you're not sure what feedback to give, paste a link to the solution (e.g. https://exercism.io/mentor/solutions/...) on the relevant language channel on Slack and brainstorm some ideas with other mentors.

comment

If you come across a solution you don't want to give feedback to, you can click the "I'll pass, thanks" button and you won't ever see the solution in your Mentor Dashboard queue again.

pass

When you think a learner has learnt enough from the exercise (i.e. they've touched upon a couple of concepts and made good process with each iteration based on the feedback given), you can allow the learner to progress by clicking on the the "Approve and comment" button (appears when you type). You will need to add a comment before hitting this button, for example "It looks like you've learnt enough from this exercise, great work."

approve

Once you have submitted your comment you can go back to the Mentor Dashboard and choose another solution to give feedback on.

java: Create issues for creating mentor notes for Java side exercises

I have gone through all of the core exercises and made sure that we either
(1) already have mentor notes or
(2) have an issue to create them

It would be best if we had a bug for all of them, but the manual work makes me want to take a breather and get back to it once we finish getting mentor notes for all of the core exercises (since that takes priority).

After we have finished up creating mentor notes for the core exercises, we should move onto the side exercises and this issue should stand as a reminder of that intention until someone (possibly a later version of myself) has time to add issues for the rest of them.

A11Y: headings contrast or spacing and footer contrast

For example: https://exercism.io/become-a-maintainer

Headings

This might depends on OS + Browser combination (as exercism uses system-fonts (yay!)), but the current way the headings are set up makes it hard to know where the header ends and the text start and which paragraphs belong where:

image

Consider increasing the margin between a paragraph and the next heading, or easier, upping the font-weight by a hundred:

image

Further more, the h2 and h3 have the same size:

image

Whereas these are actually supposed to look something like this:

image

#generic-page h2 {
  font-size: 22px;
}

#generic-page h3 {
  font-size: 18px;
}

#generic-page h2, #generic-page h3 {
    line-height: 18px;
    font-weight: 500;
    margin: 30px 0 10px 0
}

Footer

The links in the footer are not legible. It's below normal-size and the color combination #aaaaaa/#fafafa has a contrast ratio of 2.23, which is not sufficient. At this size, it needs a ratio of at least 4.5.

Consider using the #737373 on top of the background of #fafafa which has a contrast ratio of 4.54

footer .legal .copyright,footer .legal a,footer .legal .created-by {
    color: #737373;
    font-size: 13px;
    line-height: 15px;
    display: inline-block
}

Resubmitting exercise does not update code

For some reason when I submit an exercise and later make a modification prior to a mentor viewing it, and sometimes after a mentor has viewed it, it will allow me to submit the exercies but does not update the code shown.

Intra-page links not working

I think the correct place to raise this is probably the website project, but there's no Issues tab visible there.

Pages like https://exercism.io/tracks/kotlin/installation have links on them like https://exercism.io/tracks/kotlin/installation#macos (just under "Choose your operating system"). These links do not work as there is no anchor tag called #macos on the page.

If you view the doc markdown file that contains the page information on github https://github.com/exercism/kotlin/blob/master/docs/INSTALLATION.md the links do work.

Presumably there is a problem converting the markdown to HTML for the main site.
Probably relatedly, the styling of the H1 tags on the website doesn't look right to me, but I guess that might be deliberate.

java/linked-list: create mentor notes

Create some mentor notes for the java/linked-list exercise.

Most importantly it should include one or more reasonable solutions (at least the general structure of a reasonable solution).

Go-Analyzer comments

I added the comments to the go-analyzer repo in the comments branch and /comments folder. Feel free to move them to this repository whenever you are ready.

https://github.com/exercism/go-analyzer/tree/comments/comments

I used a directory structure that can be directly derived from the comment handle itself:

  • go.general.strings_trim_space_used => go/general/strings_trim_space_used.md
  • go.two_fer.missing_share_with_function => go/two_fer/missing_share_with_function.md
  • go.hamming.mixture_of_runes_and_bytes => go/hamming/mixture_of_runes_and_bytes.md

java/robot-name: create mentor notes

Create some mentor notes for the java/robot-name exercise.

Most importantly it should include one or more reasonable solutions (at least the general structure of a reasonable solution).

License pages linked to from onboarding page should have license text

The MIT and CC-BY-SA-4.0 pages do not have the license text on them right now.

I think, based on this part of the website code, that the pages_controller is looking for these in the "pages" directory of this repo, but the license markdown files are in the "licenses" folder instead.

I am happy to make a PR to move those files into the "pages" directory, but I wasn't sure if it would be better to adjust things on the website side instead.

java/saddle-points: create mentor notes

Create some mentor notes for the java/saddle-points exercise.

Most importantly it should include one or more reasonable solutions (at least the general structure of a reasonable solution).

Please remove branches after they have been merged

What is happening is sometimes people are branching off of these branches (instead of master) in order to create their PR for their bio notes. Which creates some difficulty later when it is time to merge. A lot of the new mentors appear to be new to git and so it becomes difficult to work through this; the process of on-boarding their bio just became extra complicated.

To combat this it would be helpful that after a branch has served its purpose that it be deleted from this repo. If you can do your work in a branch in a fork, that would be even more helpful.

I periodically have been removing branches that I find are no longer associated with a PR and I can see that their changes have been merged into master.

Visualise "Explore ... community solutions" by clusters

Hello!

As both a mentor, and learner, I find the current .../exercises/.../solutions/ pages a bit strange. The solutions are ordered by number of comments, right?

I'm not sure whether sorting by likes, loves or geniuses is better, and would therefore like to suggest a clustering approach. Many solutions are similar, so it doesn't really matter whose version I select. I feel that the most instructive comparison is the one between differently structured solutions. Might these different structures be determined automatically somehow?

If yes, how about some kind of iPhoto-like visualisation of the "solution approaches" then? With one thumbnail per cluster that highlights that structure's main features (and maybe the comment, like, etc. stats of all individual solutions in that group summed up). And the thumbnails could be aligned like on a Pinterest-board: longer and shorter code-thumbnails tiled.

That latter display style could be used even without clustering, as an MVP so to speak for more informative solutions pages.

What do you think? Are there any other plans to update those pages?

java/flatten-array: create mentor notes

Create some mentor notes for the java/flatten-array exercise.

Most importantly it should include one or more reasonable solutions (at least the general structure of a reasonable solution).

Mentoring FAQ: add section about code fluency vs. stylistic preferences

During today's Automated Mentoring Project discussion on Slack a few important things were brought up regarding the mentor's role in addressing stylistic issues, like sub-optional variable names:

Screen Shot 2019-04-02 at 02 27 27

I think we should add a section on the Mentoring FAQ explaining how a mentor should focus on fluency and how stylistic tweaks in general shouldn't be the sole reason to disapprove a submission.

I'm not submitting a PR because I was only made aware to this different perspective today. Maybe @iHiD or @kytrinyx have a better understanding of all the nuances to add that section.

Review of submission is listed in Dashboard as "Requires Action" despite lack of updates

I reviewed submission

https://exercism.io/mentor/solutions/e659f656d83242a0a1d73688c6ce805f

and asked for revs. Student replied, agreed to refactor, but has not resubmitted.
The submission is listed in my Dashboard under the Requires Action label.

Additional Information: I've been away from Exercism for about 10 days: I may have missed something that was entered and deleted.

  • Jeff Parker

Uninstall/Remove CLI

There is nothing on the page about uninstalling the CLI even though Google searches indicate that there are uninstall instructions on the page.

java/matrix: create mentor notes

Create some mentor notes for the java/matrix exercise.

Most importantly it should include one or more reasonable solutions (at least the general structure of a reasonable solution).

broken links on the elm track resources page

On the page https://exercism.io/tracks/elm/resources
the link 'More at the official language site.' points to a relative path, instead of to the real site

Some example links are broken, for example: http://elm-lang.org/examples/zip
which redirects to http://try.elm-lang.org/examples/zip which cannot be resolved.
This is not the fault of the exercism team but you might want to replace the links with something else or update the text. I just wanted to point out that they don't work atm.

java/rotational-cipher: create mentor notes

Create some mentor notes for the java/rotational-cipher exercise.

Most importantly it should include one or more reasonable solutions (at least the general structure of a reasonable solution).

Python-Analyzer Comments

I added the comments to the python-analyzer repo in the comments folder. Any feedback is welcome.

https://github.com/exercism/python-analyzer/tree/master/comments

I followed the same structure as the Go and Ruby analyzers and made each comment an individual MD file. The Two Fer analyzer isn't using these files yet since I wanted to get feedback first. I will fix any issues with the comments and integrate them with the Two Fer analyzer so they can be moved to this repository later.

java/bank-account: create mentor notes

Create some mentor notes for the java/bank-account exercise.

Most importantly it should include one or more reasonable solutions (at least the general structure of a reasonable solution).

cli.exercism.io/troubleshooting debug should be troubleshoot

Text from the site reads:

If you are still having trouble open an issue in exercism/cli on GitHub with the output of the debug command.

exercism debug

however the cli does not recognize debug and instead uses troubleshoot as the command for this function.

All the "/you-can-help/*.md" links are broken in become_a_maintainer.md

When clicking on any link that is backed by a markdown file located in you-can-help/, the file does not exist.

ex.

Triaging issues
A great issue is detailed and actionable. When they're not, you can help ask the questions to make them so.

For more detailed suggestions about things to keep in mind when triaging, check out this documentation.

when clicking on this documentation you are met with this screen:
the_page_you_were_looking_for_doesn_t_exist__404_

when clicking on the link through github, you are met with the 404 page.

Is there a place where the files now live? If so I would be happy to update!

Cheers

Haskell Leap: last recommended code is weird

Hi,

I'm talking about https://github.com/exercism/website-copy/blob/master/tracks/haskell/exercises/leap/mentoring.md

The last code block has isDivisibleBy but it's never used.

Should it stay the same and the main code would be

isLeapYear :: Integer -> Bool
isLeapYear year 
  | not $ year `isDivisibleBy` 4 = False
  | not $ year `isDivisibleBy` 100 = True
  | not $ year `isDivisibleBy` 400 = False
  | otherwise           = True

isDivisibleBy :: Integer -> Integer -> Bool
isDivisibleBy x n = x `rem` n == 0

Or alternative, use a negative form:

isLeapYear :: Integer -> Bool
isLeapYear year 
  | year `isNotDivisibleBy` 4 = False
  | year `isNotDivisibleBy` 100 = True
  | year `isNotDivisibleBy` 400 = False
  | otherwise           = True

isNotDivisibleBy :: Integer -> Integer -> Bool
isNotDivisibleBy x n = x `rem` n /= 0

?

Please point me to issues that discuss uninstalling CLI

I see in one entry about uninstalling cli that there are other issues that describe how to do that, but I can't find them. Can you point me there or tell me how to uninstall the CLI? The FAQs do not provide any discussion I can find.

Suggested solution for two-fer doesn't pass tests.

Okay, this is a bit odd.

On my environment, the suggested "arrow function" flavor of solution for two-fer is this:

export const twoFer = (name = 'you') => `One for ${name}, one for me.`

However, that solution doesn't actually pass for me. The default value 'you' is not set successfully, and I get, in the failure:

    Expected value to equal:
      "One for you, one for me."
    Received:
      "One for , one for me."

When using arrow functions, it only works if I use ${name = 'you'} in the template string.

I've been Googling -- can I not use default values in arrow functions? and I can't really get a clear answer:
https://stackoverflow.com/questions/34354105/default-parameter-value-in-arrow-function

So I think one of these things are the case:

  1. My environment is insufficiently awesome; I need to figure out why I'm unable to use default values in arrow functions during tests.
  2. Default values in arrow functions only work sometimes, and we should update the suggested solution so that it doesn't recommend it as a canonical solution.

Any thoughts?

Rendering issue on configuration walkthrough

Seems that this didn't compile as expected. Here's the rendering I get:

[[ ":$PATH:" == *":$HOME/bin:"* ]] && echo "~/bin is in PATH" || echo "~/bin is not in PATH"

image

To have the exercism executable available everywhere on the command line you need to make sure ~/bin is in your $PATH.

There is a chance it’s there already; let’s see whether it is:

<a href="javascript:void(0)" data-passage=" &quot;:$PATH:&quot; == *&quot;:$HOME/bin:&quot;* "> ":$PATH:" == *":$HOME/bin:"* </a> && echo "~/bin is in PATH" || echo "~/bin is not in PATH"
If the above prints ~/bin is not in PATH let’s add ~/bin to $PATH and reload Bash configuration:

propose new test for Rakefile: First letter of name matches filename.

It is easy to miss this check when manually checking mentor bio JSON updates. Sometimes people grab the wrong file and sometimes those reviewing forget to check that the first letter of their name agrees with the name of the JSON file.

I would like to see a test added to Rakefile that will confirm that first letter and filename agree.

cli.exercism.io/usage api_key should be token

Current text on the site reads:

exercism configure --key=YOUR\_API\_KEY

but the cli flag is actually --token= and the account settings page presents it as CLI token, so the site should be edited to read:

exercism configure --token=YOUR\CLI\TOKEN

CLI token warning/hint

A lot of students ask for help with setting up the CLI on Gitter. Many of them also post their token as part of the command they're stuck at. @NobbZ is usally pretty fast at telling them to reset it and to not share it again, but it happens so often that perhaps there should be a hint on the website itself that the token is like a password and should not be shared.

The commit history of the walkthrough file makes me think that it's compiled with some tool and not edited directly in the HTML, is that correct? Otherwise I'll just add the hint myself, if it only requires editing the HTML.

There are also other places on the website where the token appears, but I can't find them in this repo.

Ruby: Mentor Notes for Word Count

Side exercise. Great to step up from basic loops and Enumerable#each to more powerful Enumberable methods.

There is no method called each on Enumerable module, it is a dependency to the Enumerable module, similar to <=> for Comparable module.

[WIP] Mentor FAQs

Mentor FAQs

Here we have collated a list of the questions asked frequently by mentors.

How do I get started with Mentoring?

Join the "start-here" channel on Slack and you will see some step-by-step instructions that will guide you through the process.

What should I do if I don't know how to give feedback on a solution?

If you're not sure what feedback to give, paste a link to the solution (e.g. https://exercism.io/mentor/solutions/...) on the relevant language channel on Slack and brainstorm some ideas with other mentors.

How can I improve my mentoring skills?

This is something we're extremely passionate about helping you with and we are in the process of writing some awesome guides on giving great feedback with lots of examples.

In the mean time, here's some recommended reading on the subject: https://www.amazon.com/Thanks-Feedback-Science-Receiving-Well-ebook/dp/B00DMCV0XE/

Behaviours to avoid:

  • stating opinion as fact
  • avalanche of comments
  • judgemental questions
  • sarcasm

Read full blog post on this here: https://medium.freecodecamp.org/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c

Examples:
Unhelpful: “Why didn’t you just do ___?” (asking judgemental
questions)
Helpful: “You can also do ___, which has the benefit of ___”

Unhelpful: “Did you even test this code before you submitted it?” (being sarcastic)
Helpful: “Your code breaks during “x, y, and z” edge cases, can you please address those cases?”

These have been taken from conference talk by Sandya Sankarram on Unlearning Toxic Behaviours in a Code Review Culture https://drive.google.com/file/d/1ROZA9yKpEa8suiqVXtPO0IJtqa95SOjE/view.

When is a solution considered complete?

Each exercise on Exercism touches upon several programming concepts. A learner should touch on 2/3 concepts as they work through their iterations whilst taking on board mentor feedback and improving their solution through each iteration. If a student has done this, you could ask them if they would like to move onto the next exercise or if they'd like to learn how to improve their solution further to allow them to choose their own pace and depth of learning.

We appreciate this is a rough guide and we are working on creating documentation for each exercise to help with this.

How quickly do I need to respond to a submission?

Ideally within a week of a learner submitting their solution to help maintain their motivation and enthusiasm for the exercise. We will be implementing a "Leave of Absence" notification button for mentors soon that you can use if don't feel like you'll be able to respond to solutions within this timeframe. This button will pass the solutions you're mentoring onto another mentor.

I need to have a break from mentoring, can I stop receiving new solutions?

Yes! We have this logged as an issue on GitHub (see exercism/DEPRECATED.v2-feedback#162) and will be implementing a Leave of Absence notification soon.

How much time should I be spending on mentoring?

We had 1,000 submissions per day on the original Exercism site, of which fewer than 20% received feedback. Our key launch-targets are to achieve >95% feedback-rate. We have based our mentor recruitment numbers on mentors offering 1hr/week on average. If you can offer more than that then that's great!

I've found an issue with the site, where should I raise the issue?

If you find anything that's broken, first see if it is listed here and if not please add it https://github.com/exercism/v2-feedback/issues

How can I report abuse or examples of bad mentoring?

Please reach out to us at [email protected] and we will try to fix or resolve the issue respecting both you and your privacy.

How can I stop mentoring a track?

If you'd like to stop mentoring a track please email us at [email protected] and let us know.

Can I mentor another language?

Yes! To mentor another language go to the "Configure your mentor settings" page via the main menu and select the languages you want to mentor.

Still have a question?

If you have a question that hasn't been answered here, please post if on the "questions" channel on Slack.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.