πŸ§‘πŸΎβ€πŸ€β€πŸ§‘πŸΎ day-plan

✍🏽 Register

πŸ”‹ Energiser

Every session begins with an energiser. Usually there’s a rota showing who will lead the energiser. We have some favourite games you can play if you are stuck.

  1. Traffic Jam: re-order the cars to unblock yourself
  2. Telephone: draw the words and write the pictures
  3. Popcorn show and tell: popcorn around the room and show one nearby object or something in your pocket or bag and explain what it means to you.

🎑 Morning orientation

Learning Objectives

Planning during the week

🧭 During the week, create a post on Slack and get some people to take on the roles of facilitator and timekeeper. Nominate new people each time.

πŸ‘£ Steps

If you haven’t done so already, choose someone (volunteer or trainee) to be the facilitator for this morning orientation block. Choose another to be the timekeeper.

πŸŽ™οΈ The Facilitator will:

  1. Assemble the entire group (all volunteers & all trainees) in a circle
  2. Briefly welcome everyone with an announcement, like this:

    πŸ’¬ “Morning everyone, Welcome to CYF {REGION}, this week we are working on {MODULE} {SPRINT} and we’re currently working on {SUMMARISE THE TOPICS OF THE WEEK}”

  3. Ask any newcomers to introduce themselves to the group, and welcome them.
  4. Now check: is it the start of a new module? Is it sprint 1? If so, read out the success criteria for the new module.
  5. Next go through the morning day plan only (typically on the curriculum website) - and check the following things:

Facilitator Checklist

  • Check the number of volunteers you have for the morning
  • Check someone is leading each session
  • Describe how any new activities works for the group
  • Decide how best to allocate trainees and volunteers for a given block - most blocks will make this clear

⏰ The Timekeeper will:

  • Announce the start of an activity and how long it will take (check everyone is listening)
  • Manage any whole class timers that are used in an activity
  • Give people a 10-minute wrap-up warning before the end of an activity
  • Announce the end of an activity and what happens next

🧰 Workshop Activity

Learning Objectives

This space is for a workshop activity of your choosing. In order for this to actually happen, you must organise it ahead of time.

What is a CYF workshop?

πŸ‘·πŸΏβ€β™€οΈ No lectures

Code Your Future workshops are designed to be interactive. Developed by volunteers and trainees, they are not about listening to a lecture. They are about doing, discussing, and learning together.

πŸ’ͺ🏾 No spoonfeeding

Workshops are also not tutorials, where you follow along step-by-step. CYF workshops are meant to expose gaps and mistakes in your understanding, so mentors can help you fix them. This means you should expect to be challenged and to make mistakes. This is the main value of mentor-led workshops.

πŸ‘‚πŸΏ Responding to needs

You can run a workshop in person on class days, or online in the week. Mentors volunteer to run workshops on Slack, and learners propose topics they need help with. There are a huge number of workshops available at workshops.codeyourfuture.io/.

Organise a workshop on Slack

./organise-workshops.png

πŸ—‚οΈ Options

DOM merge conflict [Tech] (60 Mins)

πŸ”— DOM merge conflict [Tech] (60 Mins)

DOM Merge Conflicts

This workshop contains a collection of DOM components. For this workshop, you will be creating branches for refactoring and updating the components and then resolving the merge conflicts that arise. You’ll be working in pairs, learning how to handle branching, refactoring, and creating pull requests.

Overview

  • Objective: Learn to resolve merge conflicts that arise during software development

  • Activity: Update and refactor DOM components in two different Git branches

  • Duration: 1 hour

  • Describe how merge conflicts can occur in a development setting

  • Interpret a merge conflict message

  • Resolve a merge conflict while preserving changes to the code

Prerequisites

  • JS DOM syntax
  • Access to documentation
  • Some knowledge of how to run tests using Jest

Setup

  • Get into pairs
  • Before starting, ensure you create a fork of this repository on Github to use as a pair. Each person in the pair must clone down the fork of this repository from Github and navigate to the project directory

Instructions

1. Start Branching from main

Each pair will need to branch off from main. Firstly, make sure you both start on the main branch and it’s up to date:

git switch main
git pull origin main

2. Choose a task

As a pair, choose one task from tasks that you will both follow.

3. Follow the task instructions until the end

Choose who will be Person 1 and who will be Person 2 and then follow the instructions in your task’s directory. Once finished, continue the instructions on this page.

Some tasks will ask you to unskip tests, remove the skip before from the appropriate describe block in this case.

