backlog

Module-Data-Flows πŸ”—   Project-TV-Show πŸ”—  

Expand all

Start Here

These tasks should be completed before attempting anything else.

Check module success criteria πŸ”— Clone

Check module success criteria πŸ”—

https://programming.codeyourfuture.io/data-flows/success/

Why are we doing this?

πŸ”‘ The most important thing is that you are secure in your understanding.

At the end of the course, we will expect you to build novel applications using your understanding. If you cannot build things, we cannot put you forward for jobs. It is in your personal interest to make sure you have properly understood this module.

To progress to the next module you need to meet the success criteria for this module. How will you as a cohort meet the module success criteria? Discuss it in your class channel and make a plan together.

Strategies

πŸ§‘πŸΏβ€πŸŽ€ good strategies

  • asking volunteers to review your code
  • helping each other with coursework blockers
  • arranging midweek study sessions
  • using Saturday time to review code and cohort tracker

πŸ™…πŸΏ bad strategies

  • opening empty PRs
  • copying and pasting
  • breaking the Trainee Agreement
  • mistaking the measure for the target

Maximum time in hours

.5

How to get help

Discuss with your cohort. Support each other.

How to submit

At the end of your module you will need to submit your own work in the CYF dashboard. This means things like pull requests you have written sent from your GitHub account, and Google Docs you have written.

What you need to submit is listed on the success page for the module.

Remember - the goal is your understanding. If you are not confident you could delete and re-do the work you’re submitting easily, you should take more time to revise the topics. It’s more important that you understand the work, than that it gets done quickly.

Recurring Tasks

These tasks need to be completed in every sprint.

Give a demo in a demo session πŸ”— Clone

Give a demo in a demo session πŸ”—

Presenting information is really important. You need to start practicing giving demos.

During this module, you must attend at least one demo session, and give at least one demo. We recommend you come to more, and give more. But you are required to do at least one. Your demo can be on anything you want. You can give this demo in any sprint.

There are demo sessions every Tuesday evening and Friday morning. They are advertised on Slack.

Aim for a 5 minute demo. But your demo must be at least 1 minute and at most 10 minutes long. Check out our guide about presenting.

You will need to attach a screenshot when submitting your Step for this Module. Make sure to take a screenshot of you presenting on the call, showing that one of the following members of CYF staff was on your call and gave you feedback:

  • Daniel Wagner-Hall
  • Karen Klein
  • Colin Farquhar
  • Poonam Rajput
  • LΓ©on McGregor

If you are not available during any of the demo times, please message on Slack to arrange an alternate time.

Mentored pair programming πŸ”— Clone

Mentored pair programming πŸ”—

Learning Objectives

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 you to prepare for technical interviews when you may need to code in front of other people or explain your solution to a problem.

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

Submission & Review

You well get feedback from the volunteer during the session. If there are specific topics you would like to receive feedback on then let them know at the start of the session so they know what to focus on.

Mandatory Tasks

These tasks will help consolidate your learning for this sprint. You should complete as many of these as possible before class on Saturday.

Check out an API response πŸ”— Clone

Check out an API response πŸ”—

Learning Objectives

Why are we doing this?

This task will get you to really think about the response you get back from an API. Use Chrome Dev Tools to examine the response you get back from the server.

Look at a request in Chrome Dev Tools

In Google Chrome, open dev tools network tab and enter this URL into the browser: http://api.tvmaze.com/shows/82/episodes

Answer the following questions:

  1. What’s the status code the server sent back?
  2. What HTTP method did the browser use to make the request?
  3. What is the request path?
  4. What is the first line of the response body?
  5. What is the value of the response header called “Content-Type” ?
  6. What is the value of the request header called “User-Agent”

Maximum time in hours

.5

How to submit

Share your answers with the other learners on Slack. Did you get different answers to other people? Ask them how they worked them out!

Mandatory Sprint 1 Codewars Katas πŸ”— Clone

Mandatory Sprint 1 Codewars Katas πŸ”—

Learning Objectives

https://www.codewars.com/collections/cyf-data-flows-sprint-1-mandatory

Why are we doing this?

Every week, you need to complete all of the katas in the collection. If you have extra time, you can do extra katas at random on CodeWars.

