https://github.com/the-vampiire/hacktoberithms
Python & JavaScript solutions only! algorithms to practice javascript, python, git and contribute to an open source repo for hacktoberfest!
https://github.com/the-vampiire/hacktoberithms
algorithms hacktoberfest practice-git practice-javascript practice-python
Last synced: 5 months ago
JSON representation
Python & JavaScript solutions only! algorithms to practice javascript, python, git and contribute to an open source repo for hacktoberfest!
- Host: GitHub
- URL: https://github.com/the-vampiire/hacktoberithms
- Owner: the-vampiire
- License: mit
- Created: 2018-10-03T23:39:33.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-18T10:49:28.000Z (about 5 years ago)
- Last Synced: 2025-06-20T11:43:59.270Z (6 months ago)
- Topics: algorithms, hacktoberfest, practice-git, practice-javascript, practice-python
- Language: Python
- Homepage:
- Size: 177 KB
- Stars: 13
- Watchers: 0
- Forks: 70
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hacktoberithms!
algorithm challenges to practice python, javascript, git, and helping each other learn in an open source repo for [hacktoberfest](https://hacktoberfest.digitalocean.com/)!
## ~~Python Solutions Only!~~ Python & JavaScript Solutions This Year!
- feel free to fork this repo and make one for another language
- open an issue with a link and ill update this readme with your language fork so people can find it
- feel free to remove old solutions from your fork or to add a `language/` dir to keep them all side by side
## dont forget to register for hacktoberfest first!
- you need to register first to begin tracking your contributions
- [read about hacktoberfest and sign up here](https://hacktoberfest.digitalocean.com/)
# How to Contribute
## only PRs that follow these steps will be approved!
## Fork and Clone
- fork the repo using the `Fork` button in the top right
- clone your fork of the repo onto your machine using `git clone https://github.com/your_username/hacktoberithms`
- if you have already forked / cloned then feel free to just create a new branch for your next solution
## Find a Challenge
- go to the [`Issues`](https://github.com/the-vampiire/hacktoberithms/issues) tab on this repo and view the available challenges
- you can sort by the difficulty level labels
- select a challenge you want to work on
- **your PR solutions can not all be from the `beginner` category**
- if you are stuck ask for help in an issue but do your best to progress into more advanced categories
- **dont look at previous solutions!**
- you dont learn anything by copying someone else
- try your best and open issues to discuss and get help
- **anyone caught copying previous solutions will be blocked and reported to the hacktoberfest maintainers**
## Create a Branch
- create a new branch for your solution `git checkout -b issue_number-solution`
- ex: `git checkout -b 1-solution` for Issue `#1`
## Create a Solution File
- **all solutions must be in a single file**
- **you may not use any external dependencies to solve any problem**
- **solutions must be possible to run using `python 3.7+` or `node 10+`**
### Solution file / location format
- solutions go in the corresponding `language/challenge-level/challenge-name_your_user_name.ext`
- where `ext` will be either `.py` or `.js`
### Python Solutions
- **must go in `python/challenge-level/` directory**
- ex: a python solution for an intermediate level problem: `python/intermediate/`
- look at the label on the challenge issue to see its difficulty
- look for the corresponding directory in the repo associated with that difficulty label
- create a new file in that `language/challenge-level` directory called `challenge-title_your_username.py`
- ex: `profile-lookup_rosdyana.py` would go in the `python/beginner` directory
- work on a solution to the challenge
- commit your work (dont forget to add commit messages as you progress)
- using `git commit -m "your commit message"` or the VSC built-in utility
### JavaScript Solutions
- **must go in `javascript/challenge-level/` directory**
- ex: a javascript solution for an intermediate level problem: `javascript/intermediate/`
- look at the label on the challenge issue to see its difficulty
- look for the corresponding directory in the repo associated with that difficulty label
- create a new file in that `language/challenge-level` directory called `challenge-title_your_username.js`
- ex: `profile-lookup_rosdyana.js` would go in the `javascript/beginner` directory
- work on a solution to the challenge
- commit your work (dont forget to add commit messages as you progress)
- using `git commit -m "your commit message"` or the VSC built-in utility
## Merging
- **test that your solution passes all the requirements before opening a PR!**
- feel free to write unit tests or to just use print statements
- most challenges include some sample inputs / outputs to test against
- **confirm that your solution is in the correct directory and using the `challenge-name_user_name.ext` format**
- when it satisfies the requirements push your work up to your forked repo using
- `git push -u origin issue_number-solution`
- the `-u` flag will set the upstream branch on your forked repo so future pushes do not need the remote or branch name
- `git push` if you have already set the upstream branch
- open a pull request to merge your branch solution into this repo
- go to your branch on your forked repo (under your username)
- hit the `New Pull Request` button next to the branch name on GitHub
- choose `Base fork: the-vampiire/hacktoberithms`
- write a pull request message that includes:
- your approach / thought process
- anything you were stuck on and how you solved it
- instructions on how to run your solution
- i will review and merge as many as i can a few nights a week
- on the weekends i will catch up with any that i missed
# Getting help
## If you get stuck
- create a new issue to ask for help if any part of the contribution process is confusing you
- ask a question / discuss about a problem using an Issue comment on the relevant challenge issue
- **dont post solutions in the comments - create a branch and contribute!**
# Other ways to contribute
## help people who are stuck
- use the Issues comments and PR reviews to help each other improve as developers
## help write unit tests to automate the process
- i check these solutions by hand
- helping by writing some unit tests would be awesome and a good way to practice writing tests
## help analyze / test solutions that are in PR
- look for open PRs and test out their solutions locally
- leave comments (tagging me) if anything goes wrong
- feel free to review their code and provide feedback like i (try to) do
## improve a solution
- repeat the process above but modify an existing solution file
- describe what you changed and why so that others can learn how to write better code
- do not make fun of or be rude in refactoring other peoples code. this is about learning not ego
- be prepared to defend your changes during the code review process!
## open a new Issue with an algorithm challenge so someone else can solve it
- use an appropriate label to mark the difficulty level
- use the following template
- **make sure the problem statement is open source / public domain or one you created yourself**
- **do not forget to add a url to the license if one is available**
```
Credit: [adapted from SOURCE NAME](SOURCE URL)
[License](LICENSE URL)
# Challenge
## test data
## starter code
## notes
```