๐ท๏ธ backlog
Module-Structuring-and-Testing-Data ๐
02 Complete Sprint 3 coursework ๐ Clone
02 Complete Sprint 3 coursework ๐
Link to the coursework
https://github.com/CodeYourFuture/Module-Structuring-and-Testing-Data/tree/main/Sprint-3
Why are we doing this?
These challenges are designed to develop your problem-solving skills.
Maximum time in hours
6
How to get help
Share your blockers in your class channel https://curriculum.codeyourfuture.io/guides/asking-questions/
How to submit
- In your fork of the coursework repo, checkout the main branch
- Make a new branch from main called
coursework/sprint-3 - Make regular small commits in this branch with clear messages.
- When you are ready, open a PR to the CYF repo, following the instructions in the PR template.
There are several directories in this repo. Make a new branch for each sprint. Only change files in the sprint 3 directory.
- Submit:PR
- ๐ Priority Mandatory
- ๐ Size Medium
- ๐ Sprint 3
- ๐ Sprint 3
- ๐ Size Medium
- ๐ Priority Mandatory
- Submit:PR
03 Watch the VSCode Debugger Video ๐ Clone
03 Watch the VSCode Debugger Video ๐
Link to the coursework
https://code.visualstudio.com/docs/introvideos/debugging
Why are we doing this?
๐งฐ We are building a toolkit to help us write great software. In our toolkit we are collecting skills with:
๐ Specifications, like user stories, acceptance criteria, and Given/When/Then Help us understand what to write and check we’ve written the right thing.
๐งช Tests, like unit tests and assertions Help us break down our problems and check our solutions work even when we change things.
๐ฌ Asking questions Helps us formally reason through our problems and identify gaps in our mental models.
๐คPlaying computer Helps us reason about code with a mental model.
๐ฆบ Audits, like Lighthouse Help us identify performance and quality improvements we can make to our code.
And now we can add debuggers to our toolkit.
๐ Debuggers are tools that help us find and fix problems, or bugs, in our JavaScript code. They let us step through our code line-by-line while it runs to see what is happening. This helps us find the place where our mental model of the code is different from our implementation. Your browser has a debugger and so does VSCode.
Key reasons we use debuggers:
- See what’s happening inside functions
- Check if variables have expected values
- Pause execution and step through slowly
- Find exactly where mistakes happen
JavaScript debuggers give control over execution flow to methodically test and fix bugs. Watch the first four minutes of the video and then explore the VSCode Debugger on your machine.
Maximum time in hours
.5
How to get help
AI can help you here. Code along with AI so it has the context and ask it when you get stuck. Use this starting prompt:
Act as a friendly, supportive, knowledgeable programming mentor. I am learning the debugger in VSCode.Talk me through the interface step by step. Provide a simple example of a Node script with a bug in it and walk me through finding the bug by setting breakpoints with the debugger. Don’t tell me what the bug is. When I get stuck, answer my questions in CEFR B2 English meant for an adult professional speaking in a second language. When I ask for hints, give me useful pointers. Say okee dokee if you understand and begin your walkthrough.
Remember to use careful prompting when you don’t understand, so you get real learning out of the exchange. Say things like:
The execution is paused and it shows me that is undefined and is undefined, but I don’t understand why it says that. Can you explain this to me?
And remember you should always ask your friendly humans in Slack when you get really stuck. This coursework will be set again in later modules, so if it’s beyond you right now, you’ll pick it up later.
- ๐ฏ Topic Communication
- ๐ฏ Topic Requirements
- ๐ฏ Topic Testing
- ๐๏ธ Priority Stretch
- ๐ Sprint 3
- ๐ฆ Size Tiny
- ๐ฆ Size Tiny
- ๐ Sprint 3
- ๐๏ธ Priority Stretch
- ๐ฏ Topic Testing
- ๐ฏ Topic Requirements
- ๐ฏ Topic Communication
04 CIP Python Control Flow ๐ Clone
04 CIP Python Control Flow ๐
Link to the coursework
https://codeinplace.stanford.edu/public/studenthome
Why are we doing this?
Revisit our old friends while loop, for loop and if statements in the world of Python. Be able to create variables of type boolean.
Maximum time in hours
6
How to get help
Come to Slack and MCB classes with your blockers.
- ๐ฏ Topic Programming Fundamentals
- ๐ Priority Mandatory
- ๐ Sprint 3
- ๐ Sprint 3
- ๐ Priority Mandatory
- ๐ฏ Topic Programming Fundamentals
06 ๐ซฑ๐ฝโ๐ซฒ๐ฟ CodeBuddy pair programming ๐ Clone
06 ๐ซฑ๐ฝโ๐ซฒ๐ฟ CodeBuddy pair programming ๐
Learning Objectives
Pick one piece of programming you’re doing (we recommend a codewars kata) and pair up with a volunteer to work on it together.
See the mentored pair programming guide for guidance.
Book time with a volunteer and if you don’t have a CB assigned yet, ask in the class channel for a volunteer to pair with you. Be aware of timings, so the earlier you ask and start coordinating with a volunteer the better.
Remember, as a learner, you will need to explain your thought process, plan out what to do, write the code and check it works
Why are we doing this?
Pair programming is an excellent way to develop programming and communication skills. It is often much easier to work through something when working on something 1-to-1. It is also helps our learners to prepare for technical interviews when they’ll need to code in front of other people.
Acceptance criteria
- You have pair programmed on a piece of programming with a volunteer for at least half an hour this sprint.
Objectives
- :memo: Self evaluate
- ๐ Priority Mandatory
- ๐ Size Small
- ๐ Sprint 3
- ๐ Sprint 3
- ๐ Size Small
- ๐ Priority Mandatory
- :memo: Self evaluate
07 Codewars ๐ Clone
07 Codewars ๐
Link to the coursework
https://www.codewars.com/users/CodeYourFuture/authored_collections
Why are we doing this?
Every week you need to complete at least three kata. Spend at least 20 minutes, three times a week, on your kata workout.
Find the Collection for this module on the CodeYourFuture account.
Take some time to check your levels. Before you are accepted on the jobs programme, you need to reach a Level 5 kyu in Codewars. Are you on track to reach this standard? Have you run a study group to work on kata? Have you reached out on the #cyf-codewars channel? What is your plan to meet this goal?
Maximum time in hours (Tech has max 16 per week total)
1
How to get help
- Join the #cyf-codewars Slack channel
- Read the CYF Codewars docs
- Read Codewars advice from CYFers
- Read Codewars advice from mentors
- Hint: you can pair program on a kata to complete two assignments in one
Remember, after 20 minutes, take a break.
How to submit
Your codewars progress is tracked automatically and is available on the public API. You don’t need to submit it.
How to review
Once you have completed your kata, look at the other solutions in the solutions view. Consider how many different approaches there are.
- ๐ฏ Topic Code Review
- ๐ฏ Topic Problem-Solving
- ๐ฏ Topic Programming Fundamentals
- ๐ฏ Topic Requirements
- ๐ฏ Topic Time Management
- ๐ Priority Mandatory
- ๐ Sprint 3
- ๐ Sprint 3
- ๐ Priority Mandatory
- ๐ฏ Topic Time Management
- ๐ฏ Topic Requirements
- ๐ฏ Topic Programming Fundamentals
- ๐ฏ Topic Problem-Solving
- ๐ฏ Topic Code Review
09 Play the Bandit ๐ Clone
09 Play the Bandit ๐
Link to the coursework
https://overthewire.org/wargames/bandit/
Why are we doing this?
Basic Linux skills are essential for roles in Cloud, DevOps, Cyber, and SRE. Junior Cloud and DevOps roles are growing in the industry; React and fullstack junior roles are becoming scarce. So it’s a good idea to practice Linux skills to make yourself more employable. At the basic level this means using a computer from the command line instead of a GUI. You will learn to use commands to move from folder to folder, to open and edit files, and to get info like the size of a file or its location. At MCB we build this skill by playing a game called The Bandit.
There are many levels, and many more games after The Bandit, but your goal is to get to Level 10 by the end of the next module.
- This blog post by Tanner Dolby will walk you through level 1 to 5. Yes, you get the first 5 levels done for you.
Maximum time in hours
2
How to get help
Work through the puzzles and ask in your Class channel if needed.
Don’t share solutions in this channel, or you steal from others the opportunity of learning.
How to submit
There is no submission step.
Anything else?
Here’s a ChatGPT prompt you can use to get the best, most helpful learning experience:
Please act as a friendly, warm, straightforward technical mentor. You are an experienced Site Reliability Engineer who uses the terminal regularly and understands all shell commands in bash. You can explain clearly, using English mostly at CEFR B2 level, how to execute shell commands and how to navigate Linux file systems. We will be playing The Bandit, Over the Wire, shell game together. I don’t want you to give me all the answers. I want you to walk me towards the answer, helping me to find out and learn Linux commands, explaining clearly what is happening as we go. Please answer my questions carefully and do not offer code solutions, just explain in English the approach I should take and then review the commands I suggest to you. Say okee dokee if you understand.
- ๐ฏ Topic Problem-Solving
- ๐ฏ Topic Programming Fundamentals
- ๐ Priority Mandatory
- ๐ Size Medium
- ๐ Sprint 3
- ๐ Sprint 3
- ๐ Size Medium
- ๐ Priority Mandatory
- ๐ฏ Topic Programming Fundamentals
- ๐ฏ Topic Problem-Solving
10 Learn from rejections ๐ Clone
10 Learn from rejections ๐
Coursework content
Everyone experiences rejection. Learning from past examples helps us to deal with the possible future instances. Think of some situations where you felt rejected. Perhaps you didnโt get on a sports team or didnโt get offered a job. Write a 250-word text about this personal experience. Try to answer the following questions:
- What did you learn as a result of this rejection?
- Did the experience teach you more about yourself?
- What positive things came out of the rejection (perhaps not immediately, but later)?
- How would you recommend other people to behave in that situation?
Estimated time in hours
1
What is the purpose of this assignment?
This assignment will help you to reflect on personal rejection instances and make you realise how you can benefit from them.
How to submit
Share the link to the Google doc of your reflections on your ticket. You don’t have to publish your personal document on the public internet, but do give access to a mentor when they ask to review.
- ๐ Priority Mandatory
- ๐ Size Small
- ๐ Sprint 3
- ๐ Sprint 3
- ๐ Size Small
- ๐ Priority Mandatory
Stretch: CIP Graphics ๐ Clone
Stretch: CIP Graphics ๐
Link to the coursework
https://codeinplace.stanford.edu/public/studenthome
Why are we doing this?
Learn how to draw shapes on a graphical canvas using Python! Create rectangles, circles, and images. This is the first step towards graphical user applications or exciting games.
Maximum time in hours
6
How to get help
Come to Slack and CYF coworking spaces with your blockers.
- ๐ฏ Topic Programming Fundamentals
- ๐๏ธ Priority Stretch
- ๐ Sprint 3
- ๐ Sprint 3
- ๐๏ธ Priority Stretch
- ๐ฏ Topic Programming Fundamentals