4. Test your changes

Use the provided test suite to ensure your app works correctly. Run the tests according to the task’s testing instructions.

5. Raise a pull request

Once you have tested your changes and are satisfied with the changes, commit your changes and push your branch to the remote repository:

git add <files-you-changed>
git commit -m "<description of change>"
git push origin [your-branch-name]

You should raise a pull request on your pair’s fork of this repository.

6. Handling merge conflicts

Once you have both raised your pull requests, choose one Pull Request to review first and then merge it.

Now you will need to handle the second pull request. For this pull request, you should now have a merge conflict in the remaining pull request.

On the branch to be merged run:

git pull origin main

So that you can resolve the changes locally using Git.

Use this guide from GitHub to resolve the conflict using Git.

When you come to resolve the merge conflict, you need to make sure to keep the updates and refactors. Make sure to test that your app still works.

Once you’ve resolved the conflict, you should be ready to merge the second PR. Discuss with your partner whether the tasks assigned have been completed after both merges.

Interviewing practice [PD] (60 Mins)

πŸ”— Interviewing practice [PD] (60 Mins)

Interviewing [Professional Development] [60 minutes] πŸ§‘β€πŸ’»

Acing job interviews is a skill that can be learned like any other. Today we will pair up to practice interviewing.

Objective πŸ’¬

At the end of this workshop, participants can:

  • [] Introduce themselves in 2 minutes
  • [] Answer soft skill interview questions using the STAR method
  • [] Prepare a strategy to get ready for technical interviews

Setup 🌼

  • Pair up into groups of 2-3

Stage 1: Introduce Yourself, 15 minutes πŸ™†

In almost every interview, the interviewer will ask you to introduce yourself. The goal is to give the interviewer a snapshot of who you are, your professional background, and why you’re a good fit for the role. Take 5 mins to craft a compelling narrative.

Some tips:

  • Your response should be 1-2 minutes
  • Try to structure your response, as an example the Present-Past-Future model:
    • Present: Start by briefly mentioning your current role or what you are doing at the moment (education, job, etc.), and give an overview of your responsibilities.
    • Past: Mention your relevant experience, skills, or education. Focus on achievements and how they shaped your current professional identity.
    • Future: Highlight what you want to do next and why you’re excited about this opportunity.
  • Try to be enthusiastic, let your personality and confidence shine
  • Do not overwhelm your interviewer with too much information
  • Allow 1-2 minutes for follow-up questions

After the 5 minutes are up take turns practicing your introductions. While the other person is introducing themselves, put yourself in an interviewer’s shoes. Share what the other person did well and what they could improve.

Stage 2: The Soft Skills Interview πŸ₯Ž

Soft-skill interview questions are typically asked at some point during the interview process.

Answer these questions with the STAR method which stands for Situation, Task, Action and Result. Here is an example of using the STAR method to answer a question:

β€œCan you tell me about a time when you had to work in a team and faced a challenge?”

  • Situation : “During my final group project, we had to develop a mobile app for managing student assignments. Midway through the project, we hit a roadblock because two teammates disagreed on which framework to use: one preferred React Native, while the other wanted to stick with Flutter. This was causing delays in our progress.”
  • Task : β€œAs the team lead, my task was to resolve the conflict and ensure we stayed on schedule.”
  • Action : β€œI organized a meeting to discuss the pros and cons of both frameworks, focusing on performance and our project requirements. After evaluating, I suggested using React Native because it allowed us to quickly integrate with the backend we’d already built. The teammate supporting Flutter agreed once we reviewed the long-term benefits.”
  • Result : β€œWe moved forward with React Native, completed the app on time, and received positive feedback from our teachers for both functionality and performance. It also helped the team work more smoothly on future features.”

Remember, when asked about failures or mistakes to say what you learned from them.

Discussion, 15 minutes

Discuss how you might answer the following questions in a real interview. Take turns asking each other questions from the following list. Spend no more than 2 minutes on each.

  • Tell us about a time you missed a deadline.
  • What was your favorite project you have worked on so far.
  • When was a time you failed?
  • Tell us about a time you had to help your team members through a tough time.
  • Tell me about a time you prioritized your time well, despite having multiple deadlines.
  • Tell me about a time you solved a problem at work.
  • How do you teach your colleagues about new practices within the company?
  • Tell me about a time when things didn’t go according to plan. How did you deal with it?
  • What is your response when a colleague disagrees with you?
  • Share a time you set a goal and achieved it.

