Contributing to the Curriculum
This curriculum is very much a work-in-progress and benefits heavily from the contributions of everyone from students to teachers to developers. This file will show you how and what to contribute to the curriculum.
WHAT to Contribute
1. Student Solutions
If you've finished a project, submit the link to your solution's github repo where it says to do so in the project description. See the section "Project Solutions" below.
2. Other Content
We link out to all kinds of free pre-existing videos, blogs and tutorials. If we're trying to teach something and you know there's a better resource out there, put it in the "Additional Resources" section of that lesson. Same goes for alternate but useful explanations of the material. If you've got high quality material on your own blog or website, feel free to do the same. Content with an obvious commercial angle (like marketing videos) should only be used if there is no reasonable substitute.
3. Exercises and Projects
This is a project-driven curriculum so having useful and interesting projects that break down to address specific content modules is crucial. We're always on the lookout for good project ideas that can be broken down into a checklist of deliverables. Ultimately, we'd also like to have specs and a canonical solution created for each project as well. If you can help on any of those levels, please contribute!
We will also be instituting quizzes at the beginning and end of most lessons. If you know of or have created any interesting problems that address a particular area of content (especially if they come with specs), please send them or the links to them this way!
4. Curriculum Strategy
This curriculum is built to pave the way between new students and industry. If you're a developer or hiring manager and have a strong opinion about something you believe junior devs are lacking these days and should be included in the curriculum, let us know! If you're a student and have gone through a unit and still don't feel like you understand something well enough, tell us so we can beef up that section!
The Odin Project's main website (which is the primary way that people access this curriculum) is open source. You can see it on Github HERE and there's plenty that you can do to help, even if it's just squashing bugs or writing tests. Check out the Contributing Section of the site for more information about getting involved.
HOW to Contribute
There are three main ways to contribute to the curriculum (see the main website's repo for how to contribute there), in order of preference:
Edit on Github For small changes like adding links to student solutions or fixing typos, it's easiest to just edit the file directly on Github, which I show how to do in this YouTube video.
Pull Request: To contribute in ways that are larger than what can be done directly on Github or if you're expecting to make several contributions over time, it is best to submit a Pull Request. I describe that workflow in this YouTube video here and Github has good documentation and video support as well. Basically, you will fork the curriculum repository, make your changes or additions to the appropriate file, then submit a pull request with your changes.
Student Project Solutions:
If you're adding a solution to one of the projects, first save it in your own repository and then just make a link to it in the appropriate project's section. Be sure to give your partner acknowledgement if you have one and they want it.
If you're unfamiliar with the Markdown (.md) syntax that's used in these files, it's really straightforward and there's a great guide for it from Daring Fireball here.
Licensing and Attribution
As you can tell, we highly value and rely on the help of the developer and student communities. We'd like to do as much as we can to identify our top contributers and the providers of high quality content. We'll be maintaining a top contributers list in addition to the commit histories. Contributers taking a more active role in the project may be invited to join the core team as well.
This curriculum is licensed under a Creative Commons license. For more information, check out the License.md page.