Thank you for your interest in contributing to this repository! Your contributions help improve this collection of learning resources for aspiring and experienced software engineers. Whether you're adding new content, fixing typos, or sharing your own expertise, we're glad to have you on board.
If you want to add a new resource (e.g., tutorials, books, courses), please ensure that:
- The resource is reliable, reputable, and helpful for learners.
- It fits into an existing category or, if necessary, you can suggest a new category.
- It aligns with the Beginner, Intermediate, or Advanced levels to guide learners appropriately.
- Fork this repository.
- Create a new branch for your changes:
git checkout -b add-<new-resource>
- Edit the relevant section in the relevant markdown file. Be sure to follow the existing structure for consistency.
- Submit a pull request (PR) with a clear description of the resource you're adding.
If you notice any outdated information, incorrect links, or incomplete sections, feel free to improve them:
- Ensure that any updates or changes maintain the integrity and accuracy of the information.
- When updating, provide a brief rationale for the change.
- Fork this repository.
- Create a new branch:
git checkout -b update-existing-section
- Make your changes.
- Submit a pull request with a clear explanation of what you've updated and why.
We are always looking to expand the range of topics covered in this document. If you'd like to suggest a new domain or section (e.g., Blockchain Development, Cloud Engineering, etc.), open an issue describing:
- Why this new topic is important for software engineering.
- A short outline of the section you propose to add.
- Provide a brief overview of the new topic and suggested structure (similar to existing topics).
Once approved, you can either submit a PR or collaborate with others to build the new section.
For minor issues like typos, grammar, or formatting inconsistencies:
You can submit a quick fix by making a pull request directly with your proposed changes. No need to create an issue for small, non-structural changes.
Feel free to contribute new project ideas to help learners practice their skills. Make sure the project aligns with the level of the section it belongs to (e.g., beginner, intermediate, or advanced) and clearly describe what the project aims to teach.