🎡 Morning orientation
Learning Objectives
Planning during the week
👣 To Do
🎙️ The Facilitator will:
- Assemble the entire group (all volunteers & all students) in a circle
- Briefly welcome everyone with an announcement, like this:
💬 “Morning everyone, Welcome to another Saturday at MigraCode, this week we are working on Module X Sprint 3 and we’re currently working on {summarise what the topic of the week is}”
- 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.
- Next add one thing you hope to find out or learn about today.
⏰ 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
🖥️ Screen Safari
Learning Objectives
A playful way to practice screen sharing while sharing something personal.
Facilitator, please begin by sharing your screen. Talk through what you are doing and show your favorite website, digital photo, or bookmark. Explain why it’s meaningful to you. On gallery view, choose the person “next” to you to share next.
Each participant will have minute to:
- Share their screen
- Show their favorite website, digital photo, or bookmark
- Explain why it’s meaningful to them
Practice stopping screen share before the next person begins!
Go around the group until everyone has shared.
Facilitator Check in questions
Guide participants on technical comfort
- What was challenging about the screen sharing process?
- What would make you feel more confident sharing your screen?
- What did you learn about your colleagues through their shares?
⚠️ Disclaimer
📝Note
This exercise is hosted on the GitHub repository of our partner NGO, Code Your Future (UK), and not on a MigraCode-owned repository. We are part of a European network where we share resources and support each other as we share the same mission - to provide free, high-quality tech education to our communities.
The exercise works as intended — you are free to fork and clone the repository as usual, if required by the exercise. However, please do not make any pull requests to the original Code Your Future repository.
Lastly, if there are any mentions to CYF Slack channels please write a message into our MigraCode class channel instead.
🔗 Javascript Test Your Understanding
Learning to evaluate your understanding
🎓 Instructions
This workshop aims to check your understanding.
Each task will explain whether or not you should run the code.
- For each task, use your prep materials to help you with the questions.
- You can also use documentation to look up any functions that are unfamiliar.
- Don’t use ChatGPT or any other AI tool to help you. We are practising how to check our own understanding. You are finding out what you need to work on. Make notes as you go along to help you focus what to work on in study group.
🧰 Setup
👉 This workshop lives on CYF-Workshops on GitHub
- Get into pairs or groups of up to three.
- Make sure you have a clone of the CYF-Workshops repository on your local machine
Each file contains a different problem at a particular level. Start this project at Level 100 and then move up through the levels: level 200, 300 …
🫖 Morning Break
A quick break of fifteen minutes so we can all concentrate on the next piece of work.
Asking good technical questions
🤙🏽 FeedbackLearning Objectives
Preparation
- A4 paper with exercise 1 printed for each trainee in the cohort
- Give each trainee one paper at the start of the session
- Pens
Introduction
3 exercises below:
- (10m) How do you get help today? Why don’t you get help?
- (45m) Good question improvisation
How do you get help today? Why don’t you get help?
🎯 Goal: Reflect on how you get help for your questions today (10 minutes)
Answer the following questions, then find a partner and discuss any significant differences you have in your answers.
Q1. When you come across something you don’t understand, which of the following ways do you use to get answers?
- Search Google / Bing / …
- Search Stack Overflow
- Search YouTube
- Ask ChatGPT or other AI
- Ask a peer
- Ask an expert/senior
- Post a question on a forum / Slack channel
- Read the documentation
- Other (_________________________)
Q2. What stops you from asking others when there is something you don’t understand? Check the ones that apply to you.
- I feel I should probably already know the answer and asking would reveal my ignorance
- I don’t want to waste anybody’s time
- I don’t want people to think badly of me
- Nothing stops me because most people usually get pleasure from helping, and often even enjoy showing off their knowledge.
- Nobody has ever had my problem before, so there’s no point asking anyone
- Other (_________________________)
Good Question Improvisation!
🎯 Goal: Practice framing a good question and get feedback on it (45 minutes)
- Pick ONE of the technical issues that you have thought of during the prep. Use the good questions concepts that you have learned to write down a well-structured question (10 minutes).
- Working in groups, you should each take turns to ask your question of the others in your group. The others should provide constructive feedback on your good question and suggest possible ways it might be improved. (~5 minutes per person, no more than 30 minutes)
- As a group, reflect on the concepts that you think have been most beneficial to asking good questions. Take turns and share with the group one or two of the changes that you made (or someone else made) to a question that resulted in it being easier to answer and therefore more likely to give a more valuable answer. (5 minutes)
🍽️ Lunch
At MigraCode, there will be scheduled community lunches throughout the year during which all of MigraCode team will joing and would like to invite you to eat with us. The MC team will let you know when the upcoming community lunch will be. Bring your home-cooked food or buy some food across the street at Glories (e.g., at the Carrefour Supermarket or pick up some to-go meal from one of the restaurants there). We share our time, food and our stories. We learn about each other and the world. We build community.👭👬
On days where there is no community lunch planned you can still stay to socialise here and use the terrace to meet you peers and connect (this goes especially for class days that are longer than just until 2pm.)
Adevinta allows us to use their beautiful space, cutlery, plates, microwaves etc - please make sure to leave everything exactly as it was before so they keep lending their precious space to us ☺️. Ah and make sure to check out the foosball table on the terrace.
🚧 Sharing Our Blockers
Learning Objectives
We call problems that stop our progress “blockers”. We talk through our blockers regularly and help each other get “unblocked” or “unstuck”.
🕹️Sharing Our Blockers
Join our Jamboard here and add your blockers.
Make sure to add only one blocker per note.
Facilitator Once everyone has added their blockers, group similar blockers together.
Facilitator Next, discuss the blockers and help each other get “unblocked”. Start with the most common blocker and work your way down the list.
Hints and Tips
Example Blockers
- I can’t find a Slack channel people keep mentioning.
- People tell me I should be replying to a Slack message in a thread, and I don’t know how.
- I can’t open a PR, because…
- How do I fix extra stray files in my PR?
- I don’t have a computer so I can’t complete my work!
- How do I run Lighthouse?
- Everyone should have blockers. If you aren’t blocked on anything in the course, do you need to challenge yourself more?
- Ask “stupid” questions. Your question is not stupid! What we are doing is hard, and everyone has questions. If you’re stuck, it’s likely that someone else is too. Please help others and ask your question!
- If you have other more advanced questions, do write them on the board but don’t expect to answer them in Blockers. We will work on those in study group.
🧑🏿🔧 Study Group Development
Learning Objectives
This time is set aside for you to work together in small groups to make progress on your coursework and objectives. You should have brought at least one ticket from your backlog to work on and ideally have prepared at least one question to get mentor support on.
You can also choose to do structured activities to consolidate your objectives for this sprint. Your learning journey belongs to you. Think about what you need to do to achieve the objectives for this sprint and how you can use this time to work towards them.
If you are working on a Pull Request, this is a great time to get real time code review from your peers and mentors. Remember to use the GitHub interface to comment on the code and ask questions so your work can be tracked.
🗂️ Options
Optional structured activity: Pair Programming
🧑🏿🔧🧑🏿🔧 Pair programming
Learning Objectives
- Switch between driver and navigator roles after
- The “driver” is the person typing on the keyboard, just thinking about what needs to be written
- The “navigator” reviews what the driver is doing and is thinking about to write next
- Don’t dominate - this is teamwork
⌛ Time’s up! Take a break! Make a cup of tea. Good job, partners!
🫖 Morning Break
Please feel free to grab some coffee or tea or pray at this time if this is part of your religion .
🧑🏿🔧 Study Group Development
Learning Objectives
This time is set aside for you to work together in small groups to make progress on your coursework and objectives. You should have brought at least one ticket from your backlog to work on and ideally have prepared at least one question to get mentor support on.
You can also choose to do structured activities to consolidate your objectives for this sprint. Your learning journey belongs to you. Think about what you need to do to achieve the objectives for this sprint and how you can use this time to work towards them.
If you are working on a Pull Request, this is a great time to get real time code review from your peers and mentors. Remember to use the GitHub interface to comment on the code and ask questions so your work can be tracked.
🗂️ Options
Optional structured activity: Know Your Computer
🔗 Optional structured activity: Know Your Computer
Know Your Computer
“Know Your Computer” focuses on how to perform regular tasks on your computer. In this workshop you will use basic Linux commands in the terminal. The goal is to reduce your fear of using the terminal.
Pre-requisite
To be able to do this workshop you will need a computer with a Linux shell running on it. If you already have a Mac or an Ubuntu operating system or any other Linux distribution running on your laptop, then you are fine. If your laptop is running on Windows operating system, download and install Git Bash for Windows. Code Your Future does not support Windows, so you must install or dual boot Linux to take our course. But to do this workshop, you can just use Git Bash. Once installed, open git bash and you should be able to perform the tasks below.
Tasks
You must use the terminal and Linux commands to complete each challenge. You must not use your GUI! Hands off the mouse! 🖱️
- Create a folder called
my-shoppinginside your Documents folder. - Then create a file called
my-list.txtinsidemy-shoppingfolder. - Write the following items to
my-list.txtfile:
1. Tea
2. Pasta
3. Coffee
4. Milk
- Create a new folder called
my-new-shoppinginside your Documents folder. - Now move
my-list.txtfrom yourmy-shoppingfolder to yourmy-new-shoppingfolder. Yourmy-shoppingfolder should be empty after this step. - Copy
my-list.txtfrom yourmy-new-shoppingfolder back to yourmy-shoppingfolder. After this step, both folders should contain a file calledmy-list.txt. - Now add the following line to
my-list.txtfile that is insidemy-new-shoppingfolder:
5. Sugar
- Display the content of
my-list.txtfile insidemy-shoppingand the one insidemy-new-shopping.my-list.txtfile in my-shopping folder must have 4 items while the one insidemy-new-shoppingfolder must have 5 items.
Resources
To help with this here are resources you can refer to: freecodecamp.com, Guru99, CLI-Treasure-Hunt.
🔄 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.
- Set a timer for 5 minutes. There’s one on the RetroTool too.
- Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
- Write one point per note and keep it short.
- When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
- 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.
- Finally, set a timer for 8 minutes and all discuss the top three themes.