We’re excited to have you contribute to this repository, and your efforts will be fully credited! Whether you want to add solutions in a new programming language or improve existing ones, here’s how you can get started:
-
Let me know what you plan to contribute! The best way to do this is by joining our Discord server (see page 2 of the book). Communication is important to prevent you labouring on a set of quesitons that someone's already working on.
-
Once you've been approved, fork the repository to start working on your own solutions locally.
-
Take a close look at how the Python solutions are organized. Your contributions should align with this structure (e.g., folder organization, file naming).
-
Always create a new branch for your additions or changes. We recommend creating separate branches for each chapter you’re contributing. Example:
git checkout -b java-solutions-linked-lists
. -
Stay true to existing variable/function naming, code comments and algorithm structure. If imports are necessary for the code to run, include them. Don't wrap the code around a class unless it's mandatory for the language, or the problem necessitates a class. Feel free to add additional comments for clarity, especially if any language-specific nuances are included.
-
Test your code. Be sure your code runs. We're currently working on making all test cases public. In the mean time, please use your own set of diverse test cases.
-
Open a pull request (PR) and clearly describe your work in the PR. Respond to comments and make necessary adjustments when requested. Once approved, your PR will be merged!
If you encounter any issues or have questions about contributing, feel free to reach out via the Discord, or email us at [email protected].
We greatly appreciate you helping us build this repository and making it accessible to more people. Thank you for contributing!