This is a gigantic undertaking so we are going to need to follow a bit of a process to make sure things run smoothly and that we do not duplicate our efforts.
All of our planned lessons have empty, or nearly empty "stub" files in the appropriate folder and github issues associated with them.
Of course, we need people to volunteer to write the actual lessons, but there are other less involved ways you can contribute. Our main method of teaching is by linking to the best external resources for each topic, so having a small army of contributors that are researching each topic and finding amazing free resources is incredibly valuable to the people who are actually going to write the lessons.
To help us out here, please pick a topic and start googling. Narrow down the results by previewing and picking the best documentation, articles, youtube videos or tutorials on each topic. Then leave the resources (with a small blurb or review) in the comments of each lesson issue. We will have many great resources in multiple formats, so even if people have already found things, the more the better.
Simply reading through the content we have already written and proofreading is valuable. Simply do a PR or suggest an edit here: https://the-odin-project.gitbooks.io/javascript-curriculum/ for any mistakes or poorly worded sections.
One of the hardest parts of writing useful lessons is coming up with fun and relevant projects that hit the appropriate skills from the lesson and are not too difficult considering the level of the students at the time they reach the lesson! Projects should be a challenge, but the student should be able to envision a path to completion after finishing the lesson. Projects should also take into account both the lessons that students have already encountered and the lessons they have not! For example: we cannot ask students to manipulate the DOM in our earlier lessons before teaching them how to do it!
If you think you have a good project idea for a topic, please either leave a comment on that lesson's issue or write the project specifications and do a Pull Request to that Lesson's stub file. Projects will eventually be separated into their own files (they will be on a separate page when they make it to the website!) but for ease of organization and planning we're leaving them inside the Lesson file for now.
We also are using this ever-growing repo of JavaScript exercises: https://github.com/TheOdinProject/javascript-exercises and could use help brainstorming more exercises that would be appropriate. Comment or create an issue on that repo if you have any bright ideas.
If you fancy yourself a good writer and want to write a lesson, please comment on an issue. Take a little time to read through a few of our other lessons to get a feel for the format and tone we use. Larger, longer lessons may eventually be split up into multiple parts (i.e. multiple pages on our website) but for now we are keeping everything consolidated into one file for ease of organization and planning.
Obviously writing can take some time because you will need to research and review plenty of resources. But if you accept an issue and then disappear, it is hard to know whether we should find someone else to write it or if you are just taking your time. If we do not hear from you at least every 5 days, we will assume you have abandoned the project and look for someone else to complete it. We do not mean to disrespect, but we need to keep our project going!