🏷️ backlog

Module-Data-Groups πŸ”—

[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 2
  • :memo: Self evaluate
[TECH ED] πŸ«±πŸ½β€πŸ«²πŸΏ Pair program πŸ”— Clone

Instructions

  1. Pair up with a volunteer and work on a kata together
  2. As a trainee, you will need to explain your thought process, plan out what to do, write the code and check it works
  3. 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 2
  • :memo: Self evaluate
[TECH ED] Play the Bandit πŸ”— Clone

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 20 by the end of this module.

  1. This blog post by Tanner Dolby will walk you through level 1 to 5. Yes, you get the first 5 levels done for you.
  2. 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
  • πŸ“… Sprint 2
  • πŸ“… JS1
[TECH ED] Codewars πŸ”— Clone

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.

Don’t just go forwards through the collections. Loop back and review your work from last month. How have you progressed? Would you choose another solution now?

Maximum time in hours (Tech has max 16 per week total)

1

How to get help

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. What about different languages?

  • 🎯 Topic Code Review
  • 🎯 Topic Problem-Solving
  • 🎯 Topic Programming Fundamentals
  • 🎯 Topic Requirements
  • 🎯 Topic Time Management
  • πŸ• Priority Mandatory
  • πŸ“… JS2
  • πŸ“… Sprint 2
[TECH ED] Portfolio πŸ”— Clone

https://github.com/CodeYourFuture/Portfolio/tree/Module-JS-2

Why are we doing this?

At Code Your Future, we expect everyone to graduate with a unique professional portfolio. You will begin building this portfolio as soon as you begin to work towards our Software Development Course. At first, your portfolio will be a simple HTML/CSS page deployed to Github Pages or Netlify. This is your MVP.

Every module, you will iterate on your portfolio, adding a new project and improving your design and presentation. By the time you apply to join CYF as a trainee, your portfolio will help you show you are ready to be accepted on to a development team. The process of developing the portfolio, through specified git workflows, through small scoped feature development, and through case study and written presentation, will all help you succeed in your application.

Maximum time in hours

3

How to get help

Share your blockers in #cyf-portfolios.

How to submit

  1. Fork to your Github account.
  2. Check out the branch for the module you are on.
  3. Make regular small commits with clear messages.
  4. When you are ready, open a PR to the CYF repo, to the matching branch, following the instructions in the CYF repo.

How to review

  1. Complete your PR template
  2. Ask for review from a classmate or mentor
  3. Make changes based on their feedback
  4. Review and refactor again next time

Anything else?

To get a job in tech you need a minimum set of tools that you need to acquire or build over the course of this year. You need:

  1. a well written CV
  2. a solid portfolio of junior level work that makes you memorable to a recruiter
  3. to be able to plan, build, and ship a working product in an Agile team
  4. to be able to score reasonably well in a timed technical test
  5. to be able to do an interview in fluent English

Keep this in mind.

  • 🎯 Topic Iteration
  • πŸ• Priority Mandatory
  • πŸ‡ Size Small
  • πŸ“… JS2
  • πŸ“… Sprint 2
[TECH ED] Complete sprint 2 exercises πŸ”— Clone

https://github.com/CodeYourFuture/Module-Data-Groups

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

  1. Fork to your Github account.
  2. Make a branch for this project.
  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.

There are several projects in this repo. Make a new branch for each project.

  • πŸ• Priority Mandatory
  • πŸ‚ Size Medium
  • πŸ”‘ Priority Key
  • πŸ“… JS2
  • πŸ“… Sprint 2
[PD] Review a fellow trainee's CV πŸ”— Clone

Coursework content

Read one of the CVs that hasn’t been reviewed yet on the #cyf-profile-review and give feedback on it.

Make sure you react to the post so people know you are on it (i.e. two eyes when looking, done when finished), and add the feedback as comments directly on the file or the thread.

When reading the CV, use your interviewer hat. Would you call this person for an interview? In ether answer, yes or no, make sure you give them a clear example as to why you think this way.

Estimated time in hours

1

What is the purpose of this assignment?

  • See the variety of content people write in their CVs.
  • Judge a CV as an external reader. Then you can know what to write better.
  • Give constructive feedback to your peers.

How to submit

  • Add the link to the CV doc you reviewed as a comment on this issue.
  • Add a screenshot of you reacting to the message on the #cyf-profile-review Slack channel.
  • πŸ‡ Size Small
  • πŸ”‘ Priority Key
  • πŸ“… JS2
  • πŸ“… Sprint 2
[PD] Make a business proposal to take a risk πŸ”— Clone

Coursework content

Research how to write a business proposal to share within your workplace. For example, see:

Imagine taking a risk in a software development job. You want to suggest a new step in your e-commerce checkout process, persuading customers to subscribe to 1-day delivery like Amazon Prime. The step might improve customer loyalty or cause confusion and complaints. It might increase revenues. It might be too complicated to get right.

Write a proposal like an email, proposing the step in the checkout process to your team, what risks you perceive and how you will mitigate the risks. Write it in a document between 0.5 to 1 page long.

Estimated time in hours

1.5

What is the purpose of this assignment?

  • Think about risks at work and risk mitigation strategies.
  • Practice writing a business proposal.

How to submit

  • Share your document on the cohort channel, asking for feedback.
  • Give feedback on your peer’s proposal.
  • Post a screenshot of your post with some feedback, if possible, as a comment on this issue
  • Also post your google doc as a comment here. Make sure the file is open for comments.
  • 🏝️ Priority Stretch
  • πŸ‚ Size Medium
  • πŸ“… JS2
  • πŸ“… Sprint 2
[PD] Identify approaches to resolve conflicts πŸ”— Clone

Coursework content

Consider the following types of conflict and choose one.

  • A technical disagreement about how to write the code for a well-understood task.
  • The manager wants you to work faster but with a smaller team by rushing.
  • A competitive and ambitious person wants you to look bad so they can get a promotion instead.

Sort the following list of approaches or questions into priority and usefulness. Add your own strategies to this list.

  • Don’t let your emotions control you.
  • Paraphrase what the other person said, confirming your understanding and showing empathy.
  • Each conflict is an opportunity.
  • Find out what facts the other person knows.
  • What do they want? Relatively few people have hidden agendas.
  • What do you want? Assert your points clearly without being too shy.
  • What is their general attitude and approach?
  • What possible solutions to this conflict might exist?
  • Agree on part of the solution if you can’t agree on all of it.
  • Build a network of people to support your resilience and perhaps mediate the conflict.
  • Communicate clearly before there is a conflict.
  • Be assertive enough to make your point.
  • Escalate the topic to someone more senior to arbitrate.
  • Keep away from the other person and find your own solution without them.
  • … add your own strategies.

Estimated time in hours

0.5

What is the purpose of this assignment?

Reflecting on your learning of last week’s class about resolving conflict

How to submit

  • Add your final order on a comment on this issue
  • πŸ• Priority Mandatory
  • πŸ‡ Size Small
  • πŸ“… JS2
  • πŸ“… Sprint 2