Stage 3: The Technical Interview, 15 minutes πŸ“ž

Pick any technical topic such as Javascript, Python, SQL, databases, etc., and search for the Top 50 beginner interview questions for that topic. Read through the list together. Discuss if there are any surprises in there. Which questions did you find easy and which ones did you find difficult? Try asking each other a couple of questions and see if you can answer them. Practice what you will say if you do not know an answer.

Some tips for technical interviews:

  • Think out loud: walk the interviewer through your thought process.
  • Interviewers do not expect you to know everything. Be honest when you do not know something.
  • If you do not understand something, ask questions!
  • Practice, practice, practice

Reflection πŸ§˜β€β™‚οΈ

With the remaining time, come together as a group and discuss:

  • How did you feel introducing yourself? How could you tailor your introduction according to a job interview.
  • Did you find it difficult or easy to use the STAR method to answer the soft skill questions? Why?
  • Did you find the technical interview questions challenging? What are some strategies to stay calm when you do not know the answer to a question?

Summary & Homework

Interviewing is a skill that takes lots of practice. Your introduction should be thought out and well-polished by the time you are at your first interview. You cannot prepare answers for every soft skill question, but having 3-4 prepared in advance makes thinking on your feet easier. Prepare for technical interviews by reading through the most commonly asked questions for that topic. For questions you do not know, ask clarifying questions, say what you do know about the topic, and admit when you do not know. Your interviewer does not expect you to know everything!

Homework

  • set up a practice interview by the end of this week with either a volunteer or another CYF participant.

🍽️ Community Lunch

Every Saturday we cook and eat together. We share our food and our stories. We learn about each other and the world. We build community.

This is everyone’s responsibility, so help with what is needed to make this happen, for example, organising the food, setting up the table, washing up, tidying up, etc. You can do something different every week. You don’t need to be constantly responsible for the same task.

πŸ›— Study Group

Learning Objectives

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

πŸ›ŽοΈ Code waiting for review πŸ”—

Below are trainee coursework Pull Requests that need to be reviewed by volunteers.

Karla Grajales | Sprint-2 - Module-Data-Groups | SPRINT 2 πŸ”—

Learners, PR Template

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

I learnt how to manipulate strings and objects in JavaScript, including counting word occurrences, swapping object keys and values, and fixing function logic.

Questions

Ask any questions you have for your reviewer.

Start a review
West Midlands | Alireza Seifi Shalamzari | Module-Data-Groups | Week 3 πŸ”—

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

This PR is the completed version of Quote generator app

Questions

Ask any questions you have for your reviewer.

Start a review
West Midlands | Alireza Seifi Shalamzari | Module-Data-Groups | Week 3 πŸ”—

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

This is the complete version of alarm clock application.

Questions

Ask any questions you have for your reviewer.

Start a review
CYF London | Rihanna Poursoltani | Module-Data-Groups | Sprint 3 | Alarm Clock App πŸ”—

Learners, PR Template

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR.

Questions

Ask any questions you have for your reviewer.

Start a review
CYF-ITP-South Africa | Serna Malala | Module-Data-Groups | Week 3 Todo List πŸ”—

Learners, PR Template

Self checklist

  • I have committed my files one by one, on purpose, and for a reason
  • I have titled my PR with COHORT_NAME | FIRST_NAME LAST_NAME | REPO_NAME | WEEK
  • I have tested my changes
  • My changes follow the style guide
  • My changes meet the requirements of this task

Changelist

Briefly explain your PR. I created a todolist app that dynamically adds todo items to the screen using javascript. The check mark and delete buttons also work to strikethrough and delete the items.

Questions

Ask any questions you have for your reviewer.

Start a review
See more pull requests

πŸ«– Afternoon Break

Please feel comfortable and welcome to pray at this time if this is part of your religion.

If you are breastfeeding and would like a private space, please let us know.

πŸ›— Study Group

Learning Objectives

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

πŸ”„ Retro: Start / Stop / Continue

πŸ•ΉοΈRetro (20 minutes)

A retro is a chance to reflect. You can do this on RetroTool (create a free anonymous retro and share the link with the class) or on sticky notes on a wall.

  1. Set a timer for 5 minutes. There’s one on the RetroTool too.
  2. Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
  3. Write one point per note and keep it short.
  4. When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
  5. Next, set a timer for 2 minutes and all vote on the most important themes by adding a dot or a +1 to the note.
  6. Finally, set a timer for 8 minutes and all discuss the top three themes.