We are a volunteer-led community of tech professionals, and we teach people to code for free. We are majority-minority, we welcome everyone, and we welcome you.
This curriculum compiles narratives and activities developed by hundreds of people all over the world. You are invited to join us. Volunteer for the Tech Education team to teach in our classes, or contribute in a number of other ways. You can also volunteer remotely.
Our Tech Education volunteers teach in our classes. All Tech Ed volunteers can, and do, develop content for the curriculum, and they are encouraged to experiment to see what works. Our trainees also notice problems, and propose or implement solutions!
The Curriculum Team is a group of long term volunteers who are responsible for the overall direction of the curriculum. They decide the strategy and accept new content into the core. Once a Tech Ed volunteer has sufficiently tried out their material, they can propose that it be adopted into the main curriculum, and the Curriculum Team will make the ultimate decision. See more info on contributing new content below.
The Curriculum is led by the Director of Education, currently Daniel Wagner-Hall. We meet every two weeks to discuss the curriculum and make decisions. The agenda is posted in the Slack channel #cyf-curriculum and the minutes are posted on this website. If you'd like to come and talk to us, please do!
- practical
- written in simple English at a maximum of CEFR B2
- free
- a textbook
- a reference manual
- a collection of tutorials
We broadly use the Teach Tech Together pedagogical framework, in a flipped classroom style.
We adopt tested content into the main curriculum, so develop and try out your material first! Come to class, try it, and get feedback from the community. Come talk in #cyf-curriculum on Slack and iterate on your session.
- Develop your narrative or activity in a repo. If you're running a workshop, develop in https://github.com/CodeYourFuture/CYF-Workshops. If it's a project, make a separate repo for it.
- If you're recording a video, upload it to YouTube and make it public.
- Use your material and iterate on it with trainees.
- When you're ready to propose adoption, open a PR to this repo.
- The Curriculum team will consider your proposal and give you feedback.
We like to experiment. If you have an idea, try it out and let us know how it goes! Keep your experiments small and test them early. (If you want to try something big, like a new module, come talk to us first.)
Our curriculum threads a coherent line through all of this activity, so whatever worlds we explore, we can all come back here and find out what to do next.
Most content we develop and use with classes will not be adopted into the core curriculum -- that's ok! We want to be free to experiment.
If you spot a bug, please let us know by creating an issue or opening a PR with the fix. Bug fixes are super welcome!
As this front end composes many different repos, please open an issue in the repo where you found the bug. If you're not sure, open an issue in this main repo.
(If the content is pulled from another repo, there's a link next to the heading -- follow that link to the source repo and open an issue there.)
You need the following software packages to run this curriculum:
gohugo(must be the extended version) - we recommend version 0.136 extendednpm
On macOS:
brew install go hugo npmYou'll need to get a fine-grained GitHub API token which allows read-only access to all public CYF repos from this page.
Click "Generate new token", enter a token name (can be anything), and how long you want the token to last (if you're doing a one-off contribution, pick a short value; if you're going to be a regular contributor, maybe a longer value).
Make sure the Resource owner is your account if you have a choice.
The "Repository access" you need is "Public repositories (read-only)", and you don't need any account permissions:
Copy the /curriculum/.env.example to /curriculum/.env. Edit the file and then change the line that says HUGO_CURRICULUM_GITHUB_BEARER_TOKEN to contain the token that you have generated earlier.
You can probably ignore the other entries.
There are several websites in this repo - identify the one you want and make sure you're cd'd into that directory.
Run this command in a terminal:
npm i
npm run start:devIf you find the build is very slow, and don't care about the issues being pulled into backlogs being precise, you can run:
npm run start:dev -- --environment issues-are-cached-and-incompletePageFind runs the search. https://pagefind.app/
It's in the build command on Netlify hugo && npx pagefind --source "public"
If you need to develop on this locally, run:
rm -rf public &&
npm run build:dev &&
npx pagefind --site "public" --serveAnd go to http://localhost:1414/ to see the PageFind-served site with search enabled; but there is no hot reload. You can run hugo on http://localhost:1313/ at the same time.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
