HOCW

How our curriculum works

HOCW block viewer

This block viewer lets you flick through all the existing blocks in the HOCW folder so you can choose what parts to add to your pages and what parts you might want to create, revise, or leave out.

It's literally just an alphabetical list of whatever is in this folder.

☎️ Products

Learning Objectives

πŸ’‘ tip

It’s important that software works and that people can use it
Building working products is our job as software engineers: we must use our skills to make stuff! At the end of every module, you will draw on the skills and concepts you’ve developed to build a working product for your portfolio. Your product must be deployed and easily accessible to other non-technical users, along with a clear description of its purpose and functionality.

β›— Dialogue

Learning Objectives

We learn best when we ask questions and explore possible answers. Dialogue is a conversation that facilitates this playful exploration: participants listen to each other, share ideas, build on each other’s ideas, and respectfully challenge and evaluate these ideas.

In practice

Code review

πŸ§‘πŸΏβ€πŸ€β€πŸ§‘πŸ½ Reviewers on a PR are expected to ask questions and explore the reasoning behind submitted code. πŸ§‘πŸΏβ€πŸ€β€πŸ§‘πŸ½ PR owners are expected to answer the questions and make revisions to their submitted code.

Pair programming

πŸ§‘πŸΏβ€πŸ€β€πŸ§‘πŸ½ Drivers are expected to listen to their navigator and implement their directions πŸ§‘πŸΏβ€πŸ€β€πŸ§‘πŸ½ Navigators are expected to talk to their drivers and articulate their strategy

πŸŽ‰ Welcome

Learning Objectives

Welcome to the How our curriculum works module. This is a 3-part self-taught module designed for new members of our community to build a solid understanding of our curriculum. You will need to start with this prep section before exploring the rest of this module.

To best understand how our curriculum works, it makes sense to start by understanding the background in which Code Your Future and our collective mission. With an understanding of our collective mission, the purpose and structure of curriculum will begin to make more sense.

Ready, let’s go…

🎑 Morning orientation

Learning Objectives

We use the morning orientation block to gather the community together. We nominate a time-keeper and a facilitator (if they weren’t already nominated during the week). The objectives of the morning orientation block are clear:

Steps πŸ‘£

  1. Search for morning orientation on the curriculum website
  2. Find a day plan view where the morning orientation is used
  3. Check the learning objectives on the morning orientation block

🎬 Active learning

Learning Objectives

Active learning is at the heart of our educational philosophy. It is about encouraging learners to build, explore and discuss new concepts instead of being passive recipients of knowledge.

🎯 Have we met our goals?

Learning Objectives

Learning something as a complete beginner can be daunting: it is often difficult to know where to start. To learn effectively, we must set clear and measurable learning objectives to direct our education. Objectives should allow us to answer questions like this:

  • Which concepts are we trying to understand?

  • What skills should I have after my course of study?

  • What evidence do I need to demonstrate my understanding?

With clear objectives in mind, we can continually evaluate our progress by checking against these objectives. During the course, you must evaluate your progress against a sprint’s success page. For each sprint, the success view lists all the learning objectives for any prep and workshops. It serves as an overview of your learning outcomes for a sprint. Use this view to evaluate your progress.

A module also has a success page, listing the overall learning objectives set by the Global team. At the beginning of a module, review the objectives to understand what you are working towards. At the end of the module, review again to check you’ve met your learning goals.

πŸ“ Check

  • Check you can locate the module success page for the How our curriculum works module

🐬 Flipped classroom

Learning Objectives

We use a flipped classroom model. In this model, we expect trainees to start building their understanding independently as soon as possible. From the beginning of the course, trainees are expected to prepare and take ownership of their learning before they attend in-person sessions.

πŸ‘Ύ Codewars

Learning Objectives

Codewars is an online code challenge platform that allows users to hone their skills on thousands of katas. The platform is useful for developing problem-solving skills and improving your fluency in a programming language. Another key advantage is immediate feedback. Users can check their programming solutions with pre-built test suites, gaining very quick feedback on their progress.