Spend at least 20 minutes per kata, find time at least three times a week to complete this.

Find the Collection called “CYF Data Flows | Sprint 1 | Mandatory” on the CodeYourFuture account.

Check your Codewars completion status via the Codewars Progress Checker.

Maximum time in hours

2

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 Book a pair programming slot from the available pairing appointments in the CYF Pair Programming Slack Canvas

How to submit

Share a link in the form https://codeyourfuture.github.io/Codewars-Progress-Checker/#YOUR_CODEWARS_USERNAME.

You can obtain the link from the browser location bar after submitting your Codewars username on the Codewars Progress Checker page.

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.

Object Destructuring πŸ”— Clone

Object Destructuring πŸ”—

Learning Objectives

https://github.com/CodeYourFuture/Module-Data-Flows/tree/main/Sprint-1/destructuring

Why are we doing this?

Destructuring is very useful and used a lot in React. Both array and object destructuring are worth exploring.

Maximum time in hours

1

Submission & Review

  1. Fork to your Github account.
  2. Make a branch for this project called feature/destructuring
  3. Make regular small commits in this branch with clear messages.
  4. When you are ready, open a PR to the CYF repo, following the instructions in the PR template.
gitGraph commit id: "start" branch feature/destructuring commit id: "ex-1-update-argument" commit id: "ex-2-teachers-pet" commit id: "ex-3-print-receipt" checkout main merge feature/destructuring

There are several projects in this repo. Make a new branch for each project. This might feel challenging at first, so this is a good problem to bring to class to work on in groups with mentors.

Don’t make one giant PR with all your work in for the module. Make a separate PR for each assignment.

Play the Bandit πŸ”— Clone

Play the Bandit πŸ”—

Learning Objectives

https://overthewire.org/wargames/bandit/

Why are we doing this?

Basic Linux skills are essential for roles in Cloud, DevOps, Cyber, and SRE so it’s a good idea to practice them. 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 develop these skills 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 20 by the end of this module.

Maximum time in hours

1

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 for this exercise.

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.

Read about team roles πŸ”— Clone

Read about team roles πŸ”—

Learning Objectives

https://www.belbin.com/about/belbin-team-roles

Why are we doing this?

On Saturday we will do a workshop using this understanding. Make sure to read this page before coming to class.

Maximum time in hours

1

TV Show Project πŸ”— Clone

TV Show Project πŸ”—

Learning Objectives

https://github.com/CodeYourFuture/Project-TV-Show

Why are we doing this?

We’re doing this project to gain experience consuming data from an API and displaying it in a visually appealing way in the browser - making it easy for our users to understand.

This project should be done in a pair-swapping style as described here. This will be a great experience as it’s actually similar to a real-world working experience where a team of developers work on a shared code base πŸ˜„

All the rest of the tickets for this project are in the TV Show Project repo. Look there to find out what to do.

While doing this project, you should think about writing “clean” code - One way to do this is to think about what future readers of your code will be thinking πŸ€” If they didn’t have much context, will they be able to easily understand what the code is doing? Would it be easy for them to make changes to the code?

Maximum time in hours

6-8 per sprint

How to get help

Share your blockers in your class channel https://programming.codeyourfuture.io/guides/getting-help/asking-questions/

Submission & Review

Add a comment to this (cloned) issue with a link to:

  • Your GitHub repository
  • The other person’s repository your changes are merged into
  • The url of your site hosted on Netlify (should be something like cyf-USERNAME-tv.netlify.app)

Optional Tasks

These are optional "stretch goals" to attempt when you have finished the mandatory tasks. They may be more challenging or require some additional research.

Technical Writing πŸ”— Clone

Technical Writing πŸ”—

Learning Objectives

https://developers.google.com/tech-writing/one

Why are we doing this?

Every engineer is also a writer.

This collection of courses and learning resources aims to improve your technical documentation. Learn how to plan and author technical documents. You can also learn about the role of technical writers at Google.

Take the prep course before class and do the in-class workshop… in class!

Maximum time in hours

2

How to get help

Arrange a mid week study session to work on this course together. Can you invite a native speaker to support you? What skills do you already have in your group? Has someone worked as a writer, teacher, translator, or journalist?

Submission & Review

There is no submission required for this exercise.