🧑🏽‍🤝‍🧑🏽 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.

MWT Workshop

Most Wanted Topics 🔥

Great news! After gathering your feedback from past retros, we’re officially incorporating a new element into the curriculum!

Your instructor will soon share a link to the RetroTool board. There, you can post stickers on topics you’re finding challenging. The topic with the most votes will be the focus of our workshop! If time allows, we’ll dive into the 2nd, 3rd and even more voted topics.

Don’t forget to take short break 🧘‍♂️ during the session happy coding!

Use this time wisely 🎯

To make the most out of this workshop and ensure you’re getting the best value, here are a few tips to keep in mind that will help you stay focused, collaborate effectively, and leave with actionable insights:

  • Come Prepared: Come Prepared beforehand and gather your thoughts on the specific areas where you need clarification or support. This ensures you ask targeted questions during the workshop.

  • Engage Actively: Don’t just observe ask questions, share your experiences, and participate in discussions. Workshops are most valuable when everyone collaborates.

  • Collaborate with Peers: If you see a fellow participant struggling with a topic you’re comfortable with, offer your help. Peer learning enhances the overall experience for everyone.

  • Apply Immediately: After the workshop, try to implement what you’ve learned in your course work or personal projects. Practical application reinforces your learning.

  • Follow-Up: If a topic wasn’t fully covered or you still have doubts, follow up with your instructor or peers after the session. This ensures no questions are left unanswered.

Lunch

Take your lunch break and be back in an hour!

⌚ Time string 🔗

Learning Objectives

formatSecondsAsString

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

Afternoon Break

Take your short afternoon break and be back in 15 minutes!

Feedback of the Mdule

Your feedback is very important for us to be abke to imporve, please give us your feedback of this module.

Wrap up of the Module

Congratulations to wrap up your Module and getting closer to your close. Lets talk about how was your experience about the Module and what can we improve to get best out of the upcoming challanges.

Retro: Start / Stop / Continue

  Retro (20 minutes)</span>

A retro is a chance to reflect. You can do this on RetroTool (create a free anonymous retro and share the link with the class) or on sticky notes on a wall.

  1. Set a timer for 5 minutes. There’s one on the RetroTool 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.