mirror of
https://github.com/ossu/computer-science.git
synced 2026-04-11 02:11:49 +08:00
docs: add open-source contribution ideas and notes
This commit is contained in:
parent
0e89a74590
commit
394dd51dc3
47
OPEN_SOURCE_NOTES.md
Normal file
47
OPEN_SOURCE_NOTES.md
Normal file
@ -0,0 +1,47 @@
|
||||
# Open Source Contribution Ideas & Notes
|
||||
|
||||
Welcome to open-source! Contributing to open-source projects is an excellent way to learn, collaborate, and build a strong portfolio. Here are some actionable ideas for how you can start contributing—whether to this OSSU Computer Science curriculum repository or any other project on GitHub.
|
||||
|
||||
## 1. Documentation Improvements (Great for Beginners)
|
||||
Documentation is the backbone of any good open source project, but it often gets neglected by active developers. You can contribute by:
|
||||
- **Fixing Typos:** Read through `README.md` or other guidelines and fix any spelling or grammatical errors.
|
||||
- **Translating:** Translate documentation into your native language to help non-English speakers use the tool.
|
||||
- **Clarifying Text:** Rewrite confusing sentences to make project setup or rules easier to understand.
|
||||
- **Adding Examples:** Code examples in the documentation keep getting outdated. Add clear, modern examples.
|
||||
|
||||
## 2. Issues labeled "good first issue"
|
||||
Most major open source projects curate a list of easy bugs to help beginners onboard.
|
||||
- Go to the **Issues** tab on GitHub.
|
||||
- Filter by labels like `good first issue`, `beginner-friendly`, or `help wanted`.
|
||||
- Comment on the issue to say you’d like to work on it, and mention if you need any initial guidance.
|
||||
|
||||
## 3. Curriculum & Course Content (For OSSU Repo)
|
||||
Since you are inside the Computer Science curriculum repository, you could contribute by:
|
||||
- **Replacing Broken Links:** Check if any of the course URLs or resources in `README.md` or course pages are dead. Submit a PR updating the link to a working one.
|
||||
- **Course Recommendations:** If you take a course and find an alternative that is much better, more interactive, and free, propose the change following `CONTRIBUTING.md` guidelines.
|
||||
- **Updating Course Data:** Course dates, lengths, and availability often change. Review course data and update the spreadsheet or markdown files.
|
||||
|
||||
## 4. Writing Tests
|
||||
Engineers love code, but sometimes they forget to write tests. Adding test coverage is one of the most highly appreciated forms of contribution.
|
||||
- Check if a project uses a testing framework (like PyTest, Jest, or JUnit).
|
||||
- Look for functions that don't have tests and write them.
|
||||
- Ensure the CI (Continuous Integration) pipeline passes before submitting the PR.
|
||||
|
||||
## 5. Reviewing Pull Requests
|
||||
You don't just have to write code to contribute. Reviewing other people’s code is heavily valued!
|
||||
- Help maintainers by testing other people's PRs locally.
|
||||
- Leave constructive comments and let the author know if the code works as expected.
|
||||
|
||||
## 6. Community Support
|
||||
Open source is built on community. You can contribute just by being active:
|
||||
- **Answering Questions:** Answer questions from other learners in GitHub Discussions, Issues, or Discord servers.
|
||||
- **Reporting Bugs:** If you find something that is broken, open a descriptive Issue. A good bug report with screenshots/logs is a great contribution.
|
||||
|
||||
---
|
||||
### 🛠️ Example Workflow for Contributing:
|
||||
1. **Fork the repository** to your own GitHub account.
|
||||
2. **Clone the fork** to your local machine (`git clone <url>`).
|
||||
3. **Create a new branch** for your feature or fix (`git checkout -b fix-typo`).
|
||||
4. **Make your changes** and commit them clearly (`git commit -m "docs: fixed typo in README"`).
|
||||
5. **Push to your fork** (`git push origin fix-typo`).
|
||||
6. Go to the original repository and click **Compare & pull request**!
|
||||
Loading…
Reference in New Issue
Block a user