Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ If you have a suggestion to improve an exercise, an idea for a new exercise, or
2. Before you start working on any exercises, you should first ensure you have the following installed:
- **NPM**. You should have installed NPM already in our [Installing Node.js](https://www.theodinproject.com/paths/foundations/courses/foundations/lessons/installing-node-js) lesson. Just in case you need to check, type `npm --version` in your terminal. If you get back `Command 'npm' not found, but can be installed with:`, **do not follow the instructions in the terminal** to install with `apt-get` as this causes permission issues. Instead, go back to the installation lesson and install Node with NVM by following the instructions there.
- **Jest**. After cloning this repository to your local machine and installing NPM, go into the newly created directory (`cd javascript-exercises`) and run `npm install`. This will install Jest and set up the testing platform based on our preconfigured settings. (Note: if you get warnings that packages are out of date or contain vulnerabilities, you can safely ignore them for these exercises.)

3. Each exercise includes the following:

- A markdown file with a description of the task, an empty (or mostly empty) JavaScript file, and a set of tests.
Expand All @@ -26,7 +26,7 @@ If you have a suggestion to improve an exercise, an idea for a new exercise, or
4. Some of the exercises have test conditions defined in their spec file as `test.skip` compared to `test`. This is purposeful. After you pass one `test`, you will change the next `test.skip` to `test` and test your code again. You'll do this until all conditions are satisfied. **All tests must pass at the same time**, and you should not have any `test.skip` instances by the time you finish an exercise.
5. Once you successfully finish an exercise, check the `solutions` directory within each exercise to compare it with yours.
- You should not be checking the solution for an exercise until you finish it!
- Keep in mind that TOP's solution is not the only solution. Generally as long as all of the tests pass, your solution should be fine.
- If your solution differs wildly from TOP's solution (and still passes the self-check criteria), that's completely fine. Do feel free to ask about it in the chatroom if there are parts you do not understand.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like we need to note that the solution ideally should be in line with the concepts that were learned leading up to doing the exercise. For example, if an exercise is assigned after learning about string methods, ideally a user's solution should use string methods (vs loops). That may be a larger conversation/re-evaluating where each exercise is introduced within the context of the curriculum.

Unless you feel adding some verbiage like that would be helpful right now, I only have one nit below:

Suggested change
- If your solution differs wildly from TOP's solution (and still passes the self-check criteria), that's completely fine. Do feel free to ask about it in the chatroom if there are parts you do not understand.
- If your solution differs wildly from TOP's solution (and still passes the self-check criteria), that's completely fine. Do feel free to ask about it in our Discord if there are parts you do not understand.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My feeling at the moment is that "meeting the exercise requirements" should be sufficient to imply that, depending on what the exercise requirements are. And that if there is an intention for an exercise to be done a certain way based on recent lesson content, then that would be better placed in the relevant exercise's requirements. Thoughts?

For now I'll make that nit change and also rephrase "self-check criteria" to "exercise's requirements", as there technically isn't a "self-check criteria" section in the exercises' READMEs.

6. Do not submit your solutions to this repo, as any PRs that do so will be closed without merging.

**Note**: Due to the way Jest handles failed tests, it may return an exit code of 1 if any tests fail. NPM will interpret this as an error and you may see some `npm ERR!` messages after Jest runs. You can ignore these, or run your test with `npm test exerciseName.spec.js --silent` to supress the errors.
Expand Down