🧑🏽‍🤝‍🧑🏽 day-plan

✍🏽 Register

Energiser

Every session begins with an energiser. Usually there’s a rota showing who will lead the energiser. We have some favourite games you can play if you are stuck.

  1. Traffic Jam: re-order the cars to unblock yourself
  2. Telephone: draw the words and write the pictures
  3. Popcorn show and tell: popcorn around the room and show one nearby object or something in your pocket or bag and explain what it means to you.

Asking good technical questions

Learning Objectives

Preparation

  • A4 paper with exercise 1 printed for each trainee in the cohort
  • Give each trainee one paper at the start of the session
  • Pens

Introduction

3 exercises below:

  1. (10m) How do you get help today? Why don’t you get help?
  2. (45m) Good question improvisation

How do you get help today? Why don’t you get help?

🎯 Goal: Reflect on how you get help for your questions today (10 minutes)

Answer the following questions, then find a partner and discuss any significant differences you have in your answers.

Q1. When you come across something you don’t understand, which of the following ways do you use to get answers?  

  • Search Google / Bing / …
  • Search Stack Overflow
  • Search YouTube
  • Ask ChatGPT or other AI
  • Ask a peer
  • Ask an expert/senior
  • Post a question on a forum / Slack channel
  • Read the documentation 
  • Other (_________________________)

Q2. What stops you from asking others when there is something you don’t understand?  Check the ones that apply to you.

  • I feel I should probably already know the answer and asking would reveal my ignorance
  • I don’t want to waste anybody’s time
  • I don’t want people to think badly of me
  • Nothing stops me because most people usually get pleasure from helping, and often even enjoy showing off their knowledge.
  • Nobody has ever had my problem before, so there’s no point asking anyone
  • Other (_________________________)

Good Question Improvisation!

🎯 Goal: Practice framing a good question and get feedback on it (45 minutes)

  1. Pick ONE of the technical issues that you have thought of during the prep.  Use the good questions concepts that you have learned to write down a well-structured question (10 minutes).
  2. Working in groups, you should each take turns to ask your question of the others in your group.  The others should provide constructive feedback on your good question and suggest possible ways it might be improved. (~5 minutes per person, no more than 30 minutes)
  3. As a group, reflect on the concepts that you think have been most beneficial to asking good questions.  Take turns and share with the group one or two of the changes that you made (or someone else made) to a question that resulted in it being easier to answer and therefore more likely to give a more valuable answer. (5 minutes)

Morning Break

A quick break of fifteen minutes so we can all concentrate on the next piece of work.

⌚ Time string 🔗

formatSecondsAsString

Learning Objectives

When programming, you will often encounter large problems. Developers must learn to break down complex problems into smaller problems. In this workshop, we’ll use tests to break down the implementation of formatAsSecondsAsString.

Given a time in seconds,
When formatAsSecondsAsString is called with the time
Then we it should return a well formatted time string.

For example, if we call formatAsSecondsAsString with 390
then we should get “6 minutes and 30 seconds”

If we call, formatAsSecondsAsString with 6327894 then we should get ""

🧩 Break down the problem

(10 mins)

To break down this problem, we will only start considering seconds inputs <= 60. Why do you think this is a good place to start?

formatAsSecondsAsString(1) // "1 second" 
formatAsSecondsAsString(50) // "50 seconds" 

Spend 10 minutes, think about some other test cases you can explore to check this functionality

🧪 Set up tests

(10 mins)

In this directory (time-string), create a package.json and install Jest as you did in the prep material.
Next, create a test file, time-string.test.js. In there, write your first test.

🩺 First steps

(10 mins)

Once you’ve written your first test, you’ll need to implement the logic to get it working for this test case. Don’t try rushing ahead in this kata - otherwise it could become very unwieldy!

💼 New cases

Now we’ll consider cases where the input is less than 3600? Why is this a good idea?

formatAsSecondsAsString(61) // "1 minute and 1 second" 

Continue this pattern of writing tests and then implementing your functionality. Do this until you’re confident your function works in the case where the input is less than

Lunch

Take your lunch break and be back in an hour!

Study Group

Learning Objectives

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

🛎️ 0 PRs available. Open some pull requests! 🔗

Afternoon Break

Please feel comfortable and welcome to pray at this time if this is part of your religion.

If you are breastfeeding and would like a private space, please let us know.

Study Group

Learning Objectives

What are we doing now?

You’re going to use this time to work through coursework. Your cohort will collectively self-organise to work through the coursework together in your own way. Sort yourselves into groups that work for you.

Use this time wisely

You will have study time in almost every class day. Don’t waste it. Use it to:

  • work through the coursework
  • ask questions and get unblocked
  • give and receive code review
  • work on your portfolio
  • develop your own projects

🛎️ 0 PRs available. Open some pull requests! 🔗

Retro: Start / Stop / Continue

  activity</span>

A retro is a chance to reflect. You can do this on a FigJam (make sure someone makes a copy of the template before you start) or on sticky notes on a wall.

  1. Set a timer for 5 minutes. There’s one on the FigJam too.
  2. Write down as many things as you can think of that you’d like to start, stop, and continue doing next sprint.
  3. Write one point per note and keep it short.
  4. When the timer goes off, one person should set a timer for 1 minute and group the notes into themes.
  5. Next, set a timer for 2 minutes and all vote on the most important themes by adding a dot or a +1 to the note.
  6. Finally, set a timer for 8 minutes and all discuss the top three themes.