π·οΈ backlog
Module-Structuring-and-Testing-Data π
01 Working with your team π Clone
01 Working with your team π
Coursework content
Invite one person (fellow trainee or a volunteer) from the class you have worked with this week and arrange a call. Ask for their feedback to help you get more insight into how you are progressing with your learning.
Write a 250-word essay reflecting on your strengths and development areas as a result of their feedback.
Estimated time in hours
2
What is the purpose of this assignment?
To provide and receive constructive feedback.
How to submit
Share the link to the Google doc of your reflections on your ticket. Please share this link with a mentor when they ask to review.
- π― Topic Communication
- π Priority Mandatory
- π Size Medium
- π JS1
- π Sprint 3
- π Sprint 3
- π JS1
- π Size Medium
- π Priority Mandatory
- π― Topic Communication
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.
- π Priority Mandatory
- π Size Medium
- π JS1
- π Sprint 3
- π Sprint 3
- π JS1
- π Size Medium
- π Priority Mandatory
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
- π¦ Size Tiny
- π JS1
- π Sprint 3
- π¦ Size Tiny
- π Sprint 3
- π JS1
- ποΈ 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 CYF coworking spaces with your blockers.
- π― Topic Programming Fundamentals
- π Priority Mandatory
- π Sprint 3
- π Sprint 3
- π Priority Mandatory
- π― Topic Programming Fundamentals
05 π Code review π Clone
05 π Code review π
Why are we doing this?
Code review is an essential part of self-evaluation. Get a code review for a piece of work; then reply and iterate on this feedback.
We’re using GitHub Labels in our Code Review process. In order for a volunteer to review your pull request, you will need to add a “Needs Review” label to it.
- Open your pull request
- In the right sidebar, click Labels, then select “Needs Review”
Take a look at our code review process from beginning to end. Let us know if you have any questions or need help!
You can also use any solutions to review your code independently.
Maximum time in hours
1
- π― Topic Code Review
- π― Topic Communication
- π― Topic Programming Fundamentals
- π― Topic Teamwork
- π Priority Mandatory
- π Sprint 3
- :memo: Self evaluate
- π Sprint 3
- π Priority Mandatory
- π― Topic Teamwork
- π― Topic Programming Fundamentals
- π― Topic Communication
- π― Topic Code Review
- :memo: Self evaluate
06 π«±π½βπ«²πΏ Mentored pair programming π Clone
06 π«±π½βπ«²πΏ Mentored 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 using one of the Scheduling links in the #cyf-pair-programming slack channel’s canvas. If there are no available times, please post in #cyf-pair-programming.
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
- π Priority Mandatory
- π Size Small
- π Sprint 3
- :memo: Self evaluate
- π 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
- π JS2
- π Sprint 3
- π JS2
- π Priority Mandatory
- π― Topic Time Management
- π― Topic Requirements
- π― Topic Programming Fundamentals
- π― Topic Problem-Solving
- π― Topic Code Review
08 Giving feedback on the e-mails π Clone
08 Giving feedback on the e-mails π
Coursework content
In pairs, within your groups review 1 of the 3 written emails on the issue Writing a meeting request email. Provide objective feedback and actionable improvement points for either personβs English or the content itself. You can do this in person or via a call. Later send it in writing to your peer.
Estimated time in hours
1
What is the purpose of this assignment?
To learn how to give feedback in person and writing.
How to submit
- Share the link to your written feedback as a comment on this issue
- Share a screenshot of it, too, on this ticket.
- ποΈ Priority Stretch
- π Size Small
- π JS1
- π Sprint 3
- π Sprint 3
- π JS1
- π Size Small
- ποΈ Priority Stretch
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 CYF 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.
- Join #cyf-over-the-wire to help others.
Maximum time in hours
2
How to get help
Work through the puzzles together in #cyf-over-the-wire
Don’t share solutions in this channel, or you steal from others the opportunity of learning.
How to submit
There is no submission step. However, to apply for some roles and some courses (like CYF+ ) you must demonstrate these skills, so it would be a good idea to learn them.
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
- π JS1
- π Sprint 3
- π Sprint 3
- π JS1
- π 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
- π JS1
- π Sprint 3
- π Sprint 3
- π JS1
- π 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