A "skill tree" for learning how to code.
Learning how to code can be challenging and long-winded. Although there are some truly great resources out there, they are scattered and often missing a thread.
Although we realize that there is nothing more practical than solid theory, we also know from our own experience that learning how to code is best done by coding - and that's why we want to get people to work on projects early in their learning process.
We also realize that different people are driven by different things, which is why - except for a very minimal "Beginners' Track" - every track will be modular.
Even when getting into a huge project like learning how to code, the commitment a learner has to make should be minimal in order to keep the course accessible. Learners should always be able to assess their skill level quickly - every lesson should be followed by a test the learner can take.
In order to enable learners to contribute to open-source projects, they should be encouraged to collaborate and share their results publicly.
The Beginners' track should be kept minimal (i.e. not more than 3 lessons of 90 minutes). Every lesson in the Beginners' Track should be able to stand on its own: It should teach something practical that is relevant to the learner.
After an introduction to vital tools and concepts via the Beginners' Track, the learner should be encouraged to work on projects relevant to them.
Ideally, a project teaches the learner a new concept (or at least a new aspect of a concept).
Some more advanced projects require the learner to be comfortable with other concepts, ideally taught by other projects. Each project should have a list of other projects required to successfully complete it.
Projects should focus on teaching exactly one new concept. A project should take the learner abut 90 to 150 minutes to complete. Concepts that can not be taught in 90 minutes should be split up in smaller chunks.
When contributing, please keep in mind that the project is at a conceptual stage. Currently, we are collecting ideas and resources, not building a platform.
If you want to add your ideas to the corresponding folder, using templates if one is in place.