Backlog

Module-Tools ๐Ÿ”—  

Expand all

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.

Prep Exercises ๐Ÿ”— Clone

Prep Exercises ๐Ÿ”—

Task code

CYF-1155 - make sure to include this in your PR title or description.

https://sdc.codeyourfuture.io/tools/sprints/5/prep/

Why are we doing this?

Read the prep and do all of the exercises in it.

Maximum time in hours

5

How to submit

Submit a pull request to this repo from your fork, containing a single Python file per exercise.

Get a GitHub profile review

Get a GitHub profile review

Learning Objectives

Make sure your github page is linked to your CYF portal profile

Go through your github profile and make sure it is up to date.

Pick some good projects that you can use as part of a portfolio and highlight them on the main page.

Discuss this with a career mentor on the slack and get a review of your profile

Give a demo in a demo session

Give a demo in a demo session

Presenting information is really important. You need to practice giving demos, and each week build on the feedback you got the previous week.

At CYF we expect you to demo your work to the class. You must have many opportunities to practice how to clearly and simply explain your work to others. This is really important both for interviews and for getting promoted later on.

Attend the SDC demo sessions this week during the saturday class, and give a presentation about a topic of your choosing.

Also try to give some feedback to one of your fellow trainees during this session on their demo.

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 only need to give one of these demos every two weeks. You can give extra demos in addition whenever you want more practice.

Mentored Coding (Edu Team)

Mentored Coding (Edu Team)

Learning Objectives

Mentored coding 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 team up with a volunteer to work on it together.

See the mentored coding guide for guidance.

Book time with your assigned education mentor for this.

Remember, as a learner, you will need to explain your thought process, plan out what to do, write the code and check it works

You will get feedback from your mentor 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.

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.

Radio Control App ๐Ÿ”—

Radio Control App ๐Ÿ”—

Learning Objectives

Task code

CYF-1208 - make sure to include this in your PR title or description.

Radio Control App

This is part of an app that can be used to control an online radio station

Your task is to:

  1. Add type annotations where appropriate.
  2. Upgrade everything use dataclasses. Use frozen where appropriate.
  3. Observe how the given __str__ method works, and add one to the other classes
  4. When the __str__ method is called, have it print the duration in formatted mm:ss rather than just seconds
  5. Add a new class of Person - you can use your imagination what this includes, but it should have at least a string name
  6. Turn the fields for artists, host, and guest into Person classes
  7. Make a new class Podcast that extends the TalkShow class, with an extra string field for sponsor
  8. Finish implementing the class Playlist, and set it to takes a generic, e.g. either Song or TalkShow or Podcast

As you implement, make sure to keep checking with mypy and add your own code at the end to test it works correctly