π·οΈ backlog
Module-Structuring-and-Testing-Data π
[TECH ED] π Code review π Clone
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
- π Priority Mandatory
- π Sprint 3
- :memo: Self evaluate
[TECH ED] π«±π½βπ«²πΏ Pair program π Clone
Instructions
- Pair up with a volunteer and work on a kata together
- As a trainee, you will need to explain your thought process, plan out what to do, write the code and check it works
- Volunteers will need to ask questions to check your understanding, provide guidance if you stuck, give honest and meaningful feedback
π§ Guidance for volunteers
- Don’t take over! It’s important trainees get used to figuring things out. Provide guidance and assistance but trainees need to struggle to overcome any obstacles with understanding and technical communication
- Give honest feedback. Trainees can’t develop if they don’t receive honest feedback about their progress.
- Ask questions. Sometimes asking a clarifying question can help learners discover errors and often promotes more thoughtful responses.
- Encourage best practices. Reinforce good practices like reading error messages carefully sessions and checking documentation.
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 trainees to prepare for technical interviews when they’ll need to code in front of other people.
Acceptance criteria
- You have pair programmed on a kata with a volunteer for at least one hour
- π Priority Mandatory
- π Size Small
- π Sprint 3
- :memo: Self evaluate
[TECH ED] Codewars π Clone
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
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
[TECH ED] CIP Graphics π Clone
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
[PD] Working with your team π Clone
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. Make sure the document is open to view and comment by anyone.
- π― Topic Communication
- π Priority Mandatory
- π Size Medium
- π JS1
- π Sprint 3
[PD] Learn from rejections π Clone
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. Make sure the document is open to view and comment by anyone.
- π Priority Mandatory
- π Size Small
- π JS1
- π Sprint 3
[PD] Ask a good question for real π Clone
Coursework content
You need to practice any skills to get good at them. Your homework is to ask your cohort a βGood Questionβ on the Slack channel when you next have a genuine issue you need help with.
Remember:
- Identify one problem at a time to ask about
- Say what research youβve already done to try and resolve the problem yourself
- Be specific about the problem
- Be polite and respectful of the person you are asking.
- Be concise (minimal reproducible example) - only give the relevant code snippets or errors messages
- Choose who to ask based on their general expertise, availability, distance from you in the team or who you havenβt asked before.
- Refer to documentation, other code, and discussions with specific links.
- Show what happens when you try your solution.
- Explain what you expected or wanted from your solution.
When others post their good questions, give them feedback on how good they are, along with any constructive feedback on how they might improve. And if you can, answer their question!
Estimated time in hours
1
What is the purpose of this assignment?
Consolidates learning via a plan to practice asking a good question the next time you are stuck. Trainees can evaluate the questions others ask and give answers if they know.
How to submit
- Add the screenshot of the good question you posted on the Slack channel to this issue
- Respond to othersβ questions with a thumbs up for βWell written questionβ and add comments on what you liked about the question and any suggestions for how the question can be further improved. Share the screenshot of your reaction or comment on this ticket.
- You can also answer other peopleβs questions if you know the answer!
Anything else?
- π Size Small
- π Priority Key
- π JS1
- π Sprint 3
[PD] Giving feedback on the e-mails π Clone
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
[TECH ED] Complete Sprint 3 exercises π Clone
Link to the coursework
https://github.com/CodeYourFuture/Module-Structuring-and-Testing-Data
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
- Fork to your Github account.
- Make a branch for this project.
- 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 projects in this repo. Make a new branch for each project.
- π Priority Mandatory
- π Size Medium
- π JS1
- π Sprint 3
[TECH ED] Portfolio: branch to branch π Clone
Link to the coursework
https://github.com/CodeYourFuture/Portfolio/tree/Module-JS-1
Why are we doing this?
You will slowly iterate on your Portfolio over the whole course of CYF. You need to build your portfolio so you can use it to get into The Launch module, and then later use it to apply for jobs.
This module we’re exploring a branch to branch pattern in Git. Read the readme carefully and follow the instructions.
Bring your portfolio to class to get help and feedback from your community. Writing a great case study will help you understand how to explain and present your work to recruiters and employers. Your first case study doesn’t have to be great, don’t panic!
Explore and revise
- Review a colleague’s case study
- Do your review on their PR on the Portfolio repo, using the GitHub Code Review interface
Maximum time in hours
1
How to get help
Bring your portfolio to class to get help and feedback from your community. Taking the reviewer role will help you put yourself in the shoes of a recruiter or employer (who does not know you) reading a portfolio. Understanding this perspective will make your own portfolio better. What context is missing from the case study you are reading?
How to submit
Use the GitHub Code review interface on https://github.com/CodeYourFuture/Portfolio/pulls
- π Priority Mandatory
- π Size Small
- π JS1
- π Sprint 3
[TECH ED] Watch the VSCode Debugger Video π Clone
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