πŸ‘£ Next steps

In practice

πŸ“… Day plan

Learning Objectives

Cohorts meet once a week in person. Together, we develop our understanding of the topics we are working on this week. We use a day plan to organise this day. A day plan is an agenda with workshops, study sessions and activities to make the most of our time together.

There’s a day plan for every sprint of every module. Each day plan lists a series of activities, with timings, instructions, and links to resources.

πŸ“ Code review

Learning Objectives

Often learners try to rush through the curriculum by completing the coursework without evaluating their work. However, our ultimate goal is to build understanding and learn new skills. Our coursework is the means of achieving this goal but not the ultimate goal itself. Learning without evaluation will lead to weak or absent comprehension.

Therefore, code reviews are essential for evaluating our work. They aren’t about grading; they initiate a dialogue starting with constructive feedback about a piece of work. This means you reply to the comments and make changes based on this feedback. This is how you develop your skills. The learning comes from reading and responding, from participating in this dialogue.

Code review is also one way we develop professional technical communication, which is one of the most valuable skills we can give people on this course.

πŸ‘£ Next steps

  • Join the #cyf-code-review channel on Slack
  • Check the time of the next code review session
  • Locate any unreviewed pull requests for a particular cohort

πŸ“ Check

πŸš€ Our mission

Learning Objectives

CodeYourFuture helps people who need it most to reach their goal of working in tech. We are a grassroots movement that empowers communities with the resources they need to educate themselves and prepare for a career in the 21st-century tech industry.

Background

Learning Objectives

The idea behind CodeYourFuture started brewing in the summer of 2016. Working in the tech industry, CEO and co-founder GermΓ‘n wanted to find a way to make a positive impact on people’s lives through technology. He had observed the invaluable contributions of developers to organizations of various sizes and saw the potential for empowering individuals with coding skills.

During the European refugee crisis of 2015, the UK experienced a negative perception toward forcibly displaced people, despite many individuals lacking personal interactions with refugees or asylum seekers. Seeking guidance, GermΓ‘n connected with Gijs Cortens, the founder of HackYourFuture, who provided valuable support during the early stages of establishing CodeYourFuture.

In mid-October 2016, CodeYourFuture launched its first class with ten students from diverse backgrounds, including Syria, Afghanistan, India, Ethiopia, and a stateless individual. This marked the foundation of the London chapter. An article published in Refugee Deeply provides a detailed account of the launch of the first class. When interviewed during the launch of the first class in 2016, German said:

β€œThe tech industry is facing a huge challenge to find developers to fill the ever-increasing number of vacancies and, at the same time, to increase the diversity of their workforce to help serve their customers better,” he explains. β€œTraining refugees to become developers represents a great opportunity to address both issues.”

CodeYourFuture expanded its focus in 2019 to include locally-born disadvantaged adults. Many of these adults face challenges in finding meaningful work in their home country due to a lack of resources. CodeYourFuture aims to bridge this gap by providing them with essential skills and opportunities.

Backlog

Learning Objectives

In software development, we break down complex projects into smaller, manageable parts, which we work on for a week or two. These periods are called “sprints.”

A sprint backlog is like a to-do list. It lists what the team has decided to work on this sprint. It’s chosen from a larger list, usually called the “product backlog,” which holds the entire project to-do list.

The backlog is a set of work designed to build understanding further from the concepts introduced in the course prep. For your course, the mandatory work has been scheduled already. You will add any other tickets you want to work on to your backlog and schedule them according to your own goals and capacity. Use your planning board to do this.

You will find the backlog in the Backlog view on every sprint.

Copy the tickets you are working on to your own backlog. Organise your tickets on your board and move them to the right column as you work through them. It’s a flowchart:

flowchart LR Backlog --> Ready Ready --> in_progress in_progress[In Progress] --> in_review in_review[In Review] --> Done

No lectures

Learning Objectives

