Coder Social home page Coder Social logo

fredbaa / hacktoberithms Goto Github PK

View Code? Open in Web Editor NEW

This project forked from the-vampiire/hacktoberithms

0.0 1.0 0.0 149 KB

Python & JavaScript solutions only! algorithms to practice javascript, python, git and contribute to an open source repo for hacktoberfest!

License: MIT License

Python 100.00%

hacktoberithms's Introduction

Hacktoberithms!

algorithm challenges to practice python, javascript, git, and helping each other learn in an open source repo for hacktoberfest!

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!

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 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

hacktoberithms's People

Contributors

the-vampiire avatar kushagra-0801 avatar mikelane avatar jmlc101 avatar loukotal avatar zelbot avatar yoch avatar dsargento avatar karm0s avatar armasog avatar akashsara avatar thangamgm2000 avatar rosdyana avatar joshhacksthings avatar ezekohon avatar araetoro avatar viniciusfk9 avatar sbielenica avatar sundaytyper avatar borysserbyn avatar sharan-nyn avatar nainys avatar gettaplay avatar garvitsharma05 avatar aashbaugh16 avatar unimpressions avatar tylergibbs2 avatar sarahmcq avatar presleywong avatar codilis avatar

Watchers

James Cloos avatar

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.