We don’t lecture trainees during live sessions. We are not against lectures; if you want to deliver a lecture, that’s great! Put it on Youtube and send us the link. Trainees can then watch lectures at their own pace, with captions, pause, and rewind enabled. Trainees also have free accounts kindly donated by Udemy and you can assign any Udemy for Business course.

At The Docs we have to maximise the time we have together, by working in person on projects, hitting blockers, and learning together. We are not a school. We are a community of professionals coming together to share skills and build real things to help people get real jobs inside one year.

Workshops

Learning Objectives

We do at least one active learning Workshop every class day. Workshops are group activities where the community discusses, solves and reflects on problems related to their current sprint. They are an opportunity for practice, critical thinking and dialogue.

We collectively develop workshops in this repo: https://github.com/CodeYourFuture/CYF-Workshops/. Check out some examples and raise a PR if you’ve got an idea for a new workshop.

πŸ—ΊοΈ Curriculum

Learning Objectives

Our curriculum 🧢 🧢 curriculum is a highly structured organisation of resources and tools to guide a community in its educational development. is a FOSS educational project built by members of our community. Its purpose is to equip communities with the resources they need to launch a career in the tech industry. The curriculum is our collective solution to the mission of empowering communities to self educate, self coordinate and self evaluate.

πŸ›£οΈ Using this module

Learning Objectives

The rest of this module is split into three sprints, which you can complete in your own time: self educate, self coordinate and self evaluate. Each sprint is about how to use the curriculum to achieve each of these community goals. For each sprint, you’ll need to start with the prep sprint to introduce yourself to new concepts before using the backlog to understand how you can start engaging with the community. At the end of each sprint, there is a success page. Check off the objectives in the list.

flowchart TB subgraph self educate direction TB prep1[prep] --> backlog1[backlog] --> success1[success] end subgraph self coordinate direction TB prep2[prep] --> backlog2[backlog] --> success2[success] end subgraph self evaluate direction TB prep3[prep] --> backlog3[backlog] --> success3[success] end

Ready, head to the self educate sprint

πŸ₯ Rhythm of the week

Learning Objectives

Self-coordinating as a community poses challenges. One challenge is working out not just what to do but when to do it. This gets harder when we are working on different schedules. To make things even harder, we use a flipped classroom model: very different from a regular school.

To solve this problem, we use the rhythm of the week.

gantt title Rhythm of the week! dateFormat YYYY-MM-DD tickInterval 1day weekday tuesday axisFormat %A section Trainees Prep :2024-01-09, 2d In-person session :2024-01-13, 1d Backlog :2024-01-11, 5d Demo :2024-01-12, 1d

This rhythm supports trainees to plan their work during the week while still allowing flexibility in people’s different schedules. In a typical sprint week, Tuesday is the starting point with in-person sessions on Saturdays serving as the mid-point in the week. We use Sundays and Mondays to reflect on our learning and finish off any backlog tasks.

πŸ§‘πŸΎβ€πŸ’» Importance of prep

Learning Objectives

In a flipped learning model, learners are expected to prepare before they meet up as a community. Therefore, regular preparation is essential for our community to self-educate together. In each sprint week, we expect trainees to work on the prep section beforehand to start building their mental model of the week’s concepts.

🧭 Community goals

Learning Objectives

To achieve our mission, we bring people together to build self-empowered communities of learners. To this end, we have 3 community goals for achieving our mission:

We build communities that can self-educate

Self educate means the ability to draw on surrounding resources to learn new skills and concepts. Tech changes all the time. We must develop independent learners who can teach themselves new skills and technologies.

We build communities that can self-coordinate

We build communities that can self-evaluate

🧱 Builder mindset

Learning Objectives

Builder mindset means in our minds we remember we are a community of builders.

πŸ«±πŸΎβ€πŸ«²πŸΏ Study groups

Learning Objectives

In a flipped classroom, we spend our time in class focused on active learning: we need to prioritise time and space for trainees to work on their backlog independently in small groups.

Steps πŸ‘£

  1. Search for study group on the curriculum website
  2. Find a day plan that uses the study group block
  3. Read the instructions on the block
  4. Check the learning objectives for